Oh My OpenAgent (OMO) — 安裝與日常使用摘要
Oh My OpenAgent (OMO)
Oh My OpenAgent(OMO) 是建立在 OpenCode 上的 multi-agent orchestration layer。
官方 Repository:oh-my-openagent
核心概念不是讓一個 Agent 做完所有事情,而是由主要 Agent 根據任務,把工作交給不同的專業 Subagent。
User
│
▼
Sisyphus
├── Explore → 搜尋 codebase
├── Librarian → 查文件 / OSS
├── Oracle → 架構與疑難問題
└── Junior → 實際執行 coding task
一般開發情境下,直接使用 Sisyphus 即可,不需要手動選擇每一個 Subagent。
安裝
前提:
- OpenCode(相關:OpenCode Autocomplete 指南)
- Bun
- Git(git 常用指令指南)
- tmux(建議)
安裝 OMO:
bunx oh-my-openagent install
依照 TUI 選擇目前可使用的 Model Provider。
檢查安裝:
bunx oh-my-openagent doctor
查看版本:
bunx oh-my-openagent version
主要設定檔:
~/.omo/omo.jsonc
Project-specific 設定也可以放:
<repo>/.omo/omo.jsonc
tmux 設定
OMO 可以把 Background Subagent 顯示在獨立的 tmux pane。
基本的 tmux 操作見 tmux 常用指南。
在 ~/.omo/omo.jsonc:
{
"[opencode]": {
"tmux": {
"enabled": true,
"layout": "main-vertical",
"main_pane_size": 60,
"main_pane_min_width": 120,
"agent_pane_min_width": 40,
"isolation": "inline"
}
}
}
推薦:
main-vertical
┌────────────────────────┬───────────────┐
│ │ Subagent │
│ ├───────────────┤
│ Sisyphus │ Subagent │
│ ├───────────────┤
│ │ Subagent │
└────────────────────────┴───────────────┘
啟動 OMO + tmux
建立 tmux session:
tmux new -s omo
在 tmux 中啟動 OpenCode:
opencode --port 4096
建議明確設定:
OPENCODE_PORT=4096 opencode --port 4096
如果同時開多個 OpenCode instance:
Project / Worktree A → 4096
Project / Worktree B → 4097
Project / Worktree C → 4098
每個 instance 使用不同 Port。
tmux 常用快捷鍵
| 操作 | 快捷鍵 |
|---|---|
| 切換 pane | Ctrl-b + 方向鍵 |
| 顯示 pane 編號 | Ctrl-b q |
| 最大化目前 pane | Ctrl-b z |
| 恢復 pane layout | 再按一次 Ctrl-b z |
| Detach | Ctrl-b d |
| 回到 session | tmux attach -t omo |
如果 Subagent pane 顯示:
Focus this pane to attach
切換到該 pane:
Ctrl-b →
OMO 會 attach 到該 Subagent session。
Agents
OMO 分成 Primary Agent 與 Subagent。
Primary Agents
| Agent | 負責 | 適合場景 |
|---|---|---|
| Sisyphus | 日常主 Agent / Orchestrator | 一般開發、修 Issue、Feature |
| Hephaestus | Autonomous Deep Worker | 複雜 Debug、Architecture、Large Refactor |
| Prometheus | Planner | 大型 Feature、需求分析、Implementation Plan |
| Atlas | Plan Executor / Orchestrator | 執行 Prometheus 建立的 Plan |
Sisyphus
平常預設使用這個即可。
負責:
- 理解需求
- 拆解任務
- 呼叫 Subagent
- Coding
- Test / Verify
- 收斂結果
例如:
Fix issue #123 and add regression tests.
或:
Implement pagination for the API.
複雜但不想先 Plan:
ulw
Refactor the authentication flow and make sure all tests pass.
ulw / ultrawork 適合「自己研究、自己拆解、做到完成」。
Hephaestus
適合需要非常深推理的工作:
Why does this race condition happen only under high concurrency?
Refactor this monolith into a modular architecture.
常見場景:
- Architecture redesign
- 跨大量檔案 Debug
- Race condition
- Memory leak
- 大型 Migration
- 複雜 Refactor
簡單判斷:
一般複雜工作
→ Sisyphus + ulw
需要深度 architecture / debugging reasoning
→ Hephaestus
Prometheus
專門負責 Planning。
適合:
- 大型 Feature
- Scope 不明確
- 多階段 Migration
- Architecture change
- Implementation 前需要先 review 設計
可以直接切換到 Prometheus,或:
@plan "Add CodeGraph support to project ingestion"
Prometheus 會:
需求訪談
↓
Explore / Librarian Research
↓
Metis Gap Analysis
↓
建立 Implementation Plan
↓
Momus / Oracle Review
Plan 通常存放:
.omo/plans/
Atlas
Atlas 是 Plan Executor。
主要工作:
Read Plan
↓
拆分 Tasks
↓
Delegate
↓
Verify
↓
Continue
建立 Plan 後:
/start-work
Atlas 會依照 Plan 持續執行。
適合:
@plan
↓
Prometheus
↓
plan.md
↓
/start-work
↓
Atlas
↓
Subagents
Subagents
通常不需要手動操作,由 Sisyphus / Atlas 自動呼叫。
| Agent | 主要工作 | 使用場景 |
|---|---|---|
| Explore | Codebase Search | 找 implementation、pattern、dependency |
| Librarian | Docs / OSS Research | Library docs、GitHub、API 使用方式 |
| Oracle | Architecture / Reasoning | 複雜設計、疑難 Debug、Second Opinion |
| Sisyphus-Junior | Task Executor | 實際 coding、測試、修改檔案 |
| Metis | Gap Analysis | 找需求缺口、edge cases、scope 問題 |
| Momus | Plan Reviewer | Review implementation plan 是否可執行 |
| multimodal-looker | Visual Analysis | Screenshot、UI、圖片等 multimodal 工作 |
Explore vs Librarian
最常見的兩個 Research Agent。
「我們自己的 code 怎麼做?」
→ Explore
「外部 library / framework 怎麼做?」
→ Librarian
例如:
Find where authentication middleware is implemented.
→ Explore
Find the recommended FastAPI authentication pattern.
→ Librarian
Oracle
Oracle 比較像 Senior Architect / Consultant。
適合:
Should this service use event-driven architecture?
Why can this transaction still produce duplicate rows?
Review this architecture and identify hidden failure modes.
通常負責分析與建議,而不是主要 Coding Worker。
Metis + Momus
主要出現在 Planning Workflow。
Prometheus
│
├── Metis
│ └── 找漏掉的需求 / edge cases
│
└── Momus
└── Review plan 是否真的可執行
日常小型 Issue 通常不需要特別使用。
日常使用場景
小 Issue
直接:
Fix issue #123, add regression tests, and verify the fix.
使用:
Sisyphus
├── Explore
└── Junior
中型 Feature
Implement xxx feature.
Investigate the existing architecture first and reuse existing patterns.
使用:
Sisyphus
├── Explore
├── Librarian
├── Oracle(必要時)
└── Junior
大型 Feature
推薦:
@plan "Implement xxx feature"
確認 Plan 後:
/start-work
流程:
Prometheus
↓
Metis / Momus / Oracle
↓
Plan
↓
Atlas
↓
Workers
複雜 Debug
先嘗試:
ulw
Investigate the root cause of xxx.
Do not patch symptoms; identify and verify the actual root cause.
如果涉及非常深的 architecture / concurrency / cross-system reasoning:
Hephaestus
多個工作同時進行
同一 Repo 如果同時:
Fix Issue
+
Develop Feature
建議使用不同 Git Worktree(清理方法見 macOS 清理 Codex / Claude Code / OpenCode Worktree 指南):
repo/
repo-fix-123/
repo-feature-x/
並啟動不同 OpenCode instance:
repo-fix-123
└── OpenCode :4096
repo-feature-x
└── OpenCode :4097
原則:
同一 Branch / 同一項工作
→ 同一 OpenCode instance
不同 Branch / 不同 Deliverable
→ Worktree + 不同 OpenCode instance
避免不同 Agent 同時修改相同 working directory。
Team Mode
Team Mode 是額外的 parallel multi-agent orchestration,預設關閉。
一般:
Sisyphus + Background Subagents
已足夠處理大部分開發工作。
Team Mode 比較適合:
- 多個高度獨立 Workstream
- 大型 Investigation
- 大量 Issue 平行處理
- Security Research
- 希望看到多個長生命週期 Agent 同時工作
它支援:
- Lead + 多個 Members
- Shared Task List
- Agent Messaging
- Per-member Git Worktree
- tmux Visualization
因此:
一般 Coding
→ Sisyphus
複雜單一 Task
→ Sisyphus + ulw / Hephaestus
大型且需要規劃
→ Prometheus → Atlas
多個真正獨立 Workstream
→ Team Mode
Quick Reference
日常工作
→ Sisyphus
「幫我自己研究做到完」
→ Sisyphus + ulw
找 Code
→ Explore
找 Documentation / OSS
→ Librarian
Architecture / 疑難問題
→ Oracle
深度 Autonomous Reasoning
→ Hephaestus
大型 Feature Planning
→ Prometheus / @plan
執行 Plan
→ /start-work → Atlas
多 Workstream Parallel
→ Team Mode
常用 Commands
# OMO health check
bunx oh-my-openagent doctor
# tmux
tmux new -s omo
tmux attach -t omo
# OMO + OpenCode
OPENCODE_PORT=4096 opencode --port 4096
OpenCode 內:
@plan "..."
/start-work
ulw
<task>
大部分情況不要刻意指定 Subagent。描述清楚「目標、限制、驗證方式」,讓 Sisyphus 自己選擇 Explore、Librarian、Oracle 或 Worker,通常是最簡單的工作方式。