Most useful agents are not crews. A single agent is one policy (system prompt), one loop, one tool belt, optional memory and reflection. It is the default node inside an agentic workflow and the baseline you must beat before introducing multi-agent systems.
Vol. 14’s LangChain tool agents and PydanticAI typed agents are single-agent implementations. CrewAI and AutoGen shine when you truly need roles—after a single agent fails eval.
Learning Objectives
By the end of this lesson, students should be able to:
- Define a single agent as one decision-maker with tools, memory, and halt rules.
- Assemble the stack: system prompt, schemas, loop, memory, optional critic.
- Recognize tasks where one agent outperforms a crew (cost, latency, simplicity).
- Implement a compact single-agent runner in Python.
- Know when to split into multi-agent (true specialization + handoff needs).
- Place HITL gates on the single loop without adding extra personas.
A single agent is an AI agent with one identity and one control loop. It may still use many tools, retrieve RAG context, call a separate evaluator prompt, or pause for a human—those are functions, not additional autonomous actors.
Single Agent vs “Fake Multi-Agent”
| Pattern | Actors | Still single-agent? |
|---|---|---|
| Tools + ReAct loop | 1 | Yes |
| Generate then critique prompts | 1 (two prompts) | Yes (reflection) |
| RAG retriever tool | 1 | Yes |
| Researcher + writer with separate goals/memory | 2+ | No — multi-agent |
| Supervisor routing to specialists | 2+ | No — multi-agent |
Reference Single-Agent Runner
When One Agent Is Enough
Stay single
- One user-facing persona
- Shared tool belt fits in context
- Eval is already passing
Add prompts, not agents
- Reflection / rubric pass
- JSON repair pass
- Summarize memory
Consider multi-agent
- Conflicting goals (sell vs comply)
- Huge disjoint tool sets
- Parallel specialists with handoffs
Strengths
- Simple traces and eval
- Lower chatter cost
- Easier permissions model
- Fits one workflow node
Tradeoffs
- Long tool menus hurt selection
- Role confusion in one prompt
- Hard to parallelize specialties
- May hide a needed split
“Serious products need multiple agents.” Many production systems are a single agent behind a workflow, plus a critic prompt and HITL. Extra agents add coordination failure modes. Split only when eval shows a single prompt/tool belt cannot carry the job.
Knowledge Check
- Short Answer: What still counts as a single agent? Answer: One identity/loop, even with many tools, RAG, or a critique prompt.
- True/False: A generate+critique pair is automatically a multi-agent system. Answer: False—that is reflection inside one agent.
- Multiple Choice:
propose_writein the sketch is for: (a) silent prod deploys, (b) gated side effects, (c) CSS. Answer: (b). - Short Answer: Name a Vol. 14 single-agent-style framework. Answer: LangChain tool agent or PydanticAI (either).
- True/False: You should start with multi-agent by default. Answer: False.
- Multiple Choice: Conflicting goals (sell vs comply) often suggest: (a) multi-agent or hard workflow split, (b) bigger kernels, (c) dropping halt rules. Answer: (a).
- Short Answer: Why is eval easier with one agent? Answer: One trajectory, one permission model, less chatter to attribute.
- Short Answer: Where does a single agent sit in an agentic workflow? Answer: As one (or a few) graph nodes with bounded loops.
- Multiple Choice: HITL on a single agent typically: (a) adds a new persona, (b) pauses the same loop, (c) trains WordPiece. Answer: (b).
- True/False: Huge disjoint tool sets can justify splitting agents. Answer: True.
Key Takeaways
- Single agent = one identity, one loop, many possible tools and helper prompts.
- Default to single-agent nodes inside workflows; add reflection before adding crews.
- Gate writes; keep the persona and halt rules explicit.
- Split to multi-agent only when specialization or conflicting goals demand it.
- Next: multi-agent systems.
Whiteboard: List every “agent” on a vendor slide. Cross out any that are just prompts or tools. Count real actors left.
Lab: Add working memory (last tool + goal) to atlas() without adding a second agent.
Recap: Start with one agent. Continue with Multi-Agent System.