Context
Large tool ecosystems where naming isn't intuitive.
Problem
Agents may not know the exact tool name for a task.
Solution
Support intent-based discovery:
- Semantic search: Find tools by description
- Capability tags: "can_send_email", "can_read_calendar"
- Action mapping: "send email" → send_email tool
- Semantic search: Find tools by description
- Capability tags: "can_send_email", "can_read_calendar"
- Action mapping: "send email" → send_email tool
Examples
Python
@tool
def find_tool_by_intent(intent: str) -> list[ToolMatch]:
"""Find tools that can accomplish an intent.
Args:
intent: Natural language description like
"send a message to a user" or
"get calendar events for today"
Returns ranked list of matching tools.
"""
return semantic_search(intent, all_tools) Considerations
- Use embeddings for semantic matching
- Return multiple options with confidence scores
- Include usage examples in results