github / github/copilot-cli

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

Đang mở
#2,651 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
area:models
Ngôn ngữ chính
Shell
Star
11.2k
Fork
1.9k
Merge trung bình
14 giờ 16 phút
Pull request đã merge (30 ngày)
6

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.