Architecture, orchestration, memory, evaluation and security patterns for production AI agents.
When to hard-code a sequence of LLM calls and when to let a classifier route: prompt chaining vs routing on cost, latency and reliability, in TypeScript.
Keep AI agents inside Claude API rate limits and your own budgets: 429 handling, retry-after, cache-aware ITPM, per-user token budgets and queues.
Build a document question answering agent in TypeScript: a pgvector search tool, a loop that searches until it can answer, and citations code verifies.
Build a cron-triggered monitoring agent in TypeScript that queries Prometheus, decides whether an anomaly matters, and posts an evidence-backed Slack alert.
How Claude Code remembers a project across sessions: where CLAUDE.md files load from, @imports, path-scoped rules, auto memory, and what to keep out of each.
Build a browser automation agent with Claude computer use: the computer_toolset_20260801 tool, a Playwright executor, sandboxing, and when to use a script.
Test MCP servers with the TypeScript SDK v2: MCP Inspector checks, in-process tests with createMcpHandler, stdio smoke tests and model-facing checks.
Go past a single SKILL.md: supporting files, arguments, live context from shell commands, forked subagent skills and skills that build on each other.
Stateless agents rebuild context on every request; stateful agents keep it between turns. When each wins on scaling, cost and failure recovery, with code.
How to report tool failures with is_error so an agent recovers instead of looping: error message design, retryable vs fatal errors and loop guards.
How to checkpoint AI agent state so long-running agents survive failures and can resume mid-task - what to persist, storage backend options.
Clean agent handoff patterns for multi-agent pipelines - what context to pass, what to omit, sync vs async.
How to parallelise AI agent work with fan-out/fan-in, batch agents, and parallel tool calls - the patterns that collapse multi-step task latency from minutes.
How to defend AI agents against prompt injection attacks - the attack vectors, why agents are especially vulnerable, input validation patterns.
How to test AI agents that you cannot predict - unit testing tool handlers, integration testing the agentic loop, writing LLM evals.
Build a production code review agent using Claude - git diff ingestion, structured finding output, severity classification.
Build a production data extraction agent that converts unstructured text to typed schemas using Claude tool use - with confidence scoring.
MCP resources expose readable content to AI agents; MCP prompts inject reusable instructions.
How to add authentication to an MCP server - API key validation, OAuth 2.0 flows, secret management.
Why Claude Code subagents run in isolated contexts, what isolation means for tool access and memory.
Model Context Protocol (MCP) explained - what it is, how it works, how MCP servers expose tools and resources, and why it replaces custom LLM integrations.
AI agents can cost 10-50x more than a single LLM call for the same task.
AI agents fail in ways that traditional software does not - stuck loops, malformed tool calls, context overflow.
The observe-think-act loop is the core of every AI agent. This guide explains how the loop works, when it terminates, how tools fit in.
The supervisor pattern separates planning from execution in AI agents. How to implement an orchestrator that routes tasks to specialist workers.
Swarms and pipelines are the two dominant multi-agent architectures. How they differ, when each one wins.
AI agents fail in ways that standard logs cannot capture. How to instrument agentic loops with structured traces, span tracking, tool call logging.
Build a production-ready research agent using Claude, web search, and structured output - with tool definitions, the agentic loop, result synthesis.
How to write effective Claude Code subagent definitions in .claude/agents/ - frontmatter fields, description writing, tool scoping, model selection.
Beyond basic tool use: parallel tool calls, dependent tool chains, forced tool selection, tool result caching.
Three ways to get typed data from an LLM: tool use (forced schema), structured output (JSON mode), and free-form with Zod validation.