Claw Code 是一個以 Python 重新實作的 AI 開發助手框架,重點不只是程式碼重寫,更展現了 AI agent 在工具執行、權限管理與可稽核性上的設計思維。本文將從其核心架構出發,解析工具清單、權限拒絕、runtime 路由與 session 紀錄等機制,並延伸到企業在導入 AI 開發工具時應如何建立安全邊界與治理策略,協助組織在創新與風險控管之間取得平衡。
2026年3月31日 UTC 04:00,安全研究員、Solayer Labs 實習生 Chaofan Shou(@Fried_rice)在 X 平台發文,揭露 Anthropic 在 npm 套件 @anthropic-ai/claude-code v2.1.88 中,意外附帶了一個 59.8 MB 的 JavaScript 原始碼映射檔(.map file)。這個 .map 檔連結至 Anthropic 存放在公開 R2 雲端儲存桶的完整原始碼壓縮包,內含 2,000 個檔案、約 50 萬行 TypeScript 程式碼,以及多個「已開發但尚未部署」的功能旗標(feature flags)。16 萬人次湧入 Shou 的推文討論串。Anthropic 事後向 Axios 表示:「這是人為錯誤造成的發布問題,而非安全漏洞,沒有任何敏感客戶資料或憑證外洩。」
值得注意的是,同日 npm 上另外出現了含有遠端存取木馬(RAT)的惡意套件 axios v1.14.1 / v0.30.4,與 Claude Code 外洩事件無直接關聯,但時間高度重疊,造成資安社群一度混亂。更重要的是:Zscaler ThreatLabz 的後續分析記錄到攻擊者以 Claw Code 相關誘餌積極散布 Vidar 竊取器(Infostealer)與 GhostSocks 惡意軟體——這代表高知名度的開源事件本身也成為了社交工程攻擊的跳板,是資安團隊必須納入評估的直接威脅。
外洩消息傳出後不久,韓國開發者 Sigrid Jin(@instructkr)——曾出席 Claude Code 在舊金山舉辦的一週年慶生派對——率領團隊以「兩人、十個 OpenClaw 帳號、一台 MacBook Pro」的配置,透過 oh-my-codex(OmX)端對端自動化工作流程,在一夜之間完成 Claw Code 的 Python 乾淨重寫(clean-room rewrite)。Claw Code 在兩小時內突破 50,000 顆星,24 小時內突破 100,000 顆星與 100,000+ forks,成為 GitHub 有史以來達到十萬星速度最快的專案。超過 5,000 人在一天內加入其 Discord 社群。Jin 同時推動以 Rust 重寫的完整版本,稱其為「這個專案的完整形態」。Anthropic 對外洩的 TypeScript 原始碼版本發出 DMCA 下架通知,但針對乾淨重寫的 Python 版本,DMCA 的法律依據明顯薄弱。
這個專案明確強調三點:
Claw Code 的 Python 程式碼主要集中在 src/ 目錄,包含命令列介面、工具清單、權限管理、執行 runtime 及工作紀錄等模組。以入口 src/main.py 為例,提供以下指令:
這些功能讓 Claw Code 成為一個研究性沙箱,開發者可以在不直接觸碰外洩原始碼的前提下,研究 AI agent 如何呼叫工具、路由請求,以及設計稽核與紀錄機制。需要明確指出的是:Claw Code 目前不是 Claude Code 的生產替代品——功能尚未達到同等程度,Rust 版本亦尚不穩定,且存在未解決的法律疑慮。
在 AI agent 架構裡,「工具」是最大的風險來源之一——可能是 Bash 指令、檔案讀寫、Git 操作甚至外部 API 呼叫。Claw Code 的 src/tools.py 示範了如何先把工具層「建模」,再決定哪些真正可執行。
專案從 reference_data/tools_snapshot.json 載入工具快照,轉成內部 PortingModule 資料結構,每個工具包含:名稱、職責說明與來源提示(source_hint)。工具預設標記為 status='mirrored',表示目前是「鏡射描述」,而非直接綁定到真實環境的破壞性行為。
ToolPermissionContext 提供乾淨的權限模型:
在 get_tools() 中可選擇 simple_mode(只允許 BashTool、FileReadTool、FileEditTool 等基礎工具)或 include_mcp(決定是否包含多協定相關工具)。這種「工具清單+deny list+模式切換」的設計,對企業導入具自動執行能力的 AI agent 非常關鍵。
src/runtime.py 是 Claw Code 的核心,負責根據使用者輸入路由到適當的指令或工具,並產生完整執行紀錄。
PortRuntime.route_prompt() 將使用者輸入切成 tokens 後進行關聯度計分,再由 _infer_permission_denials() 針對高風險工具自動產生拒絕——任何名稱含 bash 的工具均被標記為「仍需 gate 的破壞性 shell 執行」,預設列入拒絕清單。即使路由匹配到類 Bash 工具,系統也只回報「拒絕」而非直接執行,避免研究環境中誤觸真實系統命令。
RuntimeSession 資料結構完整記錄:
從 Claw Code 的設計與 Claude Code 外洩事件,可提煉出導入 AI 開發助手時的關鍵安全設計原則:
此外,Claude Code 外洩事件本身也示範了一個資安警訓:高知名度開源事件可以成為社交工程攻擊的跳板。Zscaler 記錄到攻擊者以 Claw Code 誘餌散布 Vidar 與 GhostSocks 惡意軟體,提醒資安團隊需對熱門工具的仿冒下載保持高度警惕,並主動評估開發人員從非官方來源安裝工具的供應鏈風險。