Learn Claude Code
Build a nano Claude Code-like agent from 0 to 1, one mechanism at a time
The Core Pattern
Every AI coding agent shares the same loop: call the model, execute tools, feed results back. Production systems add policy, permissions, and lifecycle layers on top.
while True:
response = client.messages.create(messages=messages, tools=tools)
if response.stop_reason != "tool_use":
break
for tool_call in response.content:
result = execute_tool(tool_call.name, tool_call.input)
messages.append(result)Message Growth
Watch the messages array grow as the agent loop executes
Learning Path
12 progressive sessions, from a simple loop to isolated autonomous execution
The Agent Loop
The minimal agent kernel is a while loop + one tool
Tools
The loop stays the same; new tools register into the dispatch map
TodoWrite
An agent without a plan drifts; list the steps first, then execute
Subagents
Subagents use independent messages[], keeping the main conversation clean
Skills
Inject knowledge via tool_result when needed, not upfront in the system prompt
Compact
Context will fill up; three-layer compression strategy enables infinite sessions
Tasks
A file-based task graph with ordering, parallelism, and dependencies -- the coordination backbone for multi-agent work
Background Tasks
Run slow operations in the background; the agent keeps thinking ahead
Agent Teams
When one agent can't finish, delegate to persistent teammates via async mailboxes
Team Protocols
One request-response pattern drives all team negotiation
Autonomous Agents
Teammates scan the board and claim tasks themselves; no need for the lead to assign each one
Worktree + Task Isolation
Each works in its own directory; tasks manage goals, worktrees manage directories, bound by ID
Architectural Layers
Five orthogonal concerns that compose into a complete agent