github / github/copilot-sdk

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

オープン
#23 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement wishlist
主要言語
Java
スター
10.5k
フォーク
1.5k
平均マージ
1日 11時間
マージ済み PR(30日)
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 を短くまとめたダイジェスト。