
1. 一次任務從回車到返回Claude Code 到底在背后做了什么你已經(jīng)在 Claude Code 里配好了 GLM敲下一句“幫我重構這個 Service”然后看著終端里光標轉圈、文件被讀、代碼被改。整個過程看起來像“模型在寫代碼”但真實情況是Claude Code 把 GLM 當成一個只會說下一步該干嘛的決策器真正干活的是它自己的 Agent Runtime。這篇就把這條鏈路拆開請求怎么組裝、經(jīng)過統(tǒng)一 Key/API 通道怎么轉發(fā)、響應怎么回填到狀態(tài)機、循環(huán)什么時候收斂。面向的是已經(jīng)配好 GLM、想看清每一跳的開發(fā)者。我會給出可復制的配置片段、逐步驗證動作以及怎么對照日志確認每一跳都走通了。先給一個腦內結構后面所有細節(jié)都掛在這上面你輸入任務 ↓ Claude Code UICLI / IDE 插件 ↓ Agent Runtime調度器 狀態(tài)機 工具執(zhí)行器 ↓ Model AdapterOpenAI-compatible 適配層 ↓ HTTP(S) 請求 → 統(tǒng)一 Key/API 通道 → GLM 接口 ↓ 響應回填 → 狀態(tài)更新 → 下一輪循環(huán)關鍵認知只有一句Claude Code 不知道自己在用 GLM。它只認“一個兼容 OpenAI 風格、支持 function calling 的對話接口”。你配的base_url、api_key、model三件套最終都被適配層翻譯成標準 HTTP 請求。理解這一點后面所有“為什么報錯”“為什么模型不調工具”都能對上號。單次任務里模型調用通常不是 1 次而是 5 到 30 次。每一次調用 GLM 只回答一個問題“下一步做什么”——是讀文件、是改代碼、還是給出最終答復。任務完成與否不由 GLM 說了算而由 Claude Code 根據(jù)文件系統(tǒng)、diff、工具返回結果來判斷。這就是為什么換模型后成功率差異主要落在tool-calling 穩(wěn)定性上而不是“模型聰不聰明”。下面按真實執(zhí)行順序從配置階段講到循環(huán)收斂再講怎么用統(tǒng)一通道驗證每一跳。2. 配置階段Base URL、Key、Model ID 三件套怎么落到請求上配置只發(fā)生一次但它決定了后面每一次請求長什么樣。Claude Code 配置 GLM 時你實際在做三件事告訴它模型是誰、去哪請求、怎么鑒權。第一件模型標識。Claude Code 內部沒有glm這個分支它統(tǒng)一走 OpenAI-compatible adapter。所以你寫的model字段會被原樣塞進請求體的model參數(shù){ provider: openai-compatible, model: glm-4.7 }第二件請求地址。你填的base_url會被拼成具體的 endpoint通常是POST /chat/completions新協(xié)議下也可能是POST /responses{ base_url: https://taotoken.net/api }第三件鑒權。api_key最終變成請求頭里的Authorization: Bearer xxxxx。把這三件套寫進 Claude Code 的 settings 文件路徑和字段名要對齊。以常見的~/.claude/settings.json為例可復制片段如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的統(tǒng)一Key, ANTHROPIC_MODEL: glm-4.7 } }如果你用的是 Codex 風格的auth.json三件套同樣要寫全缺一個都會在請求階段暴露{ base_url: https://taotoken.net/api, api_key: sk-你的統(tǒng)一Key, model: glm-4.7 }這里有個容易踩的坑base_url末尾不要自己再拼/chat/completions。適配層會負責拼接你多寫一段就會變成/api/chat/completions/chat/completions直接 404。統(tǒng)一 Key 在https://taotoken.net/api-keys獲取拿到后先別急著跑任務用一條最小請求驗證通道。配置完成后Claude Code 內部只是把 Model Adapter 準備好了還沒有任何任務執(zhí)行。真正的交互從你按下回車那一刻開始。3. 可復制配置把統(tǒng)一 Key 通道接進 Claude Code 并驗證連通這一節(jié)給你能直接抄的配置和驗證命令。目標是把統(tǒng)一 Key/API 通道接進 Claude Code并且用一條 curl 確認通道本身是通的再去跑任務。先確認你的 settings 文件位置。CLI 版通常在~/.claude/settings.jsonIDE 插件版在項目根目錄的.claude/settings.json。寫入下面這段注意把 Key 換成你自己的{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的統(tǒng)一Key, ANTHROPIC_MODEL: glm-4.7 } }如果你用的是 Cline MCP 或 CC Switch 這類工具配置項名稱可能不同但三件套邏輯一致Base URL 填https://taotoken.net/apiKey 填統(tǒng)一 KeyModel ID 填glm-4.7。CC Switch 里對應的是 provider 的baseUrl、apiKey、model三個字段別只填兩個。配置寫完后先用 curl 打一條最小請求確認通道和模型都活著curl -s https://taotoken.net/api/chat/completions \ -H Authorization: Bearer sk-你的統(tǒng)一Key \ -H Content-Type: application/json \ -d { model: glm-4.7, messages: [ {role: user, content: 只回復兩個字通了} ], temperature: 0.2 }正常返回里會有choices[0].message.content內容就是“通了”。如果這一步就失敗先別去 Claude Code 里排查問題在通道或 Key 上。常見返回返回現(xiàn)象含義處理401 UnauthorizedKey 無效或沒帶上檢查Authorization頭確認 Key 沒空格404 Not Found路徑拼錯確認 base_url 是https://taotoken.net/api不要重復拼 endpoint400 model not found模型名寫錯換成通道支持的 GLM 模型 ID超時無響應網(wǎng)絡或通道問題換網(wǎng)絡環(huán)境重試確認不是本地代理攔截curl 通了之后再回到 Claude Code 跑一個只讀任務比如“列出當前目錄結構并解釋每個文件夾的作用”。這個任務不需要改文件能最快看出請求是否正常發(fā)出、響應是否正?;靥睢E艿臅r候打開 verbose 日志觀察每一跳。4. 驗證請求從回車到響應回填逐跳對照日志任務真正開始時Claude Code 不會把你那句話直接發(fā)給 GLM而是先做結構化封裝。內部狀態(tài)大概長這樣AgentState { goal: 重構 PHP Service, history: [], workspace_snapshot: {...}, rules: [...], tools: [...] }這一步完全沒有調用大模型。接下來才構造第一次 Prompt它由六部分組成順序很重要System PromptAgent 靈魂定義它是 coding agent、能調哪些工具、輸出格式、Developer PromptClaude Code 內置的拆任務規(guī)則、Workspace Context目錄結構、已讀文件、Git 狀態(tài)、Tool Schema函數(shù)調用定義、Conversation History首次為空、User Message你輸入的那句話。拼完之后才發(fā)出真正的 HTTP 請求。抽象形態(tài)如下POST /chat/completions Host: taotoken.net Authorization: Bearer sk-你的統(tǒng)一Key Content-Type: application/json { model: glm-4.7, messages: [ {role: system, content: 你是一個 coding agent...}, {role: user, content: 幫我重構這個 PHP Service} ], temperature: 0.2, tools: [...], tool_choice: auto }GLM 返回的通常不是“答案”而是三種意圖之一。第一種是純文本思考加計劃content里寫著“我需要先讀取 Service 文件”。第二種是工具調用最常見{ tool_calls: [ { name: read_file, arguments: {path: app/Service/UserService.php} } ] }第三種是多工具加隱式 Chain-of-ThoughtGLM 內部多步推理但 Claude Code 只吃結果不吃思考過程。收到tool_call后Claude Code 立刻執(zhí)行工具把結果寫回狀態(tài)追加一條tool_resultmessage{ role: tool, name: read_file, content: class UserService {...} }然后進入循環(huán)while (!taskDone) { response callModel(state) if (response.tool_call) { runTool() updateState() } else { applyChangesOrAskUser() } }對照日志時你要盯的是每一輪請求的messages數(shù)組是不是在變長、tool_calls是不是被正確解析、tool_result是不是被回填。如果某一輪之后messages不再增長說明循環(huán)卡住了通常是工具執(zhí)行失敗或響應結構不符合預期。5. 常見報錯排查401、local proxy failed、reading choices、OAuth跑 GLM 接入時報錯基本集中在幾個固定位置。下面按真實報錯對照排查。401 UnauthorizedKey 沒帶上或帶錯。檢查 settings 里ANTHROPIC_AUTH_TOKEN是否等于統(tǒng)一 Key注意別把Bearer前綴重復寫進去。有些工具要求 Key 字段不帶前綴有些要求帶按工具文檔來。用第 3 節(jié)的 curl 先驗證 Key 本身有效。local proxy failed / connection refused本地代理或端口沖突。Claude Code 某些版本會起本地轉發(fā)端口如果端口被占用或本地網(wǎng)絡策略攔截就會報這個。先關掉其他占用端口的進程確認base_url指向的是https://taotoken.net/api而不是localhost。如果你本地配了系統(tǒng)代理確認它沒有攔截這個域名。reading choices 報錯 / cannot read property choices響應結構不符合 OpenAI 風格。GLM 正常返回里一定有choices數(shù)組如果適配層拿不到通常是通道返回了錯誤結構或者模型名不被支持導致返回了錯誤體。先用 curl 看原始返回確認有choices[0].message。如果 curl 正常但 Claude Code 報這個檢查是不是 settings 里ANTHROPIC_MODEL寫成了通道不支持的模型 ID。OAuth 相關報錯 / authentication failedClaude Code 默認走 Anthropic 官方 OAuth 流程你換成第三方通道后它可能還在嘗試 OAuth。解決辦法是在 settings 里顯式設置ANTHROPIC_AUTH_TOKEN和ANTHROPIC_BASE_URL覆蓋默認鑒權路徑。如果工具支持apiKey字段優(yōu)先用它而不是 OAuth。模型不調工具 / 一直返回文本這是 tool-calling 穩(wěn)定性問題不是通道問題。GLM 對tools和tool_choice的支持程度因版本而異。確認你用的模型 ID 支持 function callingtool_choice設成auto。如果還是不行把temperature調低到 0.1 到 0.2減少模型“自由發(fā)揮”。排查順序建議固定先 curl 驗證通道和 Key再看 Claude Code 日志里的請求體最后看響應體。90% 的問題在前兩步就能定位。6. 把通道固定下來統(tǒng)一 Key 與后續(xù)驗證入口鏈路拆完你會發(fā)現(xiàn) Claude Code 接 GLM 的核心就三件事配置三件套寫全、通道用統(tǒng)一 Key 打通、循環(huán)里盯住 tool-calling 是否穩(wěn)定。配置階段只發(fā)生一次但決定了后面每一次請求的形態(tài)循環(huán)階段每次任務都在重復“請求組裝 → 轉發(fā) → 響應回填 → 狀態(tài)更新”這套動作。想讓這套鏈路穩(wěn)定建議把統(tǒng)一 Key 固定在一個地方管理別在多個工具里各填一份改起來容易漏。統(tǒng)一 Key 在https://taotoken.net/api-keys獲取接入文檔在https://taotoken.net/doc里面有各工具的配置示例和字段說明。驗證模型是否正常響應可以直接用模型對話頁面發(fā)一條最小請求看返回結構是否符合預期。如果你后面要跑長期編碼任務或 Agent 循環(huán)建議用 Coding Plan把額度、模型、通道統(tǒng)一管起來避免任務跑到一半因為 Key 或額度問題中斷。鏈路本身不復雜復雜的是每一跳的細節(jié)把日志打開、把 curl 跑通剩下的就是對照著看。