llm-coding-agent 0.1a0 的工具邊界

一個 Claude Code 風格 coding agent 的 alpha 版本,重點在檔案工具、命令執行與審批邊界。

llm-coding-agent 0.1a0 的工具邊界

工具邊界先看檔案怎麼動

llm-coding-agent 0.1a0 把 llm 這個 Python 函式庫當成 agent framework 使用,做出一個 Claude Code 風格的 coding agent。安裝方式走 PyPI prerelease,可用 uvx --prerelease=allow --with llm-coding-agent llm code 直接啟動。這個版本仍是 alpha,適合看介面形狀和工具邊界,不適合直接放進高權限工作區自動跑。

agent 只有幾個檔案和命令工具,列檔、讀檔、搜尋、用 exact string 編輯、覆寫檔案和執行 shell command。edit_fileold_string 完整吻合,預設還要求唯一位置,這讓變更可以回傳 diff 供檢查;缺點是格式稍有差異就會失敗,模型必須先讀到足夠上下文。read_file 有 offset 和 limit,list_files 會略過 hidden directories、node_modules、pycache,在 git repo 內也會避開 .gitignore 規則涵蓋的檔案,避免一開始就把工作區塞爆。

審批策略落在工作目錄和 allowlist

危險面主要在 execute_commandwrite_fileexecute_command 在 session root 跑 shell command,預設 timeout 120 秒,最高 600 秒,逾時會殺掉整個 process tree。CLI 提供 --yolo,也能用 --allow 'pytest*' 這類規則放行命令。安全性會落在 root 目錄、approve 參數和 allowlist 分界。導入時要先決定哪些命令可以免審,哪些檔案只能讀不能寫。

開發流程本身也值得看。spec 先由模型產生,再要求用 red/green TDD 分批 commit,每一批都要測試通過並更新文件。產物還出現 Python API,CodingAgent(model='gpt-5.5', root='/path', approve=True).run(...)。工具層已經被包到可嵌入程式的介面,但 model 名稱要確認,工作目錄權限和審批策略也要自己訂。手動測試中,agent 被要求建立一個顯示 ASCII 時間的 Swift CLI app,模型判斷 SwiftUI 不適合真正的 CLI,最後改成可由 swift run 執行的命令列輸出。