AI

Codewhale:用 Rust 寫成、支援 40 多家模型的終端機 Coding Agent,每一步都留下「收據」

本內容僅供參考,詳細使用規則與工具安全性與否,建議要進行相關安全性測試與評估

終端機 Coding Agent 的戰場早已擠滿了選手:Claude Code、Codex CLI、OpenCode、Gemini CLI……每一個都綁著自家或特定的模型。Codewhale(Codewhale-hq/Codewhale)的切入點是「任何模型都能用」:以 Rust 撰寫,內建 40 多家模型供應商,也能接本機模型。它在 10 月 30 日的 AI 開源趨勢報告中被列為終端機 Agent 的代表,目前約 41.2k stars,main 分支已超過 14,000 次 commit。


1. 專案背景與定位

Codewhale 採 MIT 授權,README 的自我介紹是「一個可在終端機中使用、支援任何模型的開源 Coding Agent」:它會閱讀 repo、編輯檔案、執行指令,直到任務完成或需要你的輸入為止。

它不只是一個 TUI,而是一個共用同一個引擎的多介面工具:終端機互動介面、給腳本與 CI 用的 codewhale exec、本機網頁介面 codewhale web(綁定 127.0.0.1)、codewhale review --pr N 做 PR 審查,以及提供 HTTP 存取的 Runtime API 與給 Zed 等編輯器用的 Agent Client Protocol(ACP)。

2. 技術架構與核心設計

  • 三種工作模式:Plan(規劃)、Work(實作)、Operate(操作)。
  • 三種權限等級:
    • Ask:執行任何非唯讀的 shell 指令前都會詢問
    • Auto-Review:由規則與一個審查模型決定是否放行
    • Full Access:完全不詢問,並關閉 Codewhale 的沙盒
  • 作業系統沙盒:macOS 使用 Seatbelt、Linux 使用 bubblewrap(需已安裝);shell 被禁止讀取 ~/.ssh、~/.aws 等憑證儲存位置。
  • 可稽核、可回復:/receipts 記錄每一個變更的檔案、執行的指令、網路與 MCP 呼叫,以及每一次核准;/undo 與 /restore 提供回復機制;/preview-request 可預覽經遮蔽處理的請求內容。
  • 長任務支援:sub-agent、fleet(多 Agent 編隊),以及可以 check-in 進 repo 的工作流程。
  • 擴充:MCP server、Skill、plugin、hook,以及實驗性的 Code mode。
  • 指令檔案:讀取 AGENTS.md;CLAUDE.md 等其他工具的指令檔需要使用者主動選擇才會載入——避免不同 Agent 的規則互相干擾。
  • 模型彈性:40 多家內建供應商(Anthropic、OpenAI、DeepSeek、Google、Mistral、Moonshot、OpenRouter、xAI 等)、任何 OpenAI 相容端點,以及 Ollama、vLLM、SGLang 的本機模型;/model auto 可以每一輪自動挑選模型。預設模型是 DeepSeek 的 deepseek-flash。

3. 社群熱度與生態採用

約 41.2k stars、3.6k forks,超過 14,000 次 commit,open issue 只有 57 個、open PR 只有 9 個——開發非常活躍而且維護得相當乾淨。安裝方式涵蓋 curl 腳本、winget、npm、Cargo、Docker、Nix,預編譯二進位檔支援 Linux、macOS、Windows 的 x64 與 arm64,另有 Termux 預覽版;社群也維護了一個 VS Code 擴充功能。

4. 局限性與潛在風險

  • Windows 沒有作業系統沙盒:README 明說 Windows 目前沒有 OS 層級的沙盒,在 Windows 上使用時,權限設定要更保守。
  • Full Access 會關閉沙盒:最高權限模式不只「不再詢問」,連沙盒都會關掉。在 CI 中使用 exec 時,應確保執行環境本身就是拋棄式的容器。
  • Auto-Review 依賴模型判斷:由審查模型決定是否放行指令,本質上仍是機率性的;高風險的 repo 建議維持 Ask 模式。
  • Telemetry 預設開啟:會送出彙總資料,可用 codewhale config set telemetry false 關閉。
  • 預設模型的資料流向:預設使用 DeepSeek 的模型,企業使用前應確認程式碼送往的模型供應商是否符合公司政策,必要時改用自架模型。
  • 多項功能仍為實驗性:Code mode、ChatGPT 驗證、Computer Use(僅 macOS、預設關閉)都標示為實驗性;原生桌面版尚未公開。
  • 一行安裝腳本:curl | sh 等於完全信任下載當下的腳本,可改用套件管理器或驗證後的二進位檔。

5. 應用價值與適用場景

最適合不想被單一模型綁住的開發者與團隊:可以依任務切換不同供應商的模型、用本機模型處理敏感程式碼,或用 /model auto 在成本與品質之間自動取捨。/receipts 對需要稽核紀錄的團隊特別有價值——每一次 Agent 做了什麼、誰核准的,都有據可查。exec 與 review --pr 則讓它可以直接放進 CI 做自動化任務與 PR 初審。

Monday 的觀點與架構建議

  • /receipts 是這個專案最值得推廣的設計:Agent 的每一個動作都應該留下可查詢的收據。這和 iFixAi 的稽核、Orca 的 diff 註解一樣,都在回答同一個問題——「Agent 到底做了什麼?」
  • 「指令檔預設只讀 AGENTS.md」是很細膩的設計:當一個 repo 同時存在多種 Agent 的設定檔,明確的載入規則可以避免意外的行為。
  • 建議的權限策略:日常開發用 Ask、熟悉的低風險 repo 用 Auto-Review、Full Access 只在拋棄式容器或 CI 中使用;Windows 使用者另外搭配 WSL 或容器取得隔離。
  • 從 Orca 的多 Agent 編排到 Codewhale 的多模型支援,可以看到 Coding Agent 正在走向「模型可替換、介面可組合、行為可稽核」的方向——這也意味著未來選擇 Agent 工具時,模型本身反而不再是唯一的考量。

參考來源