ToolDefinition is the stable callable contract for Agent tools.
The current runtime treats tools as first-class runtime objects rather than prompt-only suggestions.
Current shape
Each tool definition carries:namedescriptioninputSchemaownershippermissionPolicy
Ownership
Current ownership values:managedmcpcustom
managed- runtime-owned capability
mcp- capability exposed through MCP
custom- capability that requires user-side or app-side fulfillment
Permission policies
Current permission policies:always_allowalways_ask
Custom tools
Custom tools are special because they do not complete inside the same bounded harness run. Instead:- the harness emits
agent.custom_tool_use - the session pauses with
requires_action - a later
user.custom_tool_resultevent resumes the session
What does not belong here
Tool definitions are not:- session scheduling
- shared chat routing
- work publication
- environment configuration