[ISSUE] Cation khi sử dụng 9Router với customized combo #56

Closed
opened 2026-10-06 04:30:13 +00:00 by Phu-Nguyen · 1 comment
Member

image.png
có thông báo trong claude code: "agent" isn't described by this version's model catalog; update Claude Code, or map it with behavesAs on a
modelPicker row (or modelOverrides, if it is a provider id of a model this version
knows). Until then auto-compact keeps this session within 200k tokens (the context window it assumes); if the model accepts more, append [1m] to the
model name for 1M, or set CLAUDE_CODE_MAX_CONTEXT_TOKENS to its real window;
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 restores the previous wait-for-the-API behavior

Nguyên nhân có thể do:
Claude Code 2.1.290 không có model tên agent trong catalog nội bộ. Proxy hiểu agent là alias riêng của nó, nhưng CLI không biết alias đó tương ứng model thật nào. Từ đó ra hai cảnh báo cùng một nguồn.

Cảnh báo 1 — "agent" isn't described by version's model catalog

CLI cần biết model này hành xử như model nào (tool use, thinking, effort, compact). Không có entry nào mô tả agent. Cách khai báo:

{
"modelPicker": [
{
"id": "agent",
"behavesAs": "claude-opus-5-5"
}
]
}

behavesAs phải là model ID thật mà proxy thực sự route tới. claude-opus-5-5 chỉ là ví dụ. Nếu proxy route agent sang model khác, ghi đúng model đó. modelOverrides là chỗ thay thế nếu modelPicker không khớp schema phiên bản này.

Cảnh báo 2 — auto-compact giữ session trong 200k

Cùng vì không có catalog entry, CLI không biết context window của agent. Nó giả định 200k và auto-compact theo mức đó, dù model phía sau proxy có thể nhận nhiều hơn. Ba cách:

  1. Khai báo behavesAs như trên. CLI lấy context window của model đó.
  2. Gắn [1m] vào tên model nếu cửa sổ thật là 1M: agent[1m].
  3. Set CLAUDE_CODE_MAX_CONTEXT_TOKENS đúng số token cửa sổ thật.

CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 chỉ tắt kiểm tra local, để API tự từ chối khi vượt. Không nên dùng nếu proxy im lặng cắt context.

Không có file modelPicker hay modelOverrides nào trong ~/.claude/settings.json hiện tại, nên cảnh báo xuất hiện mỗi phiên.

![image.png](/attachments/325ac8fd-eb6b-4dd8-81f3-57eac1c7355c) có thông báo trong claude code: "agent" isn't described by this version's model catalog; update Claude Code, or map it with behavesAs on a modelPicker row (or modelOverrides, if it is a provider id of a model this version knows). Until then auto-compact keeps this session within 200k tokens (the context window it assumes); if the model accepts more, append [1m] to the model name for 1M, or set CLAUDE_CODE_MAX_CONTEXT_TOKENS to its real window; CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 restores the previous wait-for-the-API behavior Nguyên nhân có thể do: Claude Code 2.1.290 không có model tên agent trong catalog nội bộ. Proxy hiểu agent là alias riêng của nó, nhưng CLI không biết alias đó tương ứng model thật nào. Từ đó ra hai cảnh báo cùng một nguồn. Cảnh báo 1 — "agent" isn't described by version's model catalog CLI cần biết model này hành xử như model nào (tool use, thinking, effort, compact). Không có entry nào mô tả agent. Cách khai báo: { "modelPicker": [ { "id": "agent", "behavesAs": "claude-opus-5-5" } ] } behavesAs phải là model ID thật mà proxy thực sự route tới. claude-opus-5-5 chỉ là ví dụ. Nếu proxy route agent sang model khác, ghi đúng model đó. modelOverrides là chỗ thay thế nếu modelPicker không khớp schema phiên bản này. Cảnh báo 2 — auto-compact giữ session trong 200k Cùng vì không có catalog entry, CLI không biết context window của agent. Nó giả định 200k và auto-compact theo mức đó, dù model phía sau proxy có thể nhận nhiều hơn. Ba cách: 1. Khai báo behavesAs như trên. CLI lấy context window của model đó. 2. Gắn [1m] vào tên model nếu cửa sổ thật là 1M: agent[1m]. 3. Set CLAUDE_CODE_MAX_CONTEXT_TOKENS đúng số token cửa sổ thật. CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 chỉ tắt kiểm tra local, để API tự từ chối khi vượt. Không nên dùng nếu proxy im lặng cắt context. Không có file modelPicker hay modelOverrides nào trong ~/.claude/settings.json hiện tại, nên cảnh báo xuất hiện mỗi phiên.
Owner

Đã xử lý trong v2.2.0 (commit f0500dc5).

Mỗi profile AI Router giờ có trường tuỳ chọn Behaves as (Settings → AI Router): chọn model claude-… thật mà router route tới. Khi profile có trường này, AgentHub ghi các dòng modelPicker.options { model, behavesAs } vào file --settings riêng của router (<data dir>/router-settings/<name>.json), mỗi tên model không phải claude-* một dòng (ví dụ combo agent của 9Router). Nhờ đó Claude Code biết combo hành xử như model nào, lấy đúng context window để auto-compact, và không còn báo "isn't described by this version's model catalog".

Nếu không đặt Behaves as thì AgentHub không ghi gì. Lý do: Claude Code chỉ lấy modelPicker đầu tiên theo thứ tự policy → flag → user, nên dòng của AgentHub sẽ che mất cấu hình riêng của người dùng. Code nằm ở modelPicker trong server/lib/router-apply.js và normalizeBehavesAs trong server/lib/ai-routers.js.

Cách dùng: vào Settings → AI Router, sửa profile 9Router, chọn Behaves as (ví dụ claude-opus-5-5), rồi mở session mới với router đó.

Đóng issue.

Đã xử lý trong **v2.2.0** (commit `f0500dc5`). Mỗi profile AI Router giờ có trường tuỳ chọn **Behaves as** (Settings → AI Router): chọn model `claude-…` thật mà router route tới. Khi profile có trường này, AgentHub ghi các dòng `modelPicker.options` `{ model, behavesAs }` vào file `--settings` riêng của router (`<data dir>/router-settings/<name>.json`), mỗi tên model không phải `claude-*` một dòng (ví dụ combo `agent` của 9Router). Nhờ đó Claude Code biết combo hành xử như model nào, lấy đúng context window để auto-compact, và không còn báo "isn't described by this version's model catalog". Nếu không đặt Behaves as thì AgentHub không ghi gì. Lý do: Claude Code chỉ lấy `modelPicker` đầu tiên theo thứ tự policy → flag → user, nên dòng của AgentHub sẽ che mất cấu hình riêng của người dùng. Code nằm ở `modelPicker` trong `server/lib/router-apply.js` và `normalizeBehavesAs` trong `server/lib/ai-routers.js`. Cách dùng: vào Settings → AI Router, sửa profile 9Router, chọn Behaves as (ví dụ `claude-opus-5-5`), rồi mở session mới với router đó. Đóng issue.
Sign in to join this conversation.
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Smartgift-AI/AgentHub#56