github / github/copilot-cli

[Bug] BYOK Anthropic provider does not emit turn lifecycle and reasoning events

オープン
#2,651 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
area:models
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

### Describe the bug

When using a BYOK Anthropic provider (`type: "anthropic"`) with the Copilot SDK, several session events are never delivered to the SDK over the JSON-RPC notification channel. The SDK team investigated and confirmed the root cause is in the CLI.

See [github/copilot-sdk#1064](https://github.com/github/copilot-sdk/issues/1064) for the full SDK-side investigation.

The following events fire correctly with the default backend and BYOK OpenAI, but are absent with BYOK Anthropic:

- `assistant.turn_start`
- `assistant.turn_end`
- `assistant.reasoning`
- `assistant.reasoning_delta`
- `session.usage_info`

### Affected version

GitHub Copilot CLI 1.0.24-0.

### Steps to reproduce the behavior

A repro script that creates identical sessions across three backends and compares the set of event types delivered to `on_event` is available in the SDK issue linked above. Summary of output:

```
Default (claude-haiku-4.5): turn_start=2, turn_end=2, usage=2, message=2
BYOK Anthropic (claude-haiku-4-5): turn_start=0, turn_end=0, usage=2, message=2
BYOK Anthropic (claude-sonnet-4-6): turn_start=0, turn_end=0, usage=2, message=2
BYOK OpenAI (gpt-5.4-nano): turn_start=2, turn_end=2, usage=2, message=2
```

### Expected behavior

All backends should emit `assistant.turn_start` and `assistant.turn_end` events. The SDK documentation lists both as non-ephemeral events that are always emitted, and the agent loop documentation states "the number of `assistant.turn_start` / `assistant.turn_end` pairs equals the total number of LLM API calls."

### Additional context

- **SDK:** `github-copilot-sdk==0.2.2`
- **Provider:** Azure AI Foundry with `type: "anthropic"` provider config
- **Models tested:** `claude-haiku-4-5`, `claude-sonnet-4-6` -- both missing events
- **Controls:** Default backend and BYOK OpenAI (`gpt-5.4-nano`) on the same Foundry endpoint emit all events correctly
- **Impact:** Code that relies on turn boundaries for per-turn token accounting gets no turn-level granularity with BYOK Anthropic. `assistant.usage` events do fire, so session-level totals are still available.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。