Engineering
with agents.
Practical guides for teams learning to delegate software work.
A useful first pass
Begin with tool design, permissions, and evaluations. Then bring one small, repeatable task into your team’s workflow.
18 concepts
Short guides · Practical exercises
Harness engineering
Build the working environment that lets an agent act, check its work, and hand back inspectable evidence.
Start here02Loop engineering
Design the decision between tool calls: continue only with usable feedback, stop on success or a limit, and hand off blockers with evidence.
Start here03Context engineering
Give an agent the goal, constraints, evidence, and current state it needs for its next decision—and check what survives a handoff.
Start here04Tool design
Design tool contracts that let an agent distinguish evidence, absence, and failure before it acts.
Start here05Memory architecture
Design what an agent remembers, who may change it, and how each run checks whether recalled advice still applies.
Start here06Orchestration patterns
Choose who does each part, what must finish first, and who accepts the combined result. Start with a small workflow whose failures you can explain.
Start here07Guardrails and permissions
Delegate investigation without handing the agent deployment authority. Evaluate proposed actions, then enforce permissions where tools execute.
Start here08Agent evals
Use repeatable tasks and explicit checks to decide whether an agent change improves useful work without breaking behavior the team already relies on.
Start here09Human-in-the-loop
Human-in-the-loop means reserving a consequential decision for a person, then enforcing that decision at the point where an agent can change the world.
Start here10Observability and tracing
Make delegated work inspectable: follow one agent task through its model and tool calls before changing prompts or blaming a dependency.
Start here11Load balancing
Choose where new work goes using signals that match the work; equal call counts can hide very unequal demand.
Reference12Cache-aside
Cache-aside lets application code reuse a stored result, then fetch and cache missing data. A hit proves presence, not freshness.
Reference13Queues and backpressure
Bound waiting work and make the producer respond when capacity runs out. A queue buys time; it does not make an overloaded tool faster.
Reference14Idempotency
Make retries of one intended action safe before giving an agent a tool that creates or changes shared state.
Start here15Replication and consistency
A successful write and a fresh read are separate promises. Make agent tools explicit about both before letting an observation trigger another action.
Reference16Timeouts and retries
Give agent tool calls a shared deadline and a limited retry allowance; report uncertainty when either runs out.
Start here17Canary deployments
Release an agent-assisted change to a small production cohort, then use evidence to decide whether exposure should grow.
Reference18OAuth PKCE
Keep each browser login tied to its own verifier when connecting an agent host to a protected tool service.
ReferenceNo matching concepts
Try a shorter search, or clear the filters to see the whole book.