One bounded capability
Prefer propose_recovery_option over a generic execute_sql or unrestricted HTTP tool.
Tools are where model intent becomes real-world effect. Make each capability narrow, typed, permissioned, idempotent where needed, and verifiable.
A conventional API can expose a large action surface, weak validation, implicit authority, and ambiguous failure behavior. An agent-facing tool should expose only the capability the agent actually needs.
Make dangerous actions harder to express. The tool schema should encode policy, not merely transport parameters.
Prefer propose_recovery_option over a generic execute_sql or unrestricted HTTP tool.
Use enums, required identifiers, ranges, and structured payloads.
Require the right actor, approval token, tenant, scope, or capability before side effects occur.
Side-effecting actions should use request IDs or business keys so retries do not duplicate consequences.
Return policy denial, stale state, validation failure, conflict, and transient failure distinctly.
After execution, provide a way to re-read authoritative state and confirm the intended effect.
Evaluate tool designs against the agent boundary and authority matrix from the prior lessons.
Define one production-facing capability clearly enough that engineering, security, and operations could review the same artifact.