Skip to content

Production Checklist

Before going live, wire up the controls that protect token spend, recover from failure, and let you debug.

ConcernKnobWhere it lives
Make topology intentionalExplicit mode, a declared governance role DAG, or an ExecutionRouter; inspect routingDecisionRunTeamOptions / OrchestratorConfig
Control task dispatchEvent-driven scheduling by default; use onTaskDispatch for per-task approval, or onApproval for legacy batch rounds (not both)OrchestratorConfig
Bound the conversationmaxTurns per agent + contextStrategy (sliding-window / summarize / compact / custom)AgentConfig
Bound wall-clock timecallTimeoutMs per model call + timeoutMs per agent runAgentConfig
Cap tool outputmaxToolOutputChars (or per-tool maxOutputChars) + compressToolResults: trueAgentConfig and defineTool()
Recover from failurePer-task maxRetries, retryDelayMs, retryBackoff (exponential multiplier)Task config used via runTasks()
Survive a crash or restartcheckpoint (opt-in per-run snapshots) + orchestrator.restore() to resumeOrchestratorConfig / per-call
Bound model spendmaxTokenBudget, or maxCostBudget with a caller-owned estimateCost functionOrchestratorConfig
Catch stuck agentsloopDetection with onLoopDetected: 'terminate' (or a custom handler)AgentConfig
Trace and auditPersist traces in a TraceStore; derive buildExecutionReceipt(result, trace); export an offline renderRunViewer({ result, run })OrchestratorConfig / post-run
Redact telemetryDetected credentials are removed from trace and viewer display fields on a best-effort basis; apply a sink policy before exportbuilt-in + your telemetry sink
Redact persisted stateCheckpoints and shared-memory values are not covered by telemetry redaction; wrap the durable store in RedactingStore when secrets may be writtenMemoryStore / checkpoint store
Prove required reviewCheck governanceConclusion after a governanceIntent: 'required' run; runtime success does not mean governance succeededTeamRunResult
Grant tools deliberatelyBuilt-in tools are opt-in (default-deny): an agent gets only what it lists in tools / toolPreset; list neither and it gets none. bash stays unsandboxed once granted, and every tool result is sent to your model provider — so grant read/exec access on purpose. defaultToolPreset restores the old “all tools” behavior in one lineAgentConfig / OrchestratorConfig
Bound filesystem reachcwd / defaultCwd (default .agent-workspace subdir; widen with process.cwd(), disable with null)AgentConfig / OrchestratorConfig

The deep dives cover Execution Routing, Task scheduling and dispatch, cost and budget controls, context management, tool configuration, observability and execution receipts, and checkpoint and resume.