github / github/copilot-cli

Per-agent provider selection for custom agents

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

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

area:agents 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ả

I know about BYOK (COPILOT_PROVIDER_BASE_URL plus COPILOT_MODEL), /model, and the model field in custom-agent frontmatter. We use all three. None of them lets two agents in one session talk to two different endpoints, because COPILOT_PROVIDER_BASE_URL is process-wide and nothing scopes it to an agent. That is the difference between this and #3624 and copilot-sdk#1545, both closed within hours pointing at the BYOK docs.

The ask

A provider field in custom-agent frontmatter. Or the per-agent env/env_file scoping that #2879 proposes for secrets, which would do the same job. The main agent keeps the session provider. The subagent gets its own base URL.

What the runtime already does

I put a recording HTTP server at COPILOT_PROVIDER_BASE_URL on 1.0.83-3 and dispatched a custom agent through the task tool. Three requests came out of one session:

1  model=local-worker-model  tools=24  main agent
2  model=ROUTE-ME-LOCAL      tools=1   subagent; model from its .agent.md frontmatter,
                                       its own instructions in the system prompt
3  model=local-worker-model  tools=24  main agent

The model override on the task tool arrives the same way. The per-agent model id already reaches the provider, and v1.0.62 ("Keep custom agents on their configured model when using BYOK providers") and v1.0.65 for subagents made that deliberate. What it cannot carry is an endpoint to send that id to.

Use case

A cloud main agent plans and reviews. It hands renames, comment edits, log lines and single-file changes to a subagent running a 27B model on the developer's Mac (MLX, 48 GB). Those tokens cost nothing. I am not claiming the local model matches the cloud one. On our own eight-task benchmark two local models came out indistinguishable from each other, and the only claim I will stand behind is free tokens for mechanical work. Judgement stays in the cloud.

What we tried

A routing proxy at COPILOT_PROVIDER_BASE_URL, keyed on the model id. Known local ids go to the MLX server and the proxy forwards the rest to GitHub. Two problems killed it. It puts the main agent's traffic through GitHub endpoints that are not documented for that use. And the docs say "A declared model or effort that can't be honored falls back to the session's value instead of failing the dispatch", so any proxy error on a local id sends that task to the session model instead. You find out from the bill rather than from an error.

Related

  • #2879 asks for per-agent env:/env_file: to isolate secrets. Same mechanism, different reason for wanting it.
  • #2728 asks for per-agent LSP config, so per-agent configuration beyond model is a shape this project already accepts.
  • #3709, #3282, #1354, #2554 and #2758 want the model version of this. A commenter on #3709 already asked for subagents to use the other models a provider offers.
  • copilot-sdk#1544 named routing subagent tasks to a local endpoint. Its author closed it 14 minutes later while still investigating, and nobody from GitHub replied.

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 với đường dẫn dispatch của task tool và cách xử lý custom-agent frontmatter, sau đó lần theo cách COPILOT_PROVIDER_BASE_URL áp dụng trên toàn phiên và model riêng của từng agent đến được provider như thế nào. Xác định cách một subagent chọn endpoint riêng của nó trong khi agent chính vẫn giữ provider của phiên, đồng thời xác minh rằng một phiên chứa cả hai agent định tuyến các yêu cầu chính xác mà không bị nhầm lẫn do fallback.

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
ai, cli
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
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.