Agents and orchestration
Rewritten for LangChain/LangGraph 1.0 (both GA October 2025).
Core
| # | File | Covers |
|---|---|---|
| 01 | What is an agent | the definition that matters, and the ladder from single call to multi-agent |
| 02 | The agent loop | ReAct, termination, loop detection, context growth |
| 03 | LangChain and LangGraph | 1.0 middleware and durable execution |
| — | LangGraph, in depth | the nine-note deep dive: state, reducers, routing, persistence, interrupts, streaming, composition, production |
| 04 | Multi-agent patterns | topologies, handoffs, why it’s usually the wrong first answer |
| 05 | Durable execution and human-in-the-loop | checkpointing, approval gates, LangGraph vs a workflow engine |
| 06 | Agent protocols: MCP, A2A and the interop layer | MCP vs A2A, and the governance gap |
| 07 | Agent failure modes | what actually breaks, and how to test a non-deterministic system |
Tools and structured output
| # | File | Covers |
|---|---|---|
| 08 | Function Calling, Tool Use, and Structured Output | schemas, tool definitions |
| 09 | LLM JSON Validation — Common Interview Questions and Answers | validating model output |
| 10 | Agent Patterns — Plan-and-Execute, Reflection, Cost, Evaluation | advanced patterns |
| 11 | Chatbot & Pydantic AI | worked chatbot design |
| 12 | Pydantic AI | the type-safe alternative framework |
| 13 | LlamaIndex, and choosing between frameworks | picking between the frameworks |
Running them in production
The distributed-systems view. An agent in production is a component in a system, not a loop in a process.
| # | File | Covers |
|---|---|---|
| 14 | Long-running agent jobs | the job shape, callbacks, resumption, cancellation |
| 15 | Event-driven agents | agents as consumers, at-least-once, poison messages |
| 16 | Concurrency and backpressure | provider limits, per-tenant fairness, cost as a rate limit |
| 17 | Computer-use and code agents | UI-driving and code agents, and why code agents work |
| 18 | The agent framework landscape | CrewAI, MS Agent Framework, Agents SDK, ADK, Strands |
| 19 | The Claude Agent SDK | Claude Code as a library: built-ins, subagents, skills, hooks |
The three answers worth having
An agent is an LLM that decides its own control flow. If your code fixes the sequence, it’s a workflow — and determinism is a feature. Walk the ladder (single call, chain, router, bounded tool loop) before reaching for autonomy.
Durable execution is what makes LangGraph more than a nicer loop. Every node transition is checkpointed, so a run survives restarts, pauses for hours awaiting approval, and can be rewound for debugging. An agent becomes a resumable process rather than a function call.
Multi-agent compounds unreliability. Five agents at 90% each is roughly 59% end-to-end. Use it for context isolation, genuine parallelism or privilege separation — not because a task has several parts.