github / github/copilot-sdk

Feature Request: Add `toolChoice` Parameter for Tool Selection Control

未关闭
#23 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
enhancement wishlist
主要语言
Java
星标
10.5k
派生
1.5k
平均合并
1 天 11 小时
30 天内合并 PR
127

描述

## 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.

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。