-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
llmLLM provider relatedLLM provider related
Description
Problem
LlmProvider trait has no concept of tool definitions or structured tool calls. All tool interaction goes through text parsing.
Solution
Add to LlmProvider trait:
fn supports_tool_use(&self) -> bool(defaultfalse)fn chat_with_tools(&self, messages, tools) -> Result<ChatResponse>(default delegates tochat())ChatResponseenum:Text(String)|ToolUse { id, name, input: Value }|Mixed(Vec<ContentBlock>)
Use schemars for JSON Schema generation from tool parameter types.
Acceptance Criteria
- Trait methods with default implementations (backward compatible)
- ChatResponse supports text + tool_use blocks
- JSON Schema generation via schemars derive
- Existing providers unaffected (return false for supports_tool_use)
Part of #253 (M20)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
llmLLM provider relatedLLM provider related