Field guide / 12 min
Choose who owns the agent loop
Responses for application-owned control; Agents SDK for SDK-managed execution.
An agent plans, calls tools, carries state, and may hand work to specialists. The key architecture decision is not how many agents exist—it is who owns the run loop, tool policy, state, approvals, and trace.
Working principles
One controller
Assign one layer to advance the run and resolve terminal states. Split-brain orchestration produces duplicated actions and unclear recovery.
Specialists need contracts
A handoff should define the goal, permitted tools, relevant context, output shape, and authority returned to the caller.
Trace before scale
Instrument one-agent runs before adding handoffs. Complexity without traces hides whether coordination improves the result.
Field procedure
- 01
Select loop ownership
Use Responses when your application owns each turn; use the Agents SDK when you want the SDK runtime to advance tools and handoffs.
- 02
Define terminal states
Specify success, blocked, needs approval, budget exhausted, cancelled, and failed—with a caller action for each.
- 03
Bound every specialist
Give each specialist one outcome and a limited tool set. Return a typed result rather than an open-ended transcript.
- 04
Insert approval boundaries
Pause before external messages, destructive changes, purchases, credential use, or other high-impact actions.
- 05
Evaluate the workflow
Measure task success, tool errors, handoff count, latency, cost, and human interventions against a single-agent baseline.
PASS / FAIL
Acceptance checklist
- Loop owner is unambiguous.
- Stop and cancellation paths are tested.
- Handoffs carry bounded context and typed results.
- Traces exclude secrets and support incident review.
WATCH / REJECT
Failure patterns
- Adding agents as a substitute for a clear task graph.
- Allowing both app code and SDK code to retry writes.
- Calling a workflow complete when the transcript merely sounds confident.