Two fundamentally different philosophies for building AI agent products
Harness Pattern (Claude Code / learn-claude-code)
The Model IS the Agent (Claude, GPT, etc.)
↓
Agent Loop
while tool_use: execute, append, repeat
↓
Tool Dispatch
bash, read, write, edit, glob, grep
↓
Context Management
Compression, skills, subagents
↓
Coordination
Tasks, teams, worktrees
Framework Pattern (LangChain, CrewAI, etc.)
Workflow Graph / DAG
Nodes, edges, conditional branches
↓
Prompt Chain Orchestration
Step 1 -> Step 2 -> Step 3 (hardcoded)
↓
Role / Agent Definitions
Researcher, Analyst, Writer (configured)
↓
LLM (used as text-completion node)
↓
Output Parser / Structured Response
Force output into predefined schema
Harness: Trust the model
The model decides what to do, when to call tools, and when to stop. The code provides the environment. Minimal indirection. Maximum model autonomy.
Framework: Override the model
The code decides the workflow. The model fills in blanks within a predetermined pipeline. High indirection. Model autonomy constrained by design.
Interactive: Click any layer to see how the two architectures differ in philosophy and implementation.