一 Key 通道復(fù)現(xiàn) Addy Osmani 的 Loop Engineering 六零件骨架)
1. 為什么 2026 年 6 月大家都在聊 Loop Engineering如果你最近刷技術(shù)社區(qū)會(huì)發(fā)現(xiàn)一個(gè)詞反復(fù)出現(xiàn)Loop Engineering。它不是又一個(gè)被包裝出來(lái)的概念而是 Google 的 Addy Osmani 在 2026 年 6 月那篇同名長(zhǎng)文里把一線工程師們零散的實(shí)踐收攏成了一套可復(fù)用的骨架。核心定義其實(shí)一句話就能說(shuō)清你不再親自給 AI 寫提示而是設(shè)計(jì)一個(gè)能自己發(fā)現(xiàn)工作、分配任務(wù)、驗(yàn)證結(jié)果、記住狀態(tài)的系統(tǒng)。你定義意圖AI 反復(fù)迭代直到完成。這跟很多人第一反應(yīng)里的讓 AI 自動(dòng)干活完全不是一回事。Loop 不是更聰明的自動(dòng)化腳本也不是 Prompt Engineering 的升級(jí)版。它是在更高一層做事把你作為提示智能體的人替換掉轉(zhuǎn)而由你設(shè)計(jì)那個(gè)提示的系統(tǒng)。就像你從每天手寫代碼改 bug變成設(shè)計(jì)一套 CI/CD 和代碼審查流程讓事情自己發(fā)生。那為什么這篇要配 TaoToken因?yàn)?Loop Engineering 落地時(shí)第一個(gè)卡住大多數(shù)人的不是概念而是接入層。一個(gè) Loop 系統(tǒng)里往往同時(shí)跑著 Claude Code、Cline、Codex 風(fēng)格的 Agent、子智能體驗(yàn)證器每個(gè)工具都要 Key、要 Base URL、要模型映射。如果每個(gè)工具各配一套憑證你的狀態(tài)和上下文還沒(méi)開(kāi)始設(shè)計(jì)光管 Key 就夠亂了。TaoToken 在這里扮演的角色就是統(tǒng)一 Key/API 通道一個(gè) Key、一個(gè)入口把多工具的模型調(diào)用收斂到一處讓你能把精力放在六個(gè)零件的組裝上而不是散落在各處的配置里。這篇面向的是已經(jīng)在用多個(gè) AI 編碼工具、想往系統(tǒng)化走的開(kāi)發(fā)者。我會(huì)交付可復(fù)制的config.toml/settings.json骨架、CC Switch 與 Cline 的接入步驟以及逐零件驗(yàn)證 Loop 閉環(huán)是否跑通的具體動(dòng)作。你不需要先成為 Agent 專家跟著配、跟著驗(yàn)就行。2. 先把 TaoToken 接入層搭好在拆六個(gè)零件之前得先把通道打通。TaoToken 的定位是統(tǒng)一 Key 通道官網(wǎng)在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 入口是 https://taotoken.net/api 。注意 API 地址不帶 UTM 參數(shù)配置里填的就是這個(gè)干凈地址。你需要先拿到 Key。登錄后進(jìn)入控制臺(tái)在 API Keys 頁(yè)面創(chuàng)建一個(gè)新 Key復(fù)制出來(lái)。這個(gè) Key 就是你后面所有工具共用的那一把——這正是統(tǒng)一通道的意義Claude Code 用它、Cline 用它、子智能體驗(yàn)證器也用它模型切換和額度都在一處看。提示Key 只顯示一次創(chuàng)建后立刻存進(jìn)你的密碼管理器或本地.env不要直接硬編碼進(jìn)會(huì)提交到 git 的配置文件。接入文檔在 https://taotoken.net/doc 里面列了各工具的 Base URL 填法和模型名對(duì)照。我建議你先花兩分鐘把文檔里的模型列表掃一遍因?yàn)楹竺媾鋍onfig.toml和settings.json時(shí)模型名要跟文檔保持一致寫錯(cuò)了會(huì)直接 404 或 401。一個(gè)常見(jiàn)的誤區(qū)是把 TaoToken 當(dāng)成某個(gè)編輯器的替代品。它不是編輯器也不是 IDE 插件它是你和模型之間的通道層。你的編輯器還是你的編輯器Agent 還是那個(gè) AgentTaoToken 負(fù)責(zé)讓它們都能用同一套憑證說(shuō)話。理解這一點(diǎn)后面六個(gè)零件的配置才不會(huì)擰巴。3. 可復(fù)制的配置骨架config.toml 與 settings.json這一節(jié)是全文最該動(dòng)手的部分。我按統(tǒng)一通道 多工具的思路給你兩套骨架你按自己用的工具挑著改。3.1 Claude Code 風(fēng)格的 config.tomlClaude Code 系工具通常讀~/.claude/config.toml或項(xiàng)目級(jí)配置。下面這份骨架把 Base URL 指向 TaoToken模型名按文檔填# ~/.claude/config.toml # 統(tǒng)一走 TaoToken 通道多工具共用同一把 Key [api] base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} # 從環(huán)境變量讀取別寫死 timeout_seconds 120 [model] # 主模型負(fù)責(zé)探索與實(shí)現(xiàn) primary claude-sonnet # 驗(yàn)證模型負(fù)責(zé)獨(dú)立檢查建議換一個(gè)模型或至少換一套指令 verifier claude-haiku max_tokens 8192 [loop] # 對(duì)應(yīng) Loop 六零件里的 Automations 與 State state_file .loop/state.json worktree_isolation true max_parallel_agents 3關(guān)鍵點(diǎn)有三個(gè)。第一api_key用環(huán)境變量占位運(yùn)行時(shí)export TAOTOKEN_API_KEY你的Key這樣配置文件可以安全進(jìn)倉(cāng)庫(kù)。第二primary和verifier刻意分開(kāi)這是后面制造者-檢查者分離的配置基礎(chǔ)。第三state_file指向倉(cāng)庫(kù)內(nèi)的.loop/state.json對(duì)應(yīng)模型忘記、倉(cāng)庫(kù)不會(huì)的原則。3.2 Cline / VS Code 風(fēng)格的 settings.jsonCline 這類插件走的是settings.json字段名不同但形狀一樣{ cline.apiProvider: openai-compatible, cline.baseUrl: https://taotoken.net/api, cline.apiKey: ${env:TAOTOKEN_API_KEY}, cline.model: claude-sonnet, cline.loop: { stateFile: .loop/state.json, useWorktree: true, subAgents: [ { name: explorer, role: implementer, model: claude-sonnet, reasoning: medium }, { name: verifier, role: checker, model: claude-haiku, reasoning: high } ] } }subAgents這一段直接對(duì)應(yīng)六零件里的 Sub-agents。注意verifier用了不同的模型和更高的 reasoning effort——這不是隨便寫的制造者給自己打分不可靠換模型、換指令才能形成獨(dú)立檢查。3.3 CC Switch 接入步驟如果你用 CC Switch 管理多個(gè) Claude 配置接入 TaoToken 的步驟是打開(kāi) CC Switch新建一個(gè)配置項(xiàng)命名比如taotoken-loop。Base URL 填https://taotoken.net/api。API Key 填你從控制臺(tái)拿到的 Key或引用環(huán)境變量。模型名按接入文檔填保存后設(shè)為當(dāng)前激活配置。在終端echo $TAOTOKEN_API_KEY確認(rèn)環(huán)境變量已生效再啟動(dòng) Claude Code。CC Switch 的好處是你可以為實(shí)現(xiàn)和驗(yàn)證各存一套配置切換時(shí)不用手改文件。這跟六零件里的分工思路是一致的。4. 逐零件驗(yàn)證 Loop 閉環(huán)是否跑通配好通道只是開(kāi)始真正要確認(rèn)的是六個(gè)零件是否各自到位、能否串成閉環(huán)。下面按零件給你可執(zhí)行的驗(yàn)證動(dòng)作。4.1 Automations確認(rèn)系統(tǒng)能自己發(fā)現(xiàn)工作自動(dòng)化是讓 Loop 從單次工具變成持續(xù)系統(tǒng)的啟動(dòng)器。驗(yàn)證方法寫一個(gè)最小定時(shí)任務(wù)讓它掃描倉(cāng)庫(kù)里失敗的測(cè)試。# 每 10 分鐘掃描一次測(cè)試狀態(tài)結(jié)果寫入 triage */10 * * * * cd /your/repo \ npm test --silent .loop/test-report.txt 21; \ echo {\ts\:\$(date -Iseconds)\,\status\:\$?\} .loop/triage.jsonl跑通的標(biāo)準(zhǔn)是.loop/triage.jsonl里開(kāi)始按時(shí)間累積記錄且失敗項(xiàng)進(jìn)入待處理隊(duì)列。如果文件一直是空的說(shuō)明自動(dòng)化沒(méi)真正觸發(fā)先查 cron 權(quán)限和路徑。4.2 Worktrees確認(rèn)并行不互相污染工作樹(shù)解決的是并發(fā)寫沖突。驗(yàn)證方法讓兩個(gè)子智能體同時(shí)改同一個(gè)文件的不同函數(shù)看是否各自在獨(dú)立目錄里工作。git worktree add ../repo-agent-a -b loop/agent-a git worktree add ../repo-agent-b -b loop/agent-b git worktree list跑通的標(biāo)準(zhǔn)是git worktree list能看到兩個(gè)獨(dú)立 checkout且兩個(gè) Agent 的提交互不干擾。合并時(shí)走正常 git 流程。如果兩個(gè) Agent 還在同一個(gè)目錄里寫說(shuō)明隔離沒(méi)生效檢查配置里的worktree_isolation。4.3 Skills確認(rèn) AI 不再冷啟動(dòng)Skill 是把我們?cè)趺醋鍪聦懗上到y(tǒng)可讀的外部知識(shí)。驗(yàn)證方法在倉(cāng)庫(kù)放一個(gè)SKILL.md寫清構(gòu)建步驟和一條別碰某函數(shù)的約定然后讓 Agent 執(zhí)行一個(gè)相關(guān)任務(wù)看它是否遵守。# SKILL.md ## 構(gòu)建 - 使用 pnpm不要用 npm ## 約定 - 不要修改 src/legacy/pay.ts 的簽名下游三個(gè)服務(wù)依賴它跑通的標(biāo)準(zhǔn)是 Agent 的輸出里體現(xiàn)出它讀到了這條約定比如主動(dòng)提示該文件受約束未改動(dòng)。如果它照改不誤說(shuō)明 skill 沒(méi)被加載檢查文件路徑和調(diào)用方式。4.4 Plugins / Connectors確認(rèn)能在真實(shí)流程中行動(dòng)連接器讓 Loop 能開(kāi) PR、更新工單、發(fā)通知。驗(yàn)證方法配一個(gè)最小連接器讓 Agent 在完成任務(wù)后創(chuàng)建一個(gè) GitHub PR。{ connectors: { github: { enabled: true, actions: [create_pr, comment] } } }跑通的標(biāo)準(zhǔn)是任務(wù)結(jié)束后真的出現(xiàn)了一個(gè) PR而不是只在本地改了文件。如果只改了本地說(shuō)明連接器沒(méi)接上檢查憑證和權(quán)限范圍。4.5 Sub-agents確認(rèn)制造者與檢查者分離這是六零件里最容易被忽略、也最關(guān)鍵的一環(huán)。驗(yàn)證方法故意讓實(shí)現(xiàn)者寫一段有 bug 的代碼看驗(yàn)證者能否獨(dú)立發(fā)現(xiàn)。# .codex/agents/verifier.toml name verifier description 獨(dú)立檢查實(shí)現(xiàn)者的輸出按測(cè)試和規(guī)范驗(yàn)證 instructions 你不參與實(shí)現(xiàn)只做檢查。發(fā)現(xiàn)任何未通過(guò)測(cè)試的改動(dòng)都要報(bào)告。 model claude-haiku reasoning_effort high跑通的標(biāo)準(zhǔn)是驗(yàn)證者報(bào)告了實(shí)現(xiàn)者沒(méi)發(fā)現(xiàn)的問(wèn)題。如果驗(yàn)證者總是說(shuō)沒(méi)問(wèn)題很可能是它和實(shí)現(xiàn)者用了同一套指令或同一個(gè)模型獨(dú)立性不夠。4.6 State確認(rèn)記憶落在磁盤上狀態(tài)是 Loop 的記憶。驗(yàn)證方法跑一輪任務(wù)后檢查.loop/state.json是否記錄了在做什么、上次結(jié)果、什么在等人類處理。{ current_goal: 讓所有測(cè)試通過(guò), last_attempt: 修復(fù)了 auth 模塊的 3 個(gè)失敗用例, pending_human: [確認(rèn)是否合并 loop/agent-a], updated_at: 2026-06-07T10:30:00Z }跑通的標(biāo)準(zhǔn)是重啟工具后Loop 能讀到這份狀態(tài)并接著上次繼續(xù)而不是從零開(kāi)始。如果每次都是冷啟動(dòng)說(shuō)明狀態(tài)沒(méi)被正確讀寫。5. 本篇常見(jiàn)錯(cuò)排查配 Loop 系統(tǒng)時(shí)報(bào)錯(cuò)大多集中在接入層和隔離層。下面幾個(gè)是我見(jiàn)過(guò)頻率最高的。401 / 403Key 沒(méi)生效。先確認(rèn)TAOTOKEN_API_KEY在當(dāng)前 shell 里能echo出來(lái)再確認(rèn)配置文件里引用的是環(huán)境變量而不是寫死的舊 Key。CC Switch 用戶注意切換配置后要重啟工具。404模型名或 Base URL 寫錯(cuò)。Base URL 必須是https://taotoken.net/api不要多加路徑。模型名對(duì)照接入文檔大小寫和連字符都要一致。兩個(gè) Agent 改同一個(gè)文件沖突。這是 worktree 沒(méi)生效的典型癥狀。檢查git worktree list確認(rèn)每個(gè) Agent 有獨(dú)立目錄。如果還在共享目錄回到 3.1 的worktree_isolation配置。驗(yàn)證者永遠(yuǎn)說(shuō)通過(guò)。大概率是制造者和驗(yàn)證者用了同一個(gè)模型、同一套指令。按 4.5 把驗(yàn)證者換成不同模型并給獨(dú)立指令。狀態(tài)文件不更新。檢查.loop/目錄是否被.gitignore排除導(dǎo)致 Agent 讀不到或者路徑寫成了絕對(duì)路徑而工具在別的目錄運(yùn)行。用相對(duì)倉(cāng)庫(kù)根的路徑最穩(wěn)。Token 消耗過(guò)快。這是 Cobus Greyling 提醒過(guò)的成本問(wèn)題每次循環(huán)都生成實(shí)現(xiàn)者加驗(yàn)證者調(diào)用量會(huì)翻倍。設(shè)計(jì)時(shí)讓分類環(huán)節(jié)廉價(jià)只在狀態(tài)顯示可操作時(shí)才生成子智能體。注意排障時(shí)優(yōu)先看接入層Key、URL、模型名這三樣占了我遇到的報(bào)錯(cuò)里的大多數(shù)。接入層沒(méi)問(wèn)題再往隔離和狀態(tài)層查。6. 把通道和零件都跑起來(lái)到這里六個(gè)零件和統(tǒng)一通道的骨架都給你了。如果你卡在接入或排障上先去 API Keys 頁(yè)面確認(rèn) Key 狀態(tài)再對(duì)照接入文檔核對(duì) Base URL 和模型名API Keys 在 https://taotoken.net/api-keys 文檔在 https://taotoken.net/doc 。想先驗(yàn)證模型通不通可以直接在模型對(duì)話里發(fā)一條測(cè)試請(qǐng)求https://taotoken.net/models 。如果你打算長(zhǎng)期跑編碼 Agent、把 Loop 當(dāng)日常系統(tǒng)用Coding Plan 更適合你https://taotoken.net/coding-plan 。最后留一句 Addy 的話給你收尾構(gòu)建循環(huán)但要以一個(gè)打算繼續(xù)做工程師的姿態(tài)去構(gòu)建它。循環(huán)設(shè)計(jì)在你帶著判斷做時(shí)是解藥在你為避免思考而做時(shí)是加速器。同一個(gè)動(dòng)作相反的結(jié)果。你仍然是這個(gè)系統(tǒng)的總工程師。