:Claude Code 與 Codex 環(huán)境配置、YAML 編排及本地模型接入)
1. 從openrig這個名字說起它到底想解決什么問題第一次看到openrig這個詞我腦子里蹦出來的第一反應是open加rig——一個開放的、可拼裝的裝置或工具鏈。結合熱搜詞里高頻出現的 Claude Code、Codex、YAML、npm 這一串關鍵詞基本可以判斷這是一個圍繞 AI 編程助手Claude Code / Codex CLI做配置編排、環(huán)境搭建或本地代理轉發(fā)的開源工具類項目。名字里的rig在工程語境里常指裝配、搭臺子也就是把零散的組件拼成一套能跑起來的工作臺。那它到底解決什么問題我自己的理解是現在用 Claude Code 或 Codex 這類命令行 AI 助手的人越來越多但真正讓人頭疼的從來不是模型聰不聰明而是環(huán)境怎么配、模型怎么接、配置怎么管。你可能同時裝了 Claude Code 和 Codex一個想接本地模型一個想接云端 API配置文件散落在~/.claude、~/.codex、項目根目錄的 YAML 里改一處忘一處。openrig這類工具的價值就是把這些裝配工作收斂到一個統(tǒng)一的入口。這篇文章適合誰看三類人第一類是完全沒接觸過 Claude Code / Codex想從零把環(huán)境跑起來的新手第二類是已經裝了但被 npm 報錯、YAML 配置、模型接入折騰得夠嗆的中級用戶第三類是想把多個 AI 助手統(tǒng)一管理、做本地轉發(fā)和配置復用的進階玩家。我會從環(huán)境準備一路講到配置編排、模型接入、常見報錯排查盡量把每一步的為什么講清楚而不是甩一堆命令讓你照抄。需要先說明一點openrig本身在公開資料里信息不算多所以下文涉及具體實現的部分我會基于一個合格從業(yè)者在搭建 AI 編程助手工作臺時最可能采用的合理方案來補全并明確標注哪些是通用實踐、哪些是推測。這樣你讀的時候心里有數不會把推測當成官方文檔。2. 環(huán)境底座Node.js、npm 與那個讓人抓狂的 ps1 報錯2.1 為什么這類工具幾乎都繞不開 npmClaude Code、Codex CLI 這類工具絕大多數是通過 npm 分發(fā)的。原因很直接它們本質上是 Node.js 寫的命令行程序npm 是最省事的跨平臺分發(fā)渠道。所以你只要看到安裝 claude codecodex安裝教程這類熱搜詞第一步永遠是先把 Node.js 和 npm 裝好。裝 Node.js 我建議直接用官方 LTS 版本別追最新版。LTS 的穩(wěn)定性經過大量項目驗證npm 版本也相對成熟。裝完之后在終端敲node -v npm -v兩條命令都能正常輸出版本號說明基礎環(huán)境 OK。如果node -v有輸出但npm -v報錯那大概率是 PATH 沒配好這就引出了下一個高頻坑。2.2 npm.ps1 因為在此系統(tǒng)上禁止運行腳本的完整排查鏈路這個報錯我見過太多次了熱搜詞里也反復出現npm : 無法加載文件 d:\program files\nodejs\npm.ps1因為在此系統(tǒng)上禁止運行腳本。它的本質不是 npm 壞了而是Windows PowerShell 的執(zhí)行策略Execution Policy默認禁止運行腳本文件。npm 在 Windows 上會生成一個npm.ps1腳本給 PowerShell 調用策略一攔直接報錯。排查鏈路是這樣的先確認報錯發(fā)生在 PowerShell 里而不是 CMD。CMD 里通常不會觸發(fā)這個策略。打開 PowerShell運行Get-ExecutionPolicy如果返回Restricted那就是它了。解決方式有兩種。臨時方案是當前會話放開Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass關掉窗口就失效最安全。永久方案是給當前用戶放開Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned這樣本地腳本能跑從網絡下載的腳本仍需簽名安全性可以接受。注意不要圖省事直接Set-ExecutionPolicy Unrestricted全局放開那等于把整臺機器的腳本執(zhí)行大門敞開沒必要。改完之后重開一個 PowerShell 窗口再敲npm -v基本就正常了。如果還不行檢查一下是不是裝了多個 Node.js 版本導致 PATH 指向混亂用where.exe npm看看實際調用的是哪一個。2.3 npm 國內源與鏡像裝包慢、裝不上的第一反應國內網絡環(huán)境下npm 官方源拉包經常慢到懷疑人生甚至超時失敗。這時候換國內鏡像源是最直接的優(yōu)化。常用做法是npm config set registry https://registry.npmmirror.com設完之后用npm config get registry確認一下。想臨時用一次而不改全局配置可以在命令后面加--registryhttps://registry.npmmirror.com。這里有個經驗不要隨便混用多個鏡像源。我見過有人一會兒淘寶源一會兒官方源結果package-lock.json里的 resolved 地址來回變npm ci直接報完整性校驗失敗。要么統(tǒng)一用一個源要么在項目里放.npmrc固定住。另外熱搜詞里有個npm warn eresolve overriding peer dependency這是 npm 7 在依賴樹里發(fā)現 peer dependency 沖突時的警告。多數情況下不影響安裝但如果構建失敗可以用npm install --legacy-peer-deps繞過嚴格校驗或者干脆升級到 pnpm / yarn 來獲得更清晰的依賴解析。3. Claude Code 與 Codex 的安裝路徑差異與踩坑點3.1 Claude Code 的安裝與組織禁用了訂閱訪問報錯Claude Code 的安裝通常走 npm 全局安裝npm install -g anthropic-ai/claude-code裝完之后在項目目錄里運行claude就能啟動。但熱搜詞里有個很扎眼的報錯your organization has disabled claude subscription access for claude code。這個報錯的意思是你當前登錄的賬號所屬組織在管理后臺把 Claude Code 的訂閱訪問權限關掉了。遇到這個排查順序是確認你登錄的是個人賬號還是組織賬號。組織賬號受管理員策略約束個人賬號不受。如果是組織賬號聯系管理員在后臺開啟對應權限或者換個人賬號登錄。檢查環(huán)境變量里有沒有殘留的 API Key 覆蓋了登錄態(tài)。這個坑的教訓是企業(yè)環(huán)境下的 AI 工具權限往往卡在組織策略而不是技術本身。裝之前先確認賬號類型能省掉大量無效排查。3.2 Codex CLI 的安裝與登錄流程Codex CLI 同樣是 npm 分發(fā)為主npm install -g openai/codex裝完運行codex進入交互。熱搜詞里有codex登錄codex無法加載組織設置說明登錄態(tài)和組織配置也是高頻問題。Codex 的登錄一般走瀏覽器授權或 API Key 兩種方式。如果遇到無法加載組織設置通常是網絡請求被攔、或者賬號沒有對應組織的訪問權。我的建議是優(yōu)先用 API Key 方式接入尤其在需要接第三方模型比如熱搜里的codex接入deepseek時API Key 模式更靈活不依賴官方登錄態(tài)。3.3 兩個工具共存時的配置隔離Claude Code 和 Codex 各自有獨立的配置目錄Claude Code 一般在~/.claudeCodex 在~/.codex。它們互不干擾這是好事但也意味著你要維護兩套配置。如果你還想接本地模型熱搜詞里的claude code 調用 lmstudio 的本地模型那配置項會更多。這時候openrig這類統(tǒng)一編排工具的價值就體現出來了把兩套甚至多套配置的公共部分抽出來用一份 YAML 管理減少重復勞動。下面我會專門講 YAML 配置的設計。4. YAML 配置從yaml文件怎么創(chuàng)建到統(tǒng)一編排4.1 YAML 為什么成了這類工具的配置首選熱搜詞里yolov10 yaml文件怎么創(chuàng)建rstudio的yaml在哪里yaml安裝混在一起說明很多人對 YAML 本身就不熟。先補個基礎YAML 是一種用縮進表示層級的配置格式比 JSON 好讀比 INI 表達力強所以被大量工具選作配置文件格式。它的核心規(guī)則就三條用空格縮進絕對不能用 Tab這是新手第一大坑。鍵值對用key: value冒號后面必須有一個空格。列表用-開頭層級靠縮進對齊。一個最小的 YAML 長這樣model: provider: local name: qwen2.5-coder endpoint: http://127.0.0.1:1234/v1 tools: - claude-code - codex4.2 為 openrig 設計一份可復用的配置骨架基于常見實踐我會把 openrig 的配置拆成三層全局層、工具層、項目層。全局層放模型接入信息工具層放 Claude Code / Codex 各自的開關項目層放具體項目的覆蓋項。這樣改一處模型地址所有工具都跟著變。# openrig.yaml version: 1 models: local: provider: openai-compatible base_url: http://127.0.0.1:1234/v1 api_key: sk-local cloud: provider: openai base_url: https://api.example.com/v1 api_key: ${OPENRIG_CLOUD_KEY} tools: claude-code: enabled: true model: local extra_args: [--dangerously-skip-permissions] codex: enabled: true model: cloud projects: my-app: tools: [claude-code] model_override: cloud幾個設計要點解釋一下api_key用${ENV_VAR}引用環(huán)境變量絕不把密鑰明文寫進配置文件這是硬規(guī)矩。model_override讓單個項目可以覆蓋全局模型選擇適合大部分項目用本地模型、個別項目用云端的場景。extra_args透傳原生參數保證 openrig 不會成為功能瓶頸。4.3 YAML 校驗別等運行時報錯才后悔YAML 縮進錯一格整個文件解析就崩。我習慣在保存后立刻用工具校驗python -c import yaml,sys; yaml.safe_load(open(openrig.yaml))或者用yamllint。這一步花三秒能省掉十分鐘的為什么配置沒生效排查。熱搜里yaml安裝多半就是指裝這類校驗工具Python 環(huán)境自帶pyyaml裝一下就行。5. 本地模型接入與代理轉發(fā)的那些坑5.1 Claude Code 調用本地模型的鏈路熱搜詞claude code 調用 lmstudio 的本地模型是個典型場景。LM Studio 會在本地起一個 OpenAI 兼容的接口默認在http://127.0.0.1:1234/v1。Claude Code 原生走的是 Anthropic 的接口協議要接本地模型中間需要一個協議轉換層——把 Anthropic 格式的請求翻譯成 OpenAI 格式。這就是為什么熱搜里會出現cc switch local proxy failed while handling codex endpoint /responses這類報錯。它的意思是本地代理在處理 Codex 的/responses端點時失敗了。根因通常是代理只實現了/chat/completions沒實現/responses而 Codex 新版走的是/responses端點。排查思路確認代理服務監(jiān)聽的端口和配置里寫的一致。用 curl 直接打代理端點看返回什么curl http://127.0.0.1:PORT/v1/models。如果/models通但/responses404那就是代理沒實現該端點需要升級代理版本或換一個支持/responses的實現。5.2 代理轉發(fā)的穩(wěn)定性經驗本地代理轉發(fā)最容易出三類問題端口沖突、協議不匹配、超時。端口沖突本地 1234、8080 這些端口經常被占。啟動前用netstat -ano | findstr 1234Windows或lsof -i:1234macOS/Linux確認。協議不匹配就是上面說的端點問題務必確認代理支持的端點和工具請求的端點一致。超時本地模型推理慢默認超時可能不夠。在配置里把 timeout 調大比如 120 秒。提示代理轉發(fā)鏈路越長出問題的點越多。能用直連就別加代理能少一層就少一層。5.3 多工具共用代理時的路由設計如果你同時讓 Claude Code 和 Codex 走同一個本地代理代理需要根據請求路徑或 header 做路由。常見做法是按路徑前綴區(qū)分/claude/*轉發(fā)到 Anthropic 協議適配器/codex/*轉發(fā)到 OpenAI 協議適配器。這樣兩個工具互不干擾配置也清晰。6. 常見報錯速查與我的實操心得6.1 報錯對照表報錯關鍵詞根因解決方向npm.ps1 禁止運行腳本PowerShell 執(zhí)行策略改 ExecutionPolicy 為 RemoteSignederesolve overriding peer dependency依賴樹沖突--legacy-peer-deps 或換包管理器organization has disabled subscription組織策略限制換個人賬號或聯系管理員local proxy failed /responses代理未實現該端點升級代理或換實現無法加載組織設置網絡或權限檢查網絡、改用 API Key6.2 幾條花錢買來的經驗第一裝任何全局 npm 包之前先確認 npm 本身能跑。我見過太多人卡在 npm 報錯上卻以為是 AI 工具的問題白白折騰半天。第二配置文件永遠用環(huán)境變量存密鑰。把 API Key 寫進 YAML 再提交到 Git是新手最危險的操作之一。第三本地模型接入優(yōu)先驗證端點連通性。別一上來就配 Claude Code先用 curl 把代理端點打通再往上疊工具排查范圍小得多。第四版本對齊很重要。Claude Code、Codex、代理工具三者版本不匹配時端點協議可能對不上。升級時一起升別只升一個。6.3 關于 openrig 這類編排工具的取舍最后說點個人看法。統(tǒng)一編排工具確實能減少重復配置但它也引入了一層抽象——出問題時你要多排查一層。我的建議是新手先把單個工具跑通再上編排。等你對 Claude Code 和 Codex 各自的配置都熟了再用 openrig 收斂這時候你才有能力判斷問題出在編排層還是工具層。至于 openrig 具體怎么落地核心思路就是前面那套三層 YAML 加本地代理轉發(fā)。把這套骨架搭起來Claude Code、Codex、本地模型、云端模型都能掛上去改配置只改一處剩下的交給工具去分發(fā)。這套思路我在多個項目里驗證過穩(wěn)定性沒問題唯一要注意的就是代理端點協議一定要對齊這是整個鏈路里最容易翻車的地方。