Tool records and pass them through AgentSdk.DefineTool(...). A tool can include:
- JSON
Parametersshown to the model InputSchema,OutputSchema, andEventSchemavalidation delegates- a per-tool
Timeoutand asynchronousExecutedelegate - unconditional or conditional approval
OnToolCalledandOnResponseReceivedfor interactive work- next-turn overrides and recoverable tool-error handling
RuntimeContext.EmitProgress for preliminary results, SetContext for application context, and CancellationToken for cancellation-aware dependencies.
Independent tools can run concurrently through ToolExecutionConfig. Saved tool-result messages retain model call order even if execution finishes in a different order.