Feature Request: Add `toolChoice` Parameter for Tool Selection Control
- Lenguaje dominante
- Java
- Estrellas
- 10.5k
- Forks
- 1.5k
- Merge medio
- 1 d 11 h
- PR fusionados (30 d)
- 127
Descripción
## Summary
Add a `toolChoice` parameter to control how the model selects tools, similar to the [Vercel AI SDK](https://github.com/vercel/ai).
## Proposed Type
```typescript
type ToolChoice = 'auto' | 'none' | 'required' | { type: 'tool'; toolName: string };
```
| Value | Behavior |
|-------|----------|
| `auto` | Model decides whether to call tools (default) |
| `none` | Model must not call any tools |
| `required` | Model must call at least one tool |
| `{ type: 'tool', toolName }` | Model must call the specified tool |
## Usage Example
```typescript
// Force tool usage
await session.send({
prompt: "What's the weather in Seattle?",
toolChoice: "required"
});
// Prevent tool usage
await session.send({
prompt: "Explain how weather forecasting works",
toolChoice: "none"
});
// Force specific tool
await session.send({
prompt: "Get Seattle weather",
toolChoice: { type: "tool", toolName: "get_weather" }
});
```
## Reference
- Vercel AI SDK: [toolChoice docs](https://ai-sdk.dev/docs/ai-sdk-core/tools-and-tool-calling)
- OpenAI: [tool_choice parameter](https://platform.openai.com/docs/api-reference/chat/create#chat-create-tool_choice)
## Contribution
I'm willing to implement the SDK changes (types, session.send, tests, docs) once backend support is confirmed.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.