NOTE / 2026-10-07
omp 使用指南(新手版)
omp 入門:啟動、畫面、模型與角色、context 與 token、指令檔、設定層級、子 agent 與 prewalk 分工、安全審批,附實驗數據。
omp 是在終端機執行的 AI 寫程式助理(coding agent):你描述需求,它讀檔、改檔、跑指令與測試再回報。它不綁定單一模型,可同時接 Claude、Codex、OpenCode Go 等已訂閱的服務。
環境資料產生於 2026-10-07 18:55 · omp/18.8.0
先看這裡
| 你現在的目標 | 讀哪裡 |
|---|---|
| 今天就想用 | §1–§5,約 10 分鐘 |
| 想知道為什麼這樣設定、各個詞什麼意思 | §6–§13 |
| 想省 Claude 額度、用多個模型分工 | §14–§20 與 §21 你的環境 |
| 遇到狀況、不知道怎麼做 | §23 情境食譜、§24 故障排除 |
| 看不懂某個詞 | 附錄 E 名詞表 |
標記只用在有爭議或不確定的說法:實測 在本機跑過;文件 出自 omp 文件、未實測;未驗證 不確定。
你目前的預設(自動產生,與實際設定一致)
| 用途 | 目前使用的模型 | 備註 |
|---|---|---|
| 日常對話 | anthropic/claude-sonnet-5-5:medium | 你直接打字時用的模型 |
| 難題(手動切換) | anthropic/claude-opus-5-5:high | 按 Alt+P 或 omp --model slow |
| 規劃 | openai-codex/gpt-6-astra:high | 進入 plan mode 時 |
| 實作、輕量工作 | opencode-go/deepseek-v4.1-flash:low | prewalk 交接後、task 與 sonic 子 agent |
| 探索(scout) | opencode-go/deepseek-v4.1-flash:low | 不知道要改哪裡時 |
| 審查 diff(reviewer) | openai-codex/gpt-6.1-sol:high | 合併前 |
| 旁路審查(advisor) | openai-codex/gpt-6.1-sol:medium | advisor.enabled = True,時機 agent-end |
| 自動行為 | 目前值 | 意思 |
|---|---|---|
| Prewalk 自動交接 | True | 開啟時,第一次 edit 後整個 session 換成「實作、輕量工作」那一列的模型 |
| 工具審批 | yolo | yolo=不逐項詢問 |
| Plan mode | 手動 | Alt+Shift+P |
最常用的 8 件事
| 想做的事 | 怎麼做 |
|---|---|
| 啟動 | 在專案資料夾輸入 omp |
| 接續上次的對話 | omp -c;或 omp -r 從清單挑 |
| 停下它正在做的事 | Esc |
| 換模型 | /model;或 Alt+P(只影響這一次對話) |
| 換新話題(清掉前面的 context) | /new |
| 看各家訂閱額度 | omp usage 或在對話裡輸入 /usage |
| 看所有快捷鍵 | /hotkeys |
| 離開 | 連按兩次 Ctrl+C |
啟動 omp
cd ~/GitHub/我的專案
omp # 開啟互動式對話
omp "修掉 build 錯誤" # 帶第一句話啟動
omp @spec.md "照這份規格做" # 附加檔案或圖片(@路徑)
omp -c # 接續上一個對話
omp -r # 從清單挑一個舊對話
omp --version # 版本
omp update # 更新 omp
- 啟動的資料夾就是工作目錄,專案層設定與指令檔(
.omp/、AGENTS.md)從這裡找;在家目錄~啟動時改用暫存資料夾。 - 第一次用某家模型要登入:
omp login(對話中/login)。已登入的 provider 見 §21。
畫面與輸入
畫面由上而下:對話與工具輸出、子 agent 區塊、輸入框與狀態列(可在 /settings 調整)。
輸入框
| 你想做的事 | 操作 |
|---|---|
| 送出訊息 | Enter(換行的按法請用 /hotkeys 確認) |
| 附加檔案或圖片 | 啟動時用 @檔案;對話中貼圖 Ctrl+V 或 Cmd+V |
| 用編輯器寫長提示詞 | Ctrl+G(開啟 $EDITOR) |
| 找回以前輸入過的話 | Ctrl+R 搜尋歷史 |
| 誤清掉草稿 | Ctrl+C 清除後,按 ↑ 找回 |
| agent 工作到一半想追加指示 | Ctrl+Q 或 Ctrl+Enter 排入下一則訊息;Alt+↑ 取回排隊中的訊息 |
| 指定用某個模型回答 | 輸入 ^ 選模型,該模型會成為這次可點名的子 agent |
| 展開/收合工具輸出 | Ctrl+O(完全隱藏用 Ctrl+Shift+O) |
第一個任務
確認工作樹乾淨
cd到專案執行git status,之後git diff就只有 omp 的改動。啟動並貼上需求
輸入
omp,例如:「README 的安裝步驟少了 Python 版本需求,請補上,並確認 `python3 --version` 的最低版本。」看它做事
讀檔、建 todo、改檔;Ctrl+O 看工具輸出。
自己看 diff
另開終端機跑
git diff。完成報告是 omp 的說法,不是驗證。修正或提交
不滿意就說「這裡改成…」;滿意就
git commit,或用omp commit產生訊息。
對話(session)
每次啟動 omp 就是一個 session,自動存在 ~/.omp/agent/sessions/(依專案資料夾分類)。
| 指令 | 做什麼 |
|---|---|
omp -c | 接續最近一次對話 |
omp -r//resume | 從清單挑舊對話恢復 |
/new | 開新對話(舊的仍保存)。換話題時用,能讓 context 回到乾淨狀態 |
/clear | 清掉目前對話的 context,但保留紀錄 |
/fork | 從目前位置分出一個新的對話 |
/export | 匯出成 HTML 檔。注意:不會遮蔽機密,可能含原始內容與圖片 |
/dump | 把對話文字複製到剪貼簿 |
/share | 產生加密的分享連結。分享前先確認內容沒有機密 |
/delete | 刪除目前對話 |
/restart | 重新啟動 omp 並接續目前對話(改過設定檔後常用) |
安全與審批
工具分三種風險,由 tools.approvalMode 決定要不要先問你:
| 模式 | 自動允許 | 會先問你 | 適合 |
|---|---|---|---|
always-ask | 只讀取 | 寫入檔案、執行指令 | 剛開始用、不熟的專案 |
write | 讀取、寫入檔案 | 執行指令(bash 等) | 折衷 |
yolo(預設) | 全部 | 什麼都不問 | 你信任的專案、需要快 |
- 這次要詢問:
omp --approval-mode write;永久:omp config set tools.approvalMode write。 - 工作樹不是沙箱:開始前
git status確認乾淨,出事才能用 git 還原。 - 認證、金流、資料、權限、部署別交給便宜模型決定。
模型與角色
三個層次
- provider:服務來源,如
anthropic、openai-codex、opencode-go;登入以它為單位。 - model:寫成
provider/模型id,如anthropic/claude-sonnet-5-5;omp models列出全部。 - role(角色):「這類工作交給哪個模型」,由
modelRoles對應。
內建角色
| 角色 | 用途 |
|---|---|
default | 你直接對話時用的模型 |
slow | 需要深入推理的難題 |
smol | 輕量、快速、便宜的工作;也是 prewalk 交接的目標 |
plan | plan mode 的規劃者 |
commit | 產生 commit 訊息 |
advisor | 旁路審查者(§16) |
tiny、memory | 背景小工作(例如對話標題)、記憶功能 |
vision | 分析圖片 |
task | 子 agent 的備用模型 |
角色名稱是固定的鍵,不能改名,但可另建別名指向它(§17)。實測
在對話中換模型
| 方式 | 效果 |
|---|---|
| Alt+P | 暫時換模型,只影響這個對話 |
Alt+M//model | 模型中心:看角色分配、換模型、指定角色 |
| Ctrl+P | 在角色模型間輪流切換 |
omp --model 名稱 | 啟動時指定(角色名稱或模型都可以);--model deep 解析為 Opus |
思考強度(thinking level)
由低到高:off、minimal、low、medium、high、xhigh、max,另有 auto(由 omp 依任務判斷)。
- 越高越慢、輸出越多,不一定越準:MAF 的 DeepSeek 基準上
low一次通過率與更高等級相近、成本較低(僅兩題)。 - 切換:Shift+Tab;啟動時
--thinking high;或在模型後加冒號,例如anthropic/claude-sonnet-5-5:medium。 - Ctrl+T 只切換思考內容的顯示。
context 與 token:為什麼長對話會變貴
- token:計費與額度單位,約為字的片段。
- context window:一次能看的上限;Sonnet 5.5 約 100 萬 token,Codex GPT-6 系列約 27 萬(
omp models --json)。 - 每一輪都重送整段對話歷史,對話越長每輪越貴。
- prompt cache:重複的前綴以低價讀取,Sonnet 5.5 約為新輸入的 1/10,所以
omp stats裡多是「快取讀取」。 - compaction:快滿時自動摘要舊內容;主動
/new通常更好。
看用量
omp usage # 各家訂閱的 5 小時/每週/每月額度(百分比)
omp stats --summary # 各模型的請求數、token、API 等價金額
omp usage clients --days 7 # 依 client 拆分 token
「API 等價金額」依牌價換算,不是訂閱實扣額度;Claude 7 天額度刻度只有 1%,單一任務看不出差異。實測
指令檔:AGENTS.md
指令檔在對話開始時載入、每一輪都會送出,所以要短:只寫「何時做、為什麼」。
| 檔案 | 範圍 |
|---|---|
~/.omp/agent/AGENTS.md | 你的所有專案(使用者層級)。你的委派規則在這裡 |
專案內的 .omp/AGENTS.md、AGENTS.md、CLAUDE.md | 該專案。omp 會自動讀,不用叫它去看 |
RULES.md | 只放少數「必須一直可見」的硬規定 |
~/.omp/agent/AGENTS.md 存在時,會取代 ~/.claude/CLAUDE.md 成為使用者層級指令。文件 你的規則全文見 §21。
工具與編輯方式
畫面上的每一個動作都是一次工具呼叫。
| 工具 | 做什麼 |
|---|---|
read | 讀檔案、網頁、skill://、agent:// 等 |
edit/write | 改既有檔案/建立檔案 |
grep、glob | 搜尋內容、找檔案 |
bash | 執行終端機指令 |
task | 派出子 agent(§14) |
todo | 建立與更新待辦清單(也是 prewalk 的開關條件,§15) |
web_search | 網路搜尋 |
eval | 在 Python/JS 環境執行程式,也能操作瀏覽器 |
ask | 向你提問(選項式) |
hashline 編輯(你的 edit.mode):每行帶內容雜湊作為錨點;檔案讀後被改動,編輯會失敗要求重讀,不會改錯位置。
設定的層級
| 層級 | 位置 | 優先 |
|---|---|---|
| 命令列旗標 | omp --model … --thinking … | 最高 |
| 覆蓋檔 | omp --config 檔案.yml | ↓ |
| 專案 | 專案內的 .omp/config.yml | ↓ |
| 全域 | ~/.omp/agent/config.yml | 最低 |
- 陣列型設定(例如
disabledProviders)是整個取代,不是合併。文件 - 看值
omp config get 設定鍵(如omp config get modelRoles);改值omp config set 設定鍵 值或/settings。 - 專案
.omp/config.yml寫prewalk: {enabled: false},在該目錄omp config get prewalk.enabled得false,全域仍是true。實測 omp config get不反映--config覆蓋,只能實際跑一次確認。實測
Plan mode 與 todo
- plan mode(Alt+Shift+P):只探索、提問(
ask)、寫計畫檔(local://…-plan.md),你核准後才實作,適合大功能。edit只能寫入「writable roots」且禁止刪除搬移;writable roots 的範圍文件未定義。文件 plan角色是 Codex GPT-6 Astra,但--plan-yolo(無人值守)實驗中是 Sonnet 規劃;互動式是否用 Astra 未測。未驗證- todo:agent 用
todo維護待辦清單,也是 prewalk 開閘的條件。
Skills
Skill 是 skills/<名稱>/SKILL.md 的說明書,平時只常駐描述,需要時才讀全文;也可 /skill:名稱 呼叫。omp 也讀 Claude、Codex、.agents 裝的 skill(如 ~/.agents/skills)。
子 agent
子 agent 從乾淨的 context 獨立工作,只把摘要交回主對話:它讀的檔案不會撐大主對話,也能用較便宜的模型。
| agent | 做什麼 | 什麼時候用 |
|---|---|---|
scout | 唯讀探索,只回摘要 | 不知道要改哪裡時 |
task | 通用實作 | 範圍明確、有測試可以驗收的模組 |
sonic | 機械性、小範圍的修改 | 批次改名、格式調整 |
reviewer | 審查程式碼 | 合併前 |
security-reviewer | 找安全問題 | 需要時 |
- 派不派由主對話決定;明說「先派 scout 找出訂單匯出相關的檔案」最可靠,沒明說時它很少自己派。實測
- Alt+A 開 Agent Hub:看狀態、模型、用量,讀逐字稿、插話、復活或終止。閒置約 7 分鐘休眠,追問它比開新的省。
- 省略
agent欄位:受限 agent(如 reviewer)派工沒寫名稱,會落到父 agent 允許清單第一項,實驗中因此派出 scout。派工一律寫明名稱。實測 - 保護機制:同時上限、遞迴深度、請求軟上限,數值見 §21。
- 並行寫入預設沒有隔離,改同一檔案會衝突;
task.isolation.enabled可改用獨立工作區。未驗證
Prewalk:規劃用強的、實作用便宜的
- 一次性交接:在含第一次 edit/write 結果的那一輪結束時發生,不論成敗。實測
- 要先成功呼叫
todo才開閘(todo 工具啟用時),不看任務難度。交接後 DeepSeek 做到你切換為止,並收到「完成前檢查清單」。 - Claude 只寫計畫、驗收標準與介面,測試由 DeepSeek 寫。要 Claude 寫測試:先
--no-prewalk,寫完再/prewalk。未驗證
| 你想要 | 做法 |
|---|---|
| 這次不要交接 | omp --no-prewalk |
| 取消待交接的狀態 | /prewalk off |
| 已經換到 DeepSeek,想回 Claude | /prewalk restart(回到 default 並重新武裝)或 Alt+P |
| 某個專案永遠不要交接 | 該專案放 .omp/config.yml:prewalk: {enabled: false}(已實測會被讀到) |
| 只有這次要交接(全域關閉時) | omp --prewalk 或 /prewalk |
實驗(附錄 A):Claude 原始 token 約 0.19×,所有模型合計約 23×。
Advisor:旁路審查
另一個模型(你的是 Codex GPT-6.1 Sol)旁觀主 agent,把建議插進對話。它不能批准或改檔,只給 nit、concern、blocker 三級建議。
- 只在 agent 結束時審一次,實驗中每組 4 次 Codex 請求、約 15 秒。實測
- 指令:
/advisor(開關)、/advisor status(看狀態與成本)、/advisor off。 - reviewer 則是主動派出的子 agent。進階:
WATCHDOG.md補審查重點、WATCHDOG.yml設多個審查者(未用)。
別名與自訂 agent
角色別名
值要加引號,@ 代表「某個角色」:
modelRoles:
deep: "@slow" # 你的別名:難題用
worker: "@smol" # 你的別名:便宜的實作者
task:
agentModelOverrides:
scout: "@worker" # agent 用別名指定模型
別名可串接,--model deep 可用 實測;/model 是否列出別名 未驗證。
scout、task、sonic 不是角色
它們是子 agent 的類型名稱,不能改名。要新名稱得在 ~/.omp/agent/agents/名稱.md(或專案 .omp/agents/)寫 agent 定義,frontmatter 含 name、description、model。未驗證
其他
/modelpreset save 名稱/switch 名稱:存取整組角色設定;目前沒有(omp config get modelPresets為{})。- A/B 對照組:
omp --config ~/.omp/agent/solo.yml,全部指向 Claude,關閉 advisor 與 prewalk。
無頭模式與腳本
omp -p "總結最後一個 commit" # 印出結果就結束
omp -p --mode json "列出所有 TODO" # JSON 事件串流,方便程式處理
omp -p --max-time 10m "…" # 限時
omp -p --plan-yolo "…" # 自動核准規劃並實作(風險自負)
omp -p --no-session "…" # 不存檔
echo "review this diff" | omp -p # 從標準輸入給提示
旗標見 omp --help。無頭模式無法詢問,審批直接依 approvalMode。
魔法關鍵字
提示詞出現這些小寫、獨立的詞時,omp 為那一輪加一段指示:
| 關鍵字 | 效果 |
|---|---|
ultrathink | 要求仔細多步推理;自動思考模式下會用該模型的最高強度 |
orchestrate | 要求拆解並把大量獨立工作平行派給子 agent,逐階段驗證 |
workflowz | 用多個子 agent 做廣泛研究、審查、遷移 |
jevify | 對一長串項目做批次分類判斷 |
你目前沒啟用的功能
| 功能 | 狀態 | 是什麼 |
|---|---|---|
長期記憶(memory.backend) | 關閉 | 跨對話的記憶 |
子 agent 隔離(task.isolation) | 關閉 | 每個子 agent 用獨立工作區,之後合併 |
失敗時自動換模型(retry.fallbackChains) | 未設定清單 | Claude 額度用完時自動換 Codex 等;鍵名寫法未實測,所以沒寫 |
多個 advisor(WATCHDOG.yml) | 未使用 | 不同專長的審查者 |
| Skills 管理、extension、MCP | 未使用 | 擴充工具 |
協作(/collab)、直播 | 未使用 | 與他人共用 session |
你目前的環境設定
omp 版本 omp/18.8.0。
角色(modelRoles)
| 角色 | 設定值 | 用途 |
|---|---|---|
default | anthropic/claude-sonnet-5-5:medium | 日常對話、判斷、整合 |
slow | anthropic/claude-opus-5-5:high | 難題、需要深入推理時手動切換 |
plan | openai-codex/gpt-6-astra:high | plan mode 的規劃者 |
smol | opencode-go/deepseek-v4.1-flash:low | 輕量任務、背景工作;prewalk 交接後的實作者 |
commit | opencode-go/deepseek-v4.1-flash | 產生 commit 訊息 |
advisor | openai-codex/gpt-6.1-sol:medium | 旁路審查(agent 結束時) |
deep | @slow → anthropic/claude-opus-5-5:high | 自訂別名,指向 @slow |
worker | @smol → opencode-go/deepseek-v4.1-flash:low | 自訂別名,指向 @smol |
子 agent 的模型(task.agentModelOverrides)
| agent | 使用的模型 |
|---|---|
scout | @worker → opencode-go/deepseek-v4.1-flash:low |
task | @worker → opencode-go/deepseek-v4.1-flash:low |
sonic | @worker → opencode-go/deepseek-v4.1-flash:low |
reviewer | openai-codex/gpt-6.1-sol:high |
功能設定
| 設定鍵 | 名稱 | 目前值 | 意思 |
|---|---|---|---|
tools.approvalMode | 工具審批模式 | yolo | yolo=不逐項詢問;write=執行指令才問;always-ask=寫入與執行都問 |
prewalk.enabled | Prewalk 自動交接 | True | true=第一次 edit/write 後,整個 session 換成 smol 角色的模型 |
advisor.enabled | Advisor 旁路審查 | True | true=由 advisor 角色的模型審查主 agent |
advisor.reviewMode | Advisor 審查時機 | agent-end | agent-end=只在 agent 結束時審;turn=每一輪都審 |
advisor.syncBacklog | 主 agent 是否等 advisor | off | off=不等,審查在背景進行 |
plan.defaultOnStartup | 啟動即進 plan mode | False | false=要自己按 Alt+Shift+P 才進入 |
memory.backend | 長期記憶 | off | off=未啟用 |
edit.mode | 編輯方式 | hashline | hashline=以帶雜湊的行錨點編輯,檔案已被改動時編輯會失敗而不是改錯 |
task.isolation.enabled | 子 agent 隔離工作區 | False | false=子 agent 與主對話共用同一個目錄 |
async.enabled | 子 agent 背景執行 | True | true=派出後主對話可以繼續 |
task.maxConcurrency | 同時執行的子 agent 上限 | 32 | 超過會排隊 |
task.softRequestBudget | 子 agent 請求軟上限 | 200 | 超過會被提醒收尾,到 1.5 倍強制停止 |
task.maxRecursionDepth | 子 agent 再派子 agent 的層數上限 | 2 | 負值=不限 |
compaction.enabled | 自動壓縮對話 | True | true=context 快滿時把舊內容摘要 |
retry.enabled | 失敗自動重試 | True | |
retry.modelFallback | 重試時換模型 | True | 是否啟用還要有設定 fallback 清單才有作用;目前沒有設定清單 |
tui.mouse | 滑鼠操作 | False | false=關閉 |
可用的 provider
| provider | 可用模型數 |
|---|---|
anthropic | 27 |
apple | 1 |
google-antigravity | 15 |
openai-codex | 7 |
opencode-go | 44 |
xai-oauth | 10 |
列出表示已登入或免金鑰;實際用不用看角色與 agent 設定。
設定檔
| 檔案 | 大小 | 最後修改 |
|---|---|---|
~/.omp/agent/config.yml | 613 bytes | 2026-10-07 18:16 |
~/.omp/agent/AGENTS.md | 1,720 bytes | 2026-10-07 18:19 |
~/.omp/agent/solo.yml | 519 bytes | 2026-10-07 17:27 |
~/.omp/agent/AGENTS.md.bak-pre-maf-lessons | 973 bytes | 2026-10-07 18:16 |
~/.omp/agent/config.yml.bak-pre-maf-lessons | 609 bytes | 2026-10-07 18:16 |
~/.omp/agent/config.yml.bak-pre-split | 136 bytes | 2026-10-07 16:29 |
委派規則(AGENTS.md 全文)
# Delegation rules
Goal: keep Claude's context and output small without lowering quality. Claude plans and judges; other models explore, implement, and review.
- Unsure where to change? Spawn `scout` first; keep file dumps out of this context.
- Before the first edit (the session hands off to a cheaper model there), write down the acceptance criteria, the interfaces, and the test command. The implementer writes the tests against that list.
- Brief every delegate with: goal, files it may change, constraints, acceptance command. No implementation design. Always name the `agent`; an omitted name falls to the parent's first allowed agent.
- Hand over a whole module in one task, not small pieces. Parallel agents must not edit the same file.
- Do these here, never delegate: small edits, ambiguous requirements, cross-module judgment, auth/payment/data/permission/deploy changes. Large or multi-decision work: plan mode first.
- While developing, run only the tests for changed modules; run the full suite once at the end.
- Same failure after two fixes: stop and report, then change approach or take over. Do not retry unchanged.
- After delegating, read the result and the diff; do not reread what the delegate already read.
- Before the first edit, record the base SHA (`git rev-parse HEAD`). Before declaring done: commit, then paste the test command and its result for that commit. Spawn `reviewer` on `BASE..HEAD`, giving it both SHAs (a committed tree has an empty working diff). Act only on findings provable in the code; treat the rest as notes. Any fix is a new commit: rerun the tests and the review on the new SHA.
- If the repo has `AGENT_LEARNINGS.md`, read only entries relevant to the task (`rg`).純 Claude 對照組(solo.yml 全文)
# A/B baseline: every role and subagent runs on Claude, advisor and prewalk disabled.
# Use: omp --config ~/.omp/agent/solo.yml
modelRoles:
default: anthropic/claude-sonnet-5-5:medium
slow: anthropic/claude-opus-5-5:high
plan: anthropic/claude-sonnet-5-5:high
smol: anthropic/claude-sonnet-5-5:low
commit: anthropic/claude-sonnet-5-5:low
task:
agentModelOverrides:
scout: "@default"
task: "@default"
sonic: "@default"
reviewer: "@default"
advisor:
enabled: false
prewalk:
enabled: false你的終端機:Warp 加 Herdr
omp 跑在 Warp 裡的 Herdr 面板中,按鍵要穿過三層:
omp 沒有自訂快捷鍵(~/.omp/agent/keybindings.yml 不存在),Alt+P 是預設綁定。失效時逐層檢查:
10 秒判斷
| 在 omp 輸入框按 Option+P | 結論 |
|---|---|
出現 π | Warp 沒把 Option 當 Meta 送,這是最常見原因 |
| 完全沒反應 | 被 Warp 或 Herdr 的快捷鍵吃掉 |
| 其他 Alt 鍵(Alt+A、Alt+Shift+P)也都失效 | Option 沒送 Meta,不是單一鍵的問題 |
處理順序
Warp
Settings 搜尋
Meta或Option,開啟 Option as Meta;在 Keyboard shortcuts 查Option+P有無衝突(橘框)。已知問題:warpdotdev/warp #8583、#9517。Herdr
config.toml沒有自訂按鍵(只有onboarding = false),預設是 tmux 式 prefix 加 Cmd 直按鍵,不太會吃掉 Alt+P。不靠按鍵的替代
/model、/prewalk restart、omp --model deep、omp --no-prewalk、/agents、/advisor、/usage。最後手段:在 omp 改綁
建立
~/.omp/agent/keybindings.yml(不是 config.yml),重開後用/hotkeys確認:app.model.selectTemporary: Ctrl+Shift+U # 原本 Alt+P app.model.select: Ctrl+Shift+Y # 原本 Alt+M
情境食譜
| 情境 | 怎麼做 |
|---|---|
| 小修改(幾行) | 直接貼需求。小改動自己做最快;第一次 edit 後會換成 DeepSeek 是正常的 |
| 不知道要改哪裡 | 「先派 scout 找出 X 相關的檔案、測試與進入點,只回報路徑與關鍵函式。」 |
| 新功能(較大) | Alt+Shift+P 進 plan mode,回答它的問題、核准計畫後再實作 |
| 範圍清楚、有測試的模組 | 「把這件事交給 task agent,測試通過才算完成:目標…/可改的檔案…/驗收指令…」 |
| 高風險(認證、金流、資料、權限、部署) | omp --no-prewalk --model deep --approval-mode write,並自己審 diff |
| 發現對話已經換成 DeepSeek,想回 Claude | /prewalk restart 或 Alt+P |
| 合併前審查 | 「請 reviewer 審 基準SHA..HEAD,只回報能在程式碼中證明的問題。」 |
| 接續昨天的工作 | omp -c,或 omp -r 挑 |
| 換話題 | /new |
| 今天用了多少額度 | omp usage;各模型的細節 omp stats --summary |
| 想比較「分工」與「全 Claude」 | 同一任務各跑一次:omp 與 omp --config ~/.omp/agent/solo.yml,前後看 omp usage。要比「完全不派工」,對照組提示詞加「不要 spawn 任何子 agent」 |
| 寫腳本批次處理 | omp -p "…"(§18) |
| 改了設定檔 | /restart 或開新對話,再 python3 ~/Documents/omp-guide/build.py 刷新本文件 |
故障排除
| 症狀 | 可能原因 | 怎麼辦 |
|---|---|---|
| Alt 系快捷鍵沒反應 | Option 沒有被當 Meta 送出 | §22 |
| 對話中途模型變成 DeepSeek | prewalk 交接(正常行為);或對話中改了 prewalk.enabled | 看狀態列確認;/prewalk restart 回到 Claude |
| 某模型選不到或呼叫失敗 | 沒登入、額度用完、provider 被停用 | omp models 看清單;/login;omp usage |
| 設定改了沒效果 | 對話在改設定之前就開始;陣列型設定被整個取代;--config 覆蓋了它 | /restart;omp config get 設定鍵 確認生效值 |
| Gemini(Antigravity)額度突然大幅下降 | 受限 agent 省略 agent 欄位,派出 scout 並走 Gemini;現在 scout 已改走 DeepSeek | 確認 task.agentModelOverrides;派工時寫明 agent 名稱 |
| agent 一直重複同一個失敗 | 沒有重試上限(omp 沒有 MAF 那種程式強制的修復次數上限) | 規則已要求「同一失敗修兩次就停」;仍卡住就 Esc 中斷、換做法或換 Alt+P 到更強的模型 |
| agent 說完成了但你不放心 | 完成報告是 agent 自己的說法 | 自己 git diff、自己跑測試;規則要求它貼 commit 的測試證據,但無法強制 |
| 子 agent 卡住 | 長時間沒有輸出 | Alt+A 開 Agent Hub,看逐字稿、插話或終止 |
| 畫面亂掉 | 終端機重繪問題 | Alt+L 重設畫面(需要 Alt 可用);或 /restart |
附錄 A:實驗記錄(ytdl 下載器,2026-10-07)
完整實驗記錄:設定、支出、比較、額度、觀察、設定變更
設定
- 任務:Tauri v2 + Rust 的 YTDL 1080(yt-dlp 下載最高 1080p 的 MP4)加 7 點 UI 要求;四組提示詞相同,都從基準 commit
f0e044f出發。 - solo=
--config solo.yml且不派子 agent;split=預設設定加委派規則;plan=--plan-yolo;prewalk=--prewalk。 - 模型是 Sonnet 5.5(MAF 實驗用 Opus 5.5),任務也不同,倍數不能和 MAF 比。金額是 API 等價,不是訂閱實扣。
各 agent 支出
| 做法 | agent | 模型 | 請求 | 新輸入 | 快取讀取 | 輸出 | API 等價 |
|---|---|---|---|---|---|---|---|
| solo | main | Sonnet 5.5 | 12 | 48 | 400,461 | 32,354 | $0.566 |
| split | main | Sonnet 5.5 | 17 | 67 | 665,118 | 29,657 | $0.619 |
| task 子 agent | DeepSeek V4.1 Flash | 34 | 87,048 | 1,625,088 | 46,864 | $0.046 | |
| advisor | Codex Sol | 4 | 17,849 | 53,888 | 276 | $0.044 | |
| plan | main(規劃) | Sonnet 5.5 | 4 | 16 | 71,628 | 7,061 | $0.126 |
| main(實作) | DeepSeek V4.1 Flash | 83 | 102,749 | 5,416,960 | 55,723 | $0.065 | |
| reviewer | Codex Sol | 15 | 62,014 | 482,560 | 7,495 | $0.247 | |
| advisor | Codex Sol | 4 | 58,653 | 170,368 | 312 | $0.137 | |
| prewalk | main(起手) | Sonnet 5.5 | 4 | 14 | 68,617 | 12,292 | $0.180 |
| main(實作) | DeepSeek V4.1 Flash | 106 | 156,331 | 8,477,184 | 67,644 | $0.089 | |
| reviewer | Codex Sol | 30 | 62,266 | 1,066,240 | 10,836 | $0.340 | |
| reviewer 派出的 scout ×2 | Gemini 3.8 Flash | 24 | 309,384 | 387,677 | 90,265 | $0.600 | |
| advisor | Codex Sol | 4 | 71,817 | 210,304 | 254 | $0.167 |
四種做法比較
| solo | split | plan | prewalk | |
|---|---|---|---|---|
| Claude 加權 proxy(相對 solo) | 1.00×(283,120) | 1.09×(309,471) | 0.22×(62,857) | 0.32×(89,767) |
| Claude 原始 token 合計 | 473,491 | 742,146(1.57×) | 88,892(0.19×) | 91,639(0.19×) |
| 全部模型原始 token 合計 | 473,491 | 2,573,159(5.4×) | 6,445,726(13.6×) | 11,001,841(23.2×) |
| Claude 請求數 | 12 | 17 | 4 | 4 |
| Claude 輸出 token | 32,354 | 29,657 | 7,061 | 12,292 |
| 所有家合計(API 等價) | $0.566 | $0.709 | $0.576 | $1.375 |
| 耗時 | 7.6 分 | 13.6 分 | 13.1 分 | 21.5 分 |
| cargo test 通過數 | 26 | 13 | 34 | 33 |
| 核心 Rust 行數 | 821 | 624 | 1,085 | 771 |
| 打包 .app、1080p 實測下載(含聲音)、無效網址被拒 | 通過 | 通過 | 通過 | 通過 |
- 加權 proxy=新輸入+0.1×快取讀取+2×快取寫入+5×輸出,是相對成本的代理值;權重取自 Anthropic 一般計價,訂閱實際加權未公開。
- 原始 token=輸入+快取讀取+快取寫入+輸出。Claude 降到 0.19× 主因是快取讀取從 400k 降到約 70k;全部模型升到 13.6×、23.2×,因 DeepSeek 每輪重讀快取。
訂閱額度前後
| 額度 | 實驗前 | 實驗後(17:18) | 之後再量(17:21) |
|---|---|---|---|
| Claude 5 小時 | 8% | 21% | 23% |
| Claude 7 天 | 36% | 37% | 37% |
| Codex 5 小時 | 0% | 10% | 14% |
| Codex 7 天 | 0% | 2% | 2% |
| OpenCode Go 5 小時 | 0% | 3% | 3% |
| OpenCode Go 每週 | 7% | 8% | 8% |
| Gemini 每週 | 1.7% | 25.7% | 25.7% |
觀察與限制
- 省 Claude 的是「誰做實作迴圈」:plan、prewalk 由 DeepSeek 做 83~106 次請求,Claude 只剩 4 次;split 的 Claude 仍自己寫大部分。
- 金額沒跟著 token 縮小:split 多 25%,prewalk 2.4 倍,多花在 Codex reviewer、advisor 與 reviewer 派出的 scout。
- 省略
agent會落到父 agent 的spawns清單第一項:prewalk 的 reviewer 兩次 spawn 沒指定agent,變成 scout 而非 task,造成那 24 次 Gemini 請求。其中約 79,600 輸出 token 是推理(48,727+30,909),Antigravity 每週額度很快見底。 - UI(只看假介面的閒置畫面):prewalk 最完整(環境就緒標籤、Enter/Esc 提示);plan 的「選擇…」按鈕擠成直排、快捷鍵標籤對比低;solo 不下判斷。13 項靜態 UX 檢查四組全過,沒有鑑別力。
- 每組只跑一次,品質證據只有這個任務的驗收。split 與 prewalk 首次執行同時被外部 SIGTERM 中斷後重跑;中斷的兩次約 $1.28,不計入上表。
依結果做的設定變更
scout改為@worker(即smol,DeepSeek),Antigravity 不再是預設但仍可手動選;prewalk 預設開啟,Codex reviewer 與 advisor 把關。- 委派規則改為「Claude 規劃與判斷,實作、探索、審查交給其他模型」,並依 MAF 經驗補進
AGENTS.md:交接前寫驗收標準與介面、派 agent 寫明名稱、失敗兩次就停、reviewer 審基準 SHA..HEAD、只讀AGENT_LEARNINGS.md的相關條目等(全文見 §21)。 smol改為…:low(MAF 的 DeepSeek 基準,僅兩題),worker跟著套用;solo.yml同步停用 prewalk。- 新增別名
deep(=slow)與worker(=smol),scout、task、sonic改寫成@worker;agent 類型名稱不變。
附錄 B:驗證狀態
| 項目 | 狀態 |
|---|---|
| 角色與子 agent 路由(scout、task 解析到 DeepSeek;solo 全 Claude) | 實測 |
Prewalk 在第一次 edit 後交接;專案層可覆蓋 prewalk.enabled | 實測(讀到的值;沒有再實際跑一次「專案內不交接」) |
| Advisor 在 agent 結束時呼叫 Codex | 實測 |
別名 deep、worker;--model deep | 實測 |
/model 介面是否列出自訂別名 | 未驗證 |
| 新規則是否讓 DeepSeek 的測試呼叫變少、一次通過率變高 | 未驗證:套用後沒再跑 ytdl 實驗,之後在真實任務觀察。之前 cargo test 呼叫 7~10 次,solo 為 1 次 |
smol 固定 :low 對品質的影響 | 未驗證:依 MAF 基準(兩題) |
| Prewalk 開啟後的整體品質 | 證據不足:只有 ytdl 一個任務、各一次 |
| Plan 角色(Codex Astra)是否被互動式 plan mode 使用 | 未驗證(--plan-yolo 沒用到它) |
Claude 額度失效時自動換 Codex(retry.fallbackChains) | 未套用 |
| Claude 在 omp 走訂閱計費 | 依使用者確認,未獨立驗證。可看 omp usage 的 Claude 5 小時百分比是否隨 omp 呼叫增加 |
子 agent 隔離(task.isolation) | 未驗證,未啟用 |
| Warp/Herdr 的 Alt 鍵問題 | 已解決 Option+P 已可正常使用(依使用者回報,未獨立驗證) |
附錄 C:更新紀錄
2026-10-07 的 10 筆更新
- 2026-10-07 Option+P 問題已修正(依使用者回報);§22 保留排查步驟。
- 2026-10-07 修正
build.py:一律在指南資料夾查詢 omp,避免把專案覆蓋誤記成全域(已重現並驗證)。 - 2026-10-07 指南重寫:「你的環境」改由腳本產生,加入
--check。舊版為omp-guide.v1.html。 - 2026-10-07 從 Claude Code、Codex 移除 MAF skill 與
## MAF區段(Hermes 原本就沒有)。 - 2026-10-07
AGENTS.md改為 10 條規則(加入 MAF 經驗);審查對象改為基準 SHA..HEAD。 - 2026-10-07
smol固定:low。 - 2026-10-07 新增別名
deep(=slow)與worker(=smol)。 - 2026-10-07 Antigravity 不再是預設:
scout改走 DeepSeek;prewalk 預設開啟。 - 2026-10-07 完成 ytdl 下載器實驗(四種做法),結果見附錄 A。
- 2026-10-07 首次套用分工設定:角色、子 agent 模型、advisor、
AGENTS.md、solo.yml。
附錄 D:如何維護這份文件
原始檔在 ~/Documents/omp-guide/:
| 檔案 | 內容 | 誰改 |
|---|---|---|
guide.template.html | 教學文字(§1~§20、食譜、故障排除、驗證狀態) | 人(或請 agent 改) |
changelog.txt | 更新紀錄,一行一筆:日期 | 說明 | 人(或請 agent 改) |
appendix-experiment.html | 附錄 A 實驗記錄 | 人 |
build.py | 把上面三個加上實際設定組成 ~/Documents/omp-guide.html | 不用改 |
python3 ~/Documents/omp-guide/build.py # 重新產生文件(改過設定後執行)
python3 ~/Documents/omp-guide/build.py --check # 文件的「環境」章節是否落後?落後會 exit 1
快照記錄全域設定:build.py 在指南資料夾查詢 omp,專案內的 .omp/config.yml 不會被誤記成全域(從有 prewalk.enabled: false 的專案執行,仍記錄 true);專案層覆蓋要在該專案用 omp config get 看。
請 agent 更新時說「更新 omp 指南」並簡述變更:它會改模板、在 changelog.txt 加一行、執行 build.py。舊版備份為 omp-guide.v1.html。
附錄 E:名詞表
| 名詞 | 意思 |
|---|---|
| agent | 能自己讀檔、改檔、跑指令來完成任務的 AI 程式 |
| 子 agent | 主 agent 派出去、從乾淨 context 獨立工作的分身 |
| provider/model/role | 服務來源/具體模型/「這類工作交給誰」的對應 |
| 別名(alias) | 你自己取的名稱,指向某個角色,例如 worker → smol |
| thinking level | 模型思考的深度等級 |
| token | 模型計費與額度的單位 |
| context window | 模型一次能看到的內容上限 |
| prompt cache | 重複前綴以低價讀取的機制 |
| compaction | context 快滿時把舊內容摘要 |
| session | 一次對話與它的存檔 |
| AGENTS.md | 每個對話開始就載入的指令檔 |
| skill | 需要時才載入的說明書 |
| hashline | 以帶雜湊的行錨點編輯檔案的方式 |
| approval mode | 工具要不要先問你的模式 |
| plan mode | 只讀、提案、等你核准的模式 |
| prewalk | 第一次 edit 後,同一個對話改用便宜模型的一次性交接 |
| advisor | 旁路審查的模型 |
| headless | 不開畫面、印出結果就結束的執行方式 |
| overlay(覆蓋設定) | 用 --config 疊在原設定上的額外設定檔 |
| SHA | git commit 的唯一識別碼;審查以 基準SHA..HEAD 為範圍 |
| 加權 proxy | 實驗中的相對成本代理值:新輸入+0.1×快取讀取+2×快取寫入+5×輸出 |