github / github/copilot-cli

Compaction fails with "CAPIError: 400 Tool choice must be auto" on custom models

Đang mở
#4,646 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

triage
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

Session compaction (manual /compact and automatic compaction at the context threshold) fails with:

Compaction failed. CAPIError: 400 Tool choice must be auto

whenever the session is running a custom model (e.g. ~z-ai/glm-latest registered through a custom OpenRouter-compatible provider). The compaction summary request appears to force a tool call, and CAPI rejects non-auto tool choice for custom models, so compaction can never succeed on them.

Switching the same session to a first-party model (e.g. GPT-5.6 Luna or Claude Sonnet 4.6) and running /compact succeeds, confirming the failure is tied to the custom model's tool-choice capability, not the session contents.

Affected version

GitHub Copilot CLI 1.0.80 (also confirmed still present in the 1.0.81-14 prerelease)

Steps to reproduce the behavior
  1. Register a custom model via an OpenRouter-compatible provider (e.g. ~z-ai/glm-latest)
  2. Start a session on that model and work until auto-compaction triggers (or run /compact manually)
  3. Observe: Compaction failed. CAPIError: 400 Tool choice must be auto
  4. Switch the session to a first-party model and run /compact — it succeeds
Expected behavior

Compaction should succeed on custom models, e.g. by falling back to tool_choice: auto with a prompt-based summary when the selected model does not support forced tool choice.

Additional context
  • Reproducible across multiple sessions and repositories whenever the session model is a custom one; first-party models (GPT/Claude/Gemini) compact fine.
  • After the failed compaction the session keeps growing and eventually hits context/size failures, since auto-compaction can never complete on custom models.

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

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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện lỗi với /compact trên một model tùy chỉnh tương thích với OpenRouter, sau đó so sánh với một model first-party. Báo cáo không nêu file mã nguồn hay test nào, vì vậy hãy lần theo yêu cầu compact từ entry point /compact và kiểm tra cách xử lý việc chọn tool. Được xem là hoàn tất khi cả compact thủ công và tự động đều hoàn thành thành công đối với các model tùy chỉnh mà không gặp lỗi CAPI.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Lĩnh vực
api, cli
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

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.