🧭 OPENCODE 檔案管理工具使用範例
Table of contents
OPENCODE 代理 AI 檔案管理工作
以下以 OPENCODE 為例,列出「代理 AI」能夠協助完成的 檔案管理工作,從最簡單的「列目錄」到能在大型專案中自動化、並行、合併、版本控制等高度複雜的任務。
(所有範例均假設你已知 OPENCODE 的 API 參數格式,例如 glob、grep、read、apply_patch、multi_tool_use.parallel、bash 等;若希望操作 local 版本,請先加上 path 或 workdir。)
1️⃣ 基礎檔案管理(單一檔案/目錄)
| 任務 | 目標 | OPENCODE 參數範例 | 產生結果 |
|---|---|---|---|
| 列出指定目錄下所有檔案 | 快速定位 | {"tool":"glob","pattern":"*","path":"/app/src"} | 回傳檔名陣列 |
| 在某個程式碼資料夾尋找 TODO | 追蹤待修/待審 | {"tool":"grep","pattern":"TODO","include":"*.js","path":"/app/src"} | 簡短列出檔案位置信息 |
| 讀取單一檔案前 200 行 | 取用摘要或檢查內容 | {"tool":"read","filePath":"/app/src/main.py","limit":200} | 文字內容 |
| 新增一個 README | 快速新增資訊 | {"tool":"apply_patch","patchText":"*** Begin Patch\n*** Add File: README.md\n+Hi, this project is about…\n*** End Patch"} | README 被創建 |
| 刪除一個設定檔 | 清理不再使用的檔案 | {"tool":"apply_patch","patchText":"*** Begin Patch\n*** Delete File: .DS_Store\n*** End Patch"} | 檔案被移除 |
| 直線式複製檔案(避開 shell) | 在資料夾 A 內直接複製到 B | ① apply_patch Create new file "B/file.txt"內容自 A 讀取;② apply_patch Delete old | 兩個檔案同步 |
注意:所有「寫入」必須使用
apply_patch,不能使用 echo/cat 或直接寫入。
2️⃣ 中階檔案處理(多檔案、多條件)
| 任務 | 與之相對應的 OPENCODE 調用 | 說明 |
|---|---|---|
同時跑多個 grep 查找跨站的 bug tag | {"tool":"multi_tool_use.parallel","tool_uses":[{"tool":"grep","pattern":"FIXME","include":"*.ts"},{"tool":"grep","pattern":"BUG","include":"*.js"}]} | 并行提高查詢速度 |
| 在大量檔案中批次加上統一註解 | 迭代每個檔案:先 read、產生 patch、再 apply_patch | 可先一次性產出多筆 patch 再一次 apply_patch 批次提交 |
| 大型專案的資料夾層級結構生成圖 | glob 取得所有檔案,bash 呼叫 svggraph 或 mermaid | 把結構輸出為可視化圖表 |
| 針對多個不同程式碼語言的重構 | 先 glob + grep 篩選 → 逐一 read → 用前端工具(如 bash) 做語言特定重命名、方法抽離 → apply_patch | 兼備原始碼一致性與版本控制 |
| 同步多個專案目錄下的相同檔案版本 | 先 glob 跨專案列舉 → 逐一 read → 實作內容一致比較 → apply_patch 同步 | 保持多 repo 的樣板檔案同步 |
備援:對於極大檔案集合,先使用
glob找到候選,再把grep與read並行執行,可大幅縮短總耗時。
3️⃣ 進階多檔案並行與自動化(使用 multi_tool_use.parallel)
| 任務 | 示範程式碼 | 說明 |
|---|---|---|
| 同時讀 10 個文檔 | {"tool":"multi_tool_use.parallel","tool_uses":[{"tool":"read","filePath":"/app/src/a.py"},{"tool":"read","filePath":"/app/src/b.py"}, …]} | 調用多個 read,降低單筆 I/O 週期 |
| 批次比對差異 | ① glob 取得所有檔案;② multi_tool_use.parallel 執行多個 read;③ 用腳本做 diff(在 bash 內) | 只要提供 read 全部內容,後續再引擎做 diff |
| 一鍵修正多個格式錯誤 | 先 grep 找出所有 “console.log”;再一次 apply_patch 創建一個 patch,對所有檔案同時 replace 為 logger.info | 一次性修改多檔中所有錯誤格式 |
| 排程化自動化檢查 | 使用 bash 後面配合 CI pipeline;腳本在 post-commit 時執行 grep / apply_patch 進行安全檢查 | 讓每次 commit 都自動執行檢查,保持品質 |
| 大檔案分段讀取 | read 只讀取 2000 行,之後第二次 read 以 offset 2001 開始 | 適用於二進位檔、log 與影片等 |
4️⃣ 版本控制(Git)整合
| 任務 | 機制 | 何時使用事例 |
|---|---|---|
| 顯示 Git 狀態 | bash 執行 git status | 檢查本地變更 |
| 批次加入 & Commit | bash 執行 git add -A && git commit -m "... " | 如代碼重構後提交 |
| 產生 PR 標籤 | bash ex git push + hub pull-request | 需要手動授權時 |
| 拉取上游更新 | bash 執行 git pull --rebase | 先同步遠端 |
| 整理分支 | bash 執行 git branch -d feature-x | 成功 merge 後 |
注意:除非得到明確指示,不允許執行 git reset --hard, git merge --abort 等破壞性操作。 |
最佳實踐
- 所有編輯仍透過
apply_patch來保持可追蹤;bash只做版本控制或構建操作(如npm run build、mvn package)。- 以
multi_tool_use.parallel來同時執行git status+git blame等多個 shell 指令,提升 CI 執行速度。
5️⃣ 高度自動化(複雜工作流)
| 任務 | 說明 | OPENCODE 參數 |
|---|---|---|
| 自動程式碼風格檢查 & 修正 | ① glob + grep 選出所有 .py; ② 用 apply_patch 生成 PEP8 修正 patch → apply_patch 一次提交 | apply_patch 生成一大 patch 或分片 patch |
| 多重平台文件同步 | ① 在 Linux 服務器與 Windows 服務器各執行 bash 取得檔案 Hash;② 若不一致,使用 read 分段同步,最後 apply_patch 更新 | 透過雙程式確認相容性 |
| 資料遷移(大型 SQL dump) | ① read 讀取部分 SQL 檔;② 伺服器執行 bash 接入 psql / mysql;③ 產生對應 apply_patch 以新增或刪除遷移文件 | 過程複雜但可完全由 AI 監控 |
| 安全備份與刪除 | ① 針對「敏感」關鍵字(如 password)用 grep 查找;② 若檔案過大則分段 read 產生加密版本;③ 最後 apply_patch 替換成加密檔;④ bash 做備份 | 安全性、不可逆操作 |
🌟 總結:代理 AI(OPENCODE)能做到的檔案管理能力
| 能力層級 | 代表功能 | 主要工具 |
|---|---|---|
| 基礎 | 列目錄、搜尋、讀取、單檔修改、刪除、建立 | glob, grep, read, apply_patch |
| 中階 | 多檔並行搜尋、批次 patch、跨語言重構、目錄結構圖 | multi_tool_use.parallel, bash, apply_patch |
| 進階 | 自動化 CI/CD 任務、與 Git 緊密結合、版本同步、 整合測試 | bash, apply_patch + Git, glob/grep |
| 高階 | 大型檔處理(分段 read、二進位安全)、多機器備份、加密遷移、安全審計、完整工作流自動化 | read(分段+limit), apply_patch, bash, multi_tool_use.parallel |
核心原則
- 安全先行:所有寫入必須走
apply_patch;- 可審核:patch 文字可審計、可回溯;
- 效率守護:使用
glob+grep篩選後再read/patch,並行處理提升 I/O 時間。
這樣的代理 AI 能把「零件」級別的檔案操作,組合成完整、可追蹤、可重複的工作流,讓開發、維護、測試、部署變得更有章法、更安全,也更易於在團隊協作時保持一致性。