Context
Managing multiple tools in an ecosystem.
Problem
Agents need to know what tools exist and what they can do.
Solution
Maintain a tool registry:
- List all tools: Names and brief descriptions
- Categorize: Group by domain or function
- Search: Find tools by capability
- Metadata: Required auth, rate limits, etc.
- List all tools: Names and brief descriptions
- Categorize: Group by domain or function
- Search: Find tools by capability
- Metadata: Required auth, rate limits, etc.
Examples
Python
@tool
def list_available_tools(
category: str | None = None
) -> list[ToolInfo]:
"""List all available tools.
Args:
category: Filter by category (crm, email, calendar)
Returns list with name, description, required_scopes.
"""
tools = registry.get_all()
if category:
tools = [t for t in tools if t.category == category]
return tools Considerations
- Include enough detail for tool selection
- Consider versioning as tools evolve
- Return authentication requirements upfront