器人)
在 Claude Code Router 中配置 ZCode將 ZCode 桌面 App 接入任意 Provider、Fusion 模型與 IM 機(jī)器人【免費(fèi)下載鏈接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-routerZCode 是智譜Z.ai生態(tài)中一款以桌面應(yīng)用形態(tài)運(yùn)行的 AI 編程助手。在 Claude Code RouterCCR中ZCode 被固定為App only形態(tài)本文圍繞官方配置指南docs/src/content/docs/en/configuration/agents/zcode.md逐步講解如何在 CCR Desktop 中創(chuàng)建 ZCode Profile、把 ZCode App 路由到任意 CCR Provider 或 Fusion 模型、綁定 AgentClaw IM 機(jī)器人并深入源碼剖析 CCR 為 ZCode 寫入網(wǎng)關(guān)配置的底層實(shí)現(xiàn)。讀完本文你將能獨(dú)立完成 ZCode 的接入、多實(shí)例管理與排障。如果你是 CCR 新手建議先完成 Provider 與模型的添加再閱讀 Agent Config配置概覽文檔隨后回到本文創(chuàng)建 ZCode Profile。ZCode 在 CCR 中的定位為什么是 App only與 Claude Code可 CLI/App 雙形態(tài)、Grok CLI 等不同ZCode 是一個(gè)桌面應(yīng)用沒有獨(dú)立的本地 CLI 作為主入口。因此在 CCR 中ZCode 被歸類為App only即只能通過「CCR Desktop 打開 ZCode App」的方式進(jìn)入網(wǎng)關(guān)。這一約束在源碼中是被強(qiáng)制的而不是一個(gè)可選 UI 狀態(tài)在 profiles/launch-core.ts 中profileOpenSurfaces()對(duì)workbuddy、zcode、claude-design一律返回[app]而對(duì)grok、kimi、pi、kilo則只返回[cli]同時(shí) config/config.ts 在解析 Profile 時(shí)會(huì)將agent zcode的surface直接置為app忽略用戶可能寫入的entry、frontend等字段。結(jié)論ZCode Profile 的入口模式entry mode在 CCR 中不可編輯你只能在「從 CCR 打開 ZCode App」這一固定路徑下配置其余字段。前置條件在創(chuàng)建 Profile 前請(qǐng)確認(rèn)以下三項(xiàng)均已滿足CCR Desktop 正在運(yùn)行且至少已配置一個(gè) Provider 模型任一網(wǎng)關(guān) Provider 或 Fusion 虛擬模型均可本機(jī)已安裝 ZCode 桌面應(yīng)用并完成登錄且 ZCode 的存儲(chǔ)目錄中存在其配置文件默認(rèn)位于~/.zcode/你能訪問 CCR 的Agent Config頁面并會(huì)使用Add profile按鈕。說明CCR 會(huì)主動(dòng)探測(cè)本機(jī) ZCode 的配置與登錄狀態(tài)。agents/local-providers/zcode.ts 中的zcodeCandidate()會(huì)讀取~/.zcode/v2/config.json、~/.zcode/cli/config.json以及憑據(jù)文件~/.zcode/v2/credentials.json若檢測(cè)到 ZCode Provider 的 API Key 與 baseURL會(huì)給出可導(dǎo)入的zcode-api候選若僅有登錄態(tài)但沒有可用 Key則候選會(huì)處于locked狀態(tài)并提示原因。這決定了你在 CCR 中看到的 ZCode 接入提示內(nèi)容。創(chuàng)建 ZCode Profile在 CCR Desktop 中按以下步驟創(chuàng)建 Profile進(jìn)入Agent Config點(diǎn)擊Add profile選擇ZCode填寫Config name例如ZCode - Work該名稱用于標(biāo)識(shí) Profile也用于后續(xù)命令行啟動(dòng)確認(rèn)Provider ID、Provider name與ZCode model三項(xiàng)僅在本地環(huán)境確有需要時(shí)再調(diào)整高級(jí)設(shè)置例如環(huán)境變量如果使用 AgentClaw請(qǐng)綁定一個(gè)Bot點(diǎn)擊Save保存然后點(diǎn)擊 Profile 卡片上的播放按鈕從 CCR 啟動(dòng) ZCode。為什么保存動(dòng)作不只是「存一條記錄」在源碼層點(diǎn)擊 Save 會(huì)觸發(fā) agents/zcode/profile-config.ts 中的writeZcodeGatewayConfig()它會(huì)一次性寫入三份 ZCode 配置寫入目標(biāo)作用zcode_home/cli/config.jsonZCode CLI/App 主配置網(wǎng)關(guān) Provider 與默認(rèn)模型zcode_home/v2/config.jsonZCode v2 配置追加claude-code-routerProviderzcode_home/v2/bots-model-cache.v2.json模型緩存更新默認(rèn)模型、Provider 模型列表與 revision寫入前會(huì)做一次性原始快照備份.ccr-original/.ccr-original-missing后綴每次改動(dòng)還會(huì)生成帶時(shí)間戳的.ccr-backup-timestamp副本保證用戶原始 ZCode 配置可追溯、可恢復(fù)。寫入內(nèi)容把 CCR 網(wǎng)關(guān)描述為一個(gè)kind: anthropic的 Provider其baseURL指向本機(jī)網(wǎng)關(guān)默認(rèn)http://127.0.0.1:gateway.port若網(wǎng)關(guān)監(jiān)聽0.0.0.0會(huì)自動(dòng)歸一為127.0.0.1apiKey使用 CCR 為該 Profile 分配的令牌model.main被設(shè)置為providerId/model引用。配置字段參考ZCode 固定為 App only因此可配置字段如下。保存后寫入的具體含義第三列可在本文「源碼佐證」部分找到對(duì)應(yīng)實(shí)現(xiàn)。FieldHow to set itEffectAgent選擇ZCode在 CCR 中創(chuàng)建一個(gè) ZCode App 啟動(dòng)條目Entry。Config name自由文本例如ZCode - Work標(biāo)識(shí)該 Profile桌面端命令使用ccr-app name appCLI 命令使用ccr name app。Enabled開關(guān)關(guān)閉后 Profile 不生效也不會(huì)作為啟動(dòng)條目被提供。Effect scopeOnly opened from CCR/System default將 Profile 限制為僅 CCR 啟動(dòng)時(shí)生效或?qū)⑵湓O(shè)為系統(tǒng)默認(rèn) ZCode Profile同一時(shí)刻只允許存在一個(gè)啟用的 System default ZCode Profile。Provider ID默認(rèn)claude-code-router該 ZCode Profile 引用的 Provider 標(biāo)識(shí)。Provider name自由文本默認(rèn)Claude Code Router顯示在 ZCode 中的 Provider 名稱。ZCode model某個(gè) Provider 模型或 Fusion 模型ZCode App 打開時(shí)使用的默認(rèn)模型。Config file路徑僅用于 System default ZCode Profile默認(rèn)路徑為~/.zcode/cli/config.json。Environment variablesKey/Value 行可選的高級(jí)覆蓋項(xiàng)常規(guī)使用保持為空。Bot選擇一個(gè)已保存的 Bot將 AgentClaw IM 機(jī)器人綁定到該 ZCode App 條目上。關(guān)鍵字段的源碼佐證Provider ID 與 Provider name解析邏輯位于 config/config.ts讀取providerId/provider字段缺省時(shí)回退為claude-code-routerproviderName缺省時(shí)回退為Claude Code Router。ZCode model該字段是一個(gè)路由選擇器形如Provider/Model或 Fusion 模型別名。在寫入 ZCode 配置前CCR 會(huì)用 agents/zcode/model-catalog.ts 的buildZcodeModelCatalog()解析出該模型對(duì)應(yīng)的物理 Provider 與真實(shí)模型并據(jù)此生成 ZCode 側(cè)可用的模型清單見下文「模型目錄與上下文窗口」一節(jié)。Config file / 舊版路徑兼容默認(rèn)配置路徑在 config/config.ts 中被定義為~/.zcode/cli/config.json如果 Profile 中顯式填了舊的 TOML 路徑~/.zcode/config.tomlCCR 會(huì)把它歸一化回新的默認(rèn)路徑見 profile-config.ts 與 config/config.ts保證不會(huì)誤寫舊格式。Enabled 與啟動(dòng)入口被禁用enabled: false的 Profile 不會(huì)出現(xiàn)在啟動(dòng)候選里profiles/launch-core.ts 中按名稱查找 Profile 時(shí)會(huì)直接以「not found or disabled」拒絕。CCR 對(duì) ZCode 統(tǒng)一走app形態(tài)的啟動(dòng)計(jì)劃其最終啟動(dòng)命令由profileOpenCommand()launch-core.ts拼裝為command name app。打開并使用 ZCode點(diǎn)擊 Profile 卡片上的播放按鈕即可用該 Profile 指定的 Provider 與模型打開 ZCode再次打開同一 Profile 時(shí)會(huì)激活已存在的 ZCode 窗口而不是另起新實(shí)例。從 Profile 卡片可直接復(fù)制桌面端啟動(dòng)命令ccr-app ZCode - Work appCLI 側(cè)則運(yùn)行ccr ZCode - Work app兩條命令中ZCode - Work是 Profile 名稱app是形態(tài)參數(shù)——ZCode 在 CCR 中僅支持app形態(tài)這也是defaultProfileOpenSurface()對(duì) zcode 返回app的原因launch-core.ts。ZCode Provider 的模型目錄與上下文窗口CCR 寫入的 ZCode 配置并不僅僅是「一串模型名」。為了讓 ZCode 正確展示可用模型與上下文限制CCR 會(huì)為每個(gè)模型補(bǔ)齊以下元數(shù)據(jù)默認(rèn)上下文窗口128_000128K token默認(rèn)最大輸出 Token8_192能力位支持圖片輸入textimage、結(jié)構(gòu)化輸出與工具調(diào)用tool_call: true。這些默認(rèn)值定義在 agents/zcode/profile-config.ts模型的 limit 結(jié)構(gòu)在zcodeModelConfig()同文件 #L159-L177中生成。buildZcodeModelCatalog()則會(huì)進(jìn)一步把模型解析為網(wǎng)關(guān)側(cè)的真實(shí)上下文窗口對(duì)普通 Provider 模型結(jié)合模型目錄model-catalog中登記的context_window/max_context_window取最大值對(duì) Fusion 虛擬模型通過 usage/model-attribution.ts 歸因到其物理 Provider/模型后取物理模型的實(shí)際窗口若某模型是「請(qǐng)求時(shí)路由」的動(dòng)態(tài)虛擬模型當(dāng)前不存在單一物理模型則保留基礎(chǔ)窗口而不強(qiáng)行猜測(cè)。單元測(cè)試 test/unit/agents/zcode-profile-config.test.mjs 驗(yàn)證了這一行為已知模型按解析出的實(shí)際窗口寫入示例中被歸并為1_050_000未知模型回退到默認(rèn)128_000輸出上限統(tǒng)一為8_192并且三份文件cli/config.json、v2/config.json、bots-model-cache.v2.json中的模型限制一致。順帶一提把 ZCode API 導(dǎo)入為 CCR Provider如果你希望反向使用 ZCode 的模型能力即把 ZCode / z.ai 作為 CCR 的上游 Provider讓 Claude Code 等其他 Agent 也能調(diào)用CCR 會(huì)在檢測(cè)到 ZCode 本地配置中的 API Key 后在「Add Provider」界面提供ZCode API候選并支持一鍵導(dǎo)入默認(rèn)模型候選GLM-5.2、GLM-5-Turbo默認(rèn) baseURLhttps://zcode.z.ai/api/v1/zcode-plan/anthropic協(xié)議為 Anthropic Messages檢測(cè)與導(dǎo)入邏輯見 agents/local-providers/zcode.ts。這條路徑與本文主線把 ZCode 作為 CCR 的客戶端接入方向相反但互補(bǔ)一個(gè)是「ZCode 走 CCR 的模型」一個(gè)是「CCR 走 ZCode 的模型」。多實(shí)例當(dāng)你希望用不同模型或不同 Provider 打開 ZCode 時(shí)無需反復(fù)修改一個(gè) Profile——直接創(chuàng)建多個(gè) ZCode Profile 即可。例如ZCode - Work綁定工作用 Provider 與模型ZCode - GLM綁定 Fusion/其他 Provider 與 GLM 模型ZCode - SystemEffect scope 設(shè)為System default全局僅允許一個(gè)啟用的此類 Profile。CCR 內(nèi)部通過configFile/codexHome區(qū)分不同 Profile 寫入的 ZCode 配置文件每個(gè) Profile 對(duì)應(yīng)獨(dú)立的網(wǎng)關(guān)令牌與默認(rèn)模型引用。AgentClawIM Bot 接力ZCode 桌面 App 天然是一個(gè)可以承載對(duì)話的客戶端。若滿足以下兩個(gè)條件在 Profile 上綁定了一個(gè)已保存的 AgentClawBot該 ZCode 是從 CCR 打開的而非獨(dú)立啟動(dòng)則 ZCode 可以通過所選 IM 渠道如飛書、釘釘、Discord、Telegram 等接力轉(zhuǎn)發(fā)對(duì)話。值得注意的是關(guān)閉 ZCode App 會(huì)立刻使接力Relay離線——因?yàn)橹欣^依賴 App 進(jìn)程本身存活。AgentClaw 的整體概念與渠道接入可閱讀 agentclaw.md 及對(duì)應(yīng)的 IM 平臺(tái)子頁面agentclaw 渠道文檔。驗(yàn)證接入是否成功接入完成后建議按以下三步驗(yàn)證端到端鏈路從 CCR 打開 ZCode務(wù)必點(diǎn)擊 CCR 里的播放按鈕而不是直接雙擊系統(tǒng)里的 ZCode 圖標(biāo)發(fā)送一條消息并確認(rèn)能收到回復(fù)回到 CCR 打開Request logs確認(rèn)這條請(qǐng)求確實(shí)經(jīng)過了網(wǎng)關(guān)能看到該請(qǐng)求對(duì)應(yīng)的路由與 Provider 命中記錄而不是直連了 ZCode 默認(rèn)后端。常見問題請(qǐng)求繞過了 CCRRequests bypass CCR先確認(rèn) Profile 處于Enabled狀態(tài)且你是從 CCR 打開的 ZCode。若 ZCode 之前已被獨(dú)立啟動(dòng)請(qǐng)先關(guān)閉它再從 CCR 重新打開——否則已運(yùn)行的窗口不持有 CCR 注入的網(wǎng)關(guān)配置。App 內(nèi)模型不對(duì)Wrong model in the App檢查 Profile 中的ZCode model字段是否填成了你期望的路由選擇器同時(shí)可在 CCR 的 Request logs 中核對(duì)實(shí)際命中的 Provider/模型。Bot 接力掉線Relay went offlineZCode App 必須保持打開狀態(tài)。任何關(guān)閉 ZCode App 的操作都會(huì)立即使 IM 接力離線需要重新從 CCR 啟動(dòng)它。相關(guān)文件導(dǎo)航官方指南英文原版docs/src/content/docs/en/configuration/agents/zcode.md中文鏡像docs/src/content/docs/zh/configuration/agents/zcode.mdZCode 網(wǎng)關(guān)配置寫入實(shí)現(xiàn)packages/core/src/agents/zcode/profile-config.tsZCode 模型目錄構(gòu)建packages/core/src/agents/zcode/model-catalog.tsZCode 本地配置探測(cè)與 API 導(dǎo)入packages/core/src/agents/local-providers/zcode.tsProfile 解析agent 歸一化、surface 強(qiáng)制、默認(rèn)路徑packages/core/src/config/config.ts啟動(dòng)形態(tài)與命令拼裝packages/core/src/profiles/launch-core.ts覆蓋性測(cè)試packages/core/test/unit/agents/zcode-profile-config.test.mjs【免費(fèi)下載鏈接】claude-code-routerOne local control plane for every AI agent: route across models, fuse new capabilities, orchestrate tools, and stay fully in control.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-router創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考