Autonomy is a budget
An agent should not have unlimited permission to decide, call tools, and change business state. Its autonomy should be scoped by the cost of a mistake and the reversibility of the action.
Read-only investigation can be broad. A financial write, deletion, or external message should require stronger validation or a human approval step.
Make every action legible
The workflow should record the request, the selected tool, the arguments, the result, and any approval. This is valuable for debugging, compliance, and the user who wants to understand what happened.
The best agent interface often feels less magical than a demo. It gives people a clear way to pause, inspect, correct, and continue.
Give the agent a narrow operating envelope
An agent should have a small tool set, typed arguments, a maximum step count, and an explicit stop condition. A tool should return structured results that the model can interpret, not raw database rows with hidden permissions.
stateDiagram-v2
[*] --> Planning
Planning --> NeedsApproval: high-impact action
Planning --> ToolCall: read-only or low-risk action
ToolCall --> ValidatingResult
ValidatingResult --> Planning: more information needed
ValidatingResult --> Completed: goal satisfied
NeedsApproval --> ToolCall: approved
NeedsApproval --> Cancelled: rejected or expired
Planning --> Failed: budget or dependency exceeded
Approval is part of the protocol
Approval should bind to a specific proposed action, not to a vague conversation. Show the target resource, the expected side effect, and the reason the agent chose it. Expire approvals so an old plan cannot be applied after the underlying state changes.
const proposal = await agent.plan(input);
if (proposal.risk === "high") {
return approvals.create({
action: proposal.action,
expiresAt: addMinutes(new Date(), 10),
});
}
return tools.execute(proposal.action);
Debug the trajectory
Store the tool calls, arguments, validation outcomes, and user corrections with sensitive data redacted. A final answer alone cannot explain why an agent made a bad choice. The trajectory is the artifact that makes improvement possible.
