Skip to content
项目

first-fluke/oh-my-agent has 1,378 GitHub stars and 156 forks. GitHot measured +2 stars in 24 hours and +21 in 7 days. Last checked 2026-11-10 22:59 UTC. Last push 2026-11-01.

这些数字如何统计

Agent skills and specialist teams for Claude Code, Codex, Cursor and other coding agents. Load one skill or install domain presets, project hooks and parallel workflows with test gates.

实测星标增长

24小时
+2
7天
+21
15天
更新延迟
1个月
更新延迟

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

docs/README.zh.md

原文

oh-my-agent:为你已在用的编码 agent 配上一支专家团队

npm version npm downloads GitHub stars License Last Updated

English | 한국어 | Português | 日本語 | Français | Español | Nederlands | Polski | Русский | Deutsch | Tiếng Việt | ภาษาไทย

oh-my-agent(oma)是一个不依赖特定厂商的 harness,为你已在用的编码 agent 加上一支专家团队,支持 Claude Code、Codex CLI、Cursor 以及另外 11 个运行时。 规划者拆解工作,工程师并行构建,审查者检查结果,调试者修复根因。它还能做带引用的研究、幻灯片、视频和图像。大多数步骤都会留下一个你能打开的文件;在长时间运行的工作流中,门禁可以把 agent 送回去继续工作,直到你自己的 test、lint 或 typecheck 脚本通过。

Oh-My-Agent: A 6+1-Layer Harness Architecture

在项目根目录运行:

curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash

然后运行 oma doctor,再在 agent 中输入 /plan add user accounts with a settings page。最初 5 分钟会带你走一遍。

你会得到什么

工作流是你输入(或直接说出)的东西。工作流会召集角色,也就是各位专家。技能是专业知识:每个角色都带着自己的技能,其余技能则在任务需要时由你的 agent 加载。

能给你什么 试一试
12 个专家角色 PM、架构师、后端、前端、移动端、数据库和基础设施工程师、QA 审查者、调试者、重构者、文档管理员、研究员(认识他们) /orchestrate build a TODO app with login
21 个工作流 斜杠命令,从 /brainstorm、/plan 到 /review、/debug 和 /scm。大多数也能从一句普通请求启动(关键词库最多覆盖 11 种语言) “review this PR”
33 个技能 只在任务需要时加载的领域知识:UI、API、schema、Terraform、CI、安全、git、可观测性 自动加载,例如“add a Terraform S3 bucket”
能打开的文件 计划、设计文档、API 契约、ADR、bug 笔记、各 agent 的结果、安全证据、HTML 讲解文档、回顾总结 ls .agents/results
工作流检查 在长时间运行的工作流中,你自己的 test、lint 或 typecheck 脚本必须通过,agent 才能停下;oma ralph verify 会检查一次 /ralph 运行是否留下了计划、QA 和重构文件 /ultrawork …,然后 oma goal set --gate test
研究与内容 带引用的搜索、市场研究、论文、幻灯片、MP4 视频、图像、本地语音、PDF/HWP 转 Markdown /video、/convert
一个目录,14 个运行时 一个可移植的 .agents/ 目录,写入每个运行时自己的配置文件 oma link cursor

安装 · 最初 5 分钟 · 团队 · 选哪个工作流? · 全部功能 · 兼容的运行时 · 验证 · 常见问题 · 文档

安装

脚本会在缺少 bun 时安装它,再全局安装 oma 命令(bun install --global oh-my-agent,如果 oma 已在 PATH 中则跳过),然后启动交互式设置。这个全局命令很重要:hook(关键词检测、Stop 门禁)和好几个工作流都会调用 oma,找不到它时 hook 会静默地什么也不做。如果不用脚本,请自行通过 bun install --global oh-my-agent 安装(npm install --global oh-my-agent 或 brew install oh-my-agent 也可以)。

Windows,或不使用安装脚本
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex
# 任意装有 bun 的 OS:同样的设置,外加全局 `oma` 命令
bun install --global oh-my-agent
oma

在 Windows 上,安装器会隐藏 Antigravity、Hermes 和 Kimi,而且 hook 包装器是一个 bash 脚本。默认的 Aside 浏览器 MCP 通过 bash 安装,如果没有 bash,请取消勾选它。

设置过程会询问响应语言、要接入哪些 agent 运行时、能力提供方、浏览器 MCP、模型预设和技能预设。拿不准的话,技能预设就选 All:工作流总是会安装,而其中好几个(/orchestrate、/work、/ultrawork、/ralph、/docs、/security)需要只有 All 才包含的技能。

安装器默认还会做的事
  • 安装 bun(必需)。尝试安装 uv、Serena(uv tool install)和 CUE(brew install cue 或 winget),其中任何一个失败都会给出警告并继续。
  • 在交互式设置中预先选中 Aside 浏览器 MCP,只有保持选中时才会通过 curl -fsSL https://releases.aside.com/install.sh | bash 安装。可以在浏览器 MCP 步骤中取消勾选,或之后用 oma update mcp 更换。
  • 使用 AgentMemory 作为语义记忆,它会运行 bun install -g @agentmemory/agentmemory,并将其注册为登录服务(launchd、systemd 用户单元或 Windows 计划任务)。选择提供方 none 或设置 OMA_NO_AGENTMEMORY=1 即可跳过。
  • 把技能链接到主目录下的厂商文件夹(Antigravity、Hermes、Kimi)之前会先询问。在 $HOME 中不带 --global 运行时会请求确认。
  • 不经询问写入项目之外的一些文件:~/.claude.json(将项目标记为受信任的 Claude Code 工作区)、~/.serena/(OMA 上下文、回答大小下限、项目注册)、~/.cursor/cli-config.json(关闭 Cursor 的提交署名)、~/.grok/config.toml(遥测)和 ~/.gemini/antigravity-cli/(HUD),每个文件只在你选择了对应厂商时写入。
  • 在厂商设置中写入遥测退出选项(Claude 使用 DISABLE_TELEMETRY=1,这也会关闭 Claude Code Remote Control;Gemini、Qwen、Codex 和 Grok 关闭使用统计)。设置 telemetry: true 可保留厂商默认值。
  • 向 .claude/settings.json 添加尚未设置的 Claude Code 设置,包括 skipDangerousModePermissionPrompt: true、effortLevel: high、cleanupPeriodDays: 180,以及关闭 auto memory、adaptive thinking、错误报告和内置 git 指令的 env 标志。你已经设置的值会保留。
  • 添加共同作者 trailer:Claude Code 的提交署名变为 Co-Authored-By: First Fluke <[email protected]>,PR 会附上一行 "Generated with oh-my-agent"。设置 scm.co_author.enabled: false 可关闭。
  • 在 .githooks/ 中安装 commit-msg 守卫,拒绝不在列表中的 Co-authored-by 地址,并在没有其他钩子生效时设置 git config --local core.hooksPath .githooks。设置 scm.co_author.enforce_hook: false 可退出。
  • oma update 会在后台更新 oma CLI(用 auto_update_cli: false 或 OMA_SKIP_VERSION_CHECK=1 停止),并运行 uv tool upgrade serena-agent --prerelease=allow(serena.auto_update: false)。
  • Serena 处于默认的 bridge 模式时,第一个启动共享 Serena 服务器的代理会话会注册一个清理定时器,每 5 分钟停止空闲的共享 Serena 服务器(launchd dev.oma.serena-daemon-gc、systemd 用户定时器 oma-serena-daemon-gc.timer 或 Windows 计划任务 OMA Serena Daemon GC)。设置 serena.mode: stdio 可跳过共享服务器及其定时器。oma uninstall 不会移除该定时器。
  • 非交互式运行(-y、OMA_YES=1、CI=true)使用 All 技能预设、model_preset: auto,并以 Python 作为后端语言。除非 mcp.devtools_browsers 已列出某个浏览器,否则不会选择任何浏览器 MCP(也会跳过 Aside 安装脚本)。
技能预设
预设 技能
All 全部 33 个技能(推荐)
Fullstack architecture, backend, brainstorm, db, debug, design, dev-workflow, frontend, mobile, pm, qa, scm, tf-infra
Fullstack Web Fullstack 去掉 mobile 和 tf-infra
Fullstack Mobile Fullstack 去掉 frontend 和 tf-infra
Frontend architecture, brainstorm, debug, design, frontend, pm, qa, scm
Backend architecture, backend, brainstorm, db, debug, dev-workflow, pm, qa, scm
Mobile architecture, brainstorm, debug, mobile, pm, qa, scm
DevOps architecture, brainstorm, debug, dev-workflow, observability, pm, qa, scm, tf-infra
Research academic-writing, hwp, market, pdf, scholar, scm, search, translation
Content academic-writing, design, image, scm, translation, voice
Custom 逐个挑选技能

在这些具名预设中,只有 All 包含 coordination、orchestration、docs、security、refactor、explanation、recap、video、slide 和 skill-creation(也可以在 Custom 中单独挑选)。Research 和 Content 缺少 /plan、/review、/debug、/architecture 和 /brainstorm 所依赖的技能。参见需要预设之外技能的工作流。

最初 5 分钟

  1. 用上面的命令安装。

  2. 检查安装:

    oma doctor
    

    你应该会看到 CLI Status(哪些 agent CLI 已安装并登录)和 Skills Status(例如 Skills (33/33 installed, 33 complete))。如果找不到 oma,请打开一个新终端(安装器可能刚把 ~/.bun/bin 加入 PATH),或运行 bun install --global oh-my-agent。

  3. 在项目中打开 agent,让它做个计划:

    /plan add user accounts with a settings page
    

    也可以直接写“plan user accounts with a settings page”:在支持 prompt hook 的运行时上,关键词会启动同一个工作流。

  4. 看看得到了什么。 /plan 在当前会话中运行。对于像这样横跨多个领域的工作,它会写入 .agents/results/plan-<session-id>.json,并在 docs/plans/work/<NNN>-<name>.md 生成一份跟踪文件。小型、单一领域的请求则会直接得到一条建议,而不是计划文件。

对于较大的任务,可以基于这份计划运行 /work 或 /orchestrate。

认识团队

团队由你自己的 agent 带领。在 /work、/orchestrate 和 /ultrawork 中,它会把每项工作交给合适的专家,专家作为独立的 subagent 运行。/plan、/architecture 和 /docs 在你当前的会话中带着对应角色的技能运行;/review 和 /debug 遇到大范围任务时会请来各自的专家。当某个角色配置在其他厂商的 CLI 上时,oma agent spawn 会在那里运行它。

你的专家 携带的技能 调用方式 留下的产出
产品经理(pm-planner) oma-pm /plan,或“plan the payment feature” 对于 Medium 和 Complex 级别的工作,留下一份计划 JSON,并在 docs/plans/work/ 中留下一份跟踪文件(Simple 请求会直接得到建议)
架构师(architecture-reviewer) oma-architecture /architecture .agents/results/architecture/ 中的一份 ADR 或建议
后端、前端、移动端、数据库和基础设施工程师 oma-backend, oma-frontend + oma-design, oma-mobile, oma-db, oma-tf-infra /work、/orchestrate 代码、测试,以及每个任务一份 result-<agent> 文件
QA 审查者(qa-reviewer) oma-qa /review,或“review this PR” 按 CRITICAL 到 LOW 排序的发现,每条都带 file:line 和修复代码
调试者(debug-investigator) oma-debug /debug,或“fix this bug” 最小修复、一个回归测试,必要时在 .agents/results/bugs/ 中留下一份 bug 笔记
另外三个角色,以及没有对应角色的技能
你的专家 携带的技能 调用方式 留下的产出
重构者(refactor-engineer) oma-refactor /ultrawork 的 REFINE 阶段 保持行为不变的 refactor: 提交,以及一份 result-refactor-<session>.md 报告
文档管理员(docs-curator) oma-docs /docs,或“verify docs” docs/generated/doc-refs.json,以及你批准的文档补丁
研究员(research-explorer) oma-search, oma-market, oma-scholar 一个研究请求 带可信度标签的引用来源;.agents/results/market/ 中的市场简报

基础设施工程师(tf-infra-engineer)被要求在任何破坏性或生产环境的 apply 或 destroy 之前先征求你的同意。其余技能(brainstorm、security、scm、dev-workflow、observability、explanation、recap、translation、coordination、orchestration、skill-creation,以及内容与媒体类技能)没有专属角色。你的 agent 会自行加载它们,其中大多数还会由技能注入器根据你的 prompt 推荐合适的那个。

团队如何协作

 THINK   /brainstorm ......................... docs/plans/designs/<NNN>-<feature>.md
 PLAN    /plan · /architecture ............... plan JSON, API contracts, ADR
 DESIGN  /design ............................. DESIGN.md + tokens
 BUILD   /work · /orchestrate · /ultrawork ... code + result-<agent> files, engineers in parallel
 CHECK   /review · /security · /debug ........ findings, security evidence, regression test
 SHIP    /scm · /docs ........................ Conventional Commits, doc fixes

每一步都把一个文件交给下一步。/brainstorm 保存一份设计供 /plan 读取,/plan 写出一份计划,其中每个任务都有负责的 agent、依赖、验收标准和检查命令。/orchestrate 执行这份计划(它会加载最近的 plan-*.json,没有就先写一份)。/work 和 /ultrawork 一开始会让 PM 写出它们自己的计划。不需要的阶段可以跳过;每个阶段也都能单独使用。

该由哪个工作流来调度团队?

你想要 运行 结果如何
只要一份计划 /plan 跨领域工作得到一份计划文件,小型工作得到一条直接建议
由 PM 主导、你一步步跟进的构建 /work 先 PM,再按层级依次交给工程师,最后 QA。CRITICAL 和 HIGH 级发现会进入修复循环(最多 5 轮)
放手不管的并行构建 /orchestrate 只有检查通过的任务才算完成;每个任务最多尝试 3 次,之后标记为 partial 或 failed
五阶段工作流 /ultrawork 五个带门禁的阶段(PLAN、IMPL、VERIFY、REFINE、SHIP);每次审查都在全新的审查者会话中进行
“真正做完之前别停” /ralph 搭配单独 spawn、拥有全新上下文的 judge 反复运行 /ultrawork,直到每条标准都通过;当标准受阻或满 5 轮后停止,并给出部分完成报告
定时运行的团队 oma schedule create qa-reviewer "review open PRs" --every 2h 每次运行在 ~/.oma/schedule/runs/<id>/ 中留下一份 Markdown 日志

斜杠命令不是必需的。在支持 prompt hook 的运行时上,普通请求(关键词库最多覆盖 11 种语言)可以启动大多数工作流:“review this PR”会启动 /review。描述一整个应用(“Build a TODO app with user authentication”)会建议使用 /orchestrate,由你的 agent 决定是否运行。代码块中的关键词会被忽略。

/orchestrate、/work、/ultrawork 和 /ralph 在你按名称调用时(斜杠命令或纯文本,如“ultrawork: add rate limiting”)是持久型的。此后 agent 每次想提前停下,都会被送回去继续工作(最多 5 次或 2 小时),直到你说 “workflow done”。如果请求只是大致匹配,则只会建议使用它们。

实测数据,附带说明。 在基准测试中(一个 prompt;Claude Code 搭配五种不同的附加配置,含纯 Claude Code;claude-opus-4-6;每种各构建一次),oma 得分 80.6,纯 Claude Code 为 70.7;成本是后者的 1.7 倍($4.04 对 $2.37),耗时是后者的 1.8 倍。

全部 21 个工作流
命令 作用
/architecture 权衡设计取舍,给出建议、评审或 ADR
/brainstorm 探索想法与约束,在规划前产出一份经过确认的设计
/convert 把 PDF/HWP 转成 Markdown,或用 ffmpeg 转码图像、视频和音频
/debug 复现 bug、修复根因、编写回归测试,并扫描类似模式
/deepinit 把现有代码库梳理成 AGENTS.md、ARCHITECTURE.md 和 docs/ 知识库
/design 构建设计系统、DESIGN.md 和设计 token,并做无障碍检查
/docs 找出失效的文档引用,并为 diff 涉及的文档提出补丁
/explain 把 diff、PR、分支或主题做成自包含的交互式 HTML 讲解文档
/orchestrate 并行运行多个 agent,通过文件状态协调它们,并验证结果(持久型)
/plan 把功能拆成按优先级排序、带 API 契约的任务
/ralph 搭配单独 spawn 的 judge 反复运行 /ultrawork,最多 5 轮(持久型)
/recap 总结你某一天或某段时间的 AI 对话历史
/review 审查安全(OWASP Top 10)、性能、无障碍(WCAG 2.2 AA)和代码质量
/schedule 注册一个按固定周期运行的 agent 任务
/scm 处理分支、合并、冲突、worktree 和 Conventional Commits
/security 扫描源码、agent 技能和 MCP 组件,验证发现,并设置 CI 门禁
/stack-set 检测你的技术栈,为领域技能生成针对该技术栈的参考资料
/tools 用自然语言列出、启用和禁用 MCP 工具
/ultrawork 五个阶段(PLAN、IMPL、VERIFY、REFINE、SHIP),每次审查都在全新的审查者会话中进行(持久型)
/video 通过密钥可选的流水线,把一份 brief 做成完整的 MP4
/work 借助 PM 规划和 QA 审查,协调多个 agent 完成跨领域项目(持久型)

oma verify triggers 使用一份带标注、包含 212 条英文和韩文提示的语料评估检测器,误检超过 10% 或漏检超过 20% 时 CI 就会失败。最近一次实测:漏检 0%,误检 5.3%。完整参考:工作流。

实际运行效果

下面是一个示意性的 /ultrawork 会话。[OMA PERSISTENT MODE: ULTRAWORK] 块是 Stop hook 实际打印的格式,其余行是转述:

you    /ultrawork add rate limiting to POST /login
agent  runs `oma goal set --gate test`
agent  PLAN writes .agents/results/plan-<run-id>.json
agent  IMPL -> VERIFY -> REFINE -> SHIP  (each review runs in a fresh reviewer session)
agent  "Rate limiting added. All tests pass."
oma    [OMA PERSISTENT MODE: ULTRAWORK]
       Stop gate 'test' FAILED (reinforcement 1/5).
       Fix the failures below, then finish the workflow — the stop is allowed only when the gate passes.
       --- gate output (tail) ---
       FAIL  src/auth/login.test.ts > returns 429 after 5 attempts
       To abandon instead: delete .agents/state/ultrawork-state-<host-session>.json or say "workflow done".
agent  fixes the limiter and stops again
oma    `test` exits 0: stop allowed, gate.passed appended to the session log

之后,oma state list 能找到这个会话,oma state get <oma-sid>(使用 state list 输出的 ID)会显示每一条门禁事件。在 /ralph 下,oma ralph verify --json 还会检查各个阶段是否留下了应有的文件(输出已截断):

{ "ok": false,
  "missing": [{ "id": "A3", "description": "a distinct QA agent ran (VERIFY phase)",
                "pattern": ".agents/state/memories/result-qa*.md or .agents/results/result-qa*.md",
                "status": "missing" }] }

全部功能一览

规划与设计:/brainstorm、/plan、/architecture、/design
命令 作用 写入
/brainstorm 每次只问一个澄清问题,提出 2-3 种做法各不相同的方案,然后交给 /plan。不写代码 docs/plans/designs/<NNN>-<feature>.md
/plan 把工作规模评估为 Simple、Medium 或 Complex;对于 Medium 和 Complex 的工作,拆成任务,每个任务都有 agent、依赖、验收标准和检查命令,并在工作跨越边界时定义 API 契约 .agents/results/plan-<sid>.json、docs/plans/work/<NNN>-<name>.md,需要时在 .agents/results/api-contracts/ 中写入契约
/architecture 先阅读以往的决策,至少比较 2 个选项,并把被取代的 ADR 标记为 superseded .agents/results/architecture/ 中的一份 ADR 或建议
/design 提出 2-3 个方向,然后写出带 token 的 DESIGN.md,并审查响应式布局和无障碍 DESIGN.md、CSS/Tailwind/shadcn token
构建:7 个领域技能,外加用 /stack-set 让它们适配你的技术栈
技能 构建内容
oma-frontend 遵循你的 token、i18n 和无障碍规则的 React/Next.js 或 Angular UI
oma-backend API、认证和数据访问,按 router → service → repository 分层
oma-mobile Flutter、React Native 或 Swift 应用
oma-db schema、迁移、查询调优、vector/RAG 检索方案
oma-tf-infra 适用于任何云的 Terraform,并指出漂移、破坏性变更和成本风险
oma-dev-workflow mise 任务、lint/format/typecheck、commitlint、git hook、CI/CD 和发布
oma-observability OpenTelemetry、SLO、告警和事故取证

/stack-set 读取你的 manifest 文件,为 backend、frontend 和 mobile 技能写入针对该技术栈的参考资料。在 monorepo 中,前端、后端和移动端工程师会被指向各自的 workspace(pnpm、npm/yarn/bun workspaces、lerna、nx、turbo、mise.toml)。

审查、修复与交付:/review、/security、/debug、refactor、/scm
命令或技能 作用 写入
/review 先做依赖审计,然后检查 OWASP Top 10、性能、WCAG 2.2 AA 和代码质量。每条发现都带 file:line 和修复代码 报告输出在聊天中,外加一条 memory 记录;没有报告文件
/security 扫描你的源码、agent 技能和 MCP 服务器(Deepsec、Cisco Skill and MCP Scanner),并在提供限定范围的测试部署时运行 ARTEX 渗透测试。工作流要求把未能运行的引擎报告为失败,而不是“干净” .agents/results/security/<run-id>/
/debug 复现故障,用最小改动修复根因,添加回归测试,并在其他地方扫描同样的模式 修复和测试;必要时在 .agents/results/bugs/ 中留下一份 bug 笔记
oma-refactor 改变结构而不改变行为:先写表征测试(characterization test),再做只含重构的提交 .agents/results/refactor/
/scm 按逻辑变更拆分的 Conventional Commits;分支、合并、rebase 和 worktree 提交和分支
文档与知识:/deepinit、/docs、/explain、/recap、translation
命令或技能 作用 写入
/deepinit 把现有仓库变成 agent 可直接使用的知识库 AGENTS.md、ARCHITECTURE.md、docs/
/docs 找出失效引用,修补 diff 涉及的文档(只应用你批准的补丁),并找出过时的翻译 docs/generated/doc-refs.json、修补后的文档
/explain 把 PR、分支或暂存的改动做成带 5 道题测验的 HTML 讲解文档,或把一个主题做成单页可视化讲解 .agents/results/explain/<date>-<slug>.html
/recap 总结你在各个工具中某一天或某段时间的 AI 对话 .agents/results/recap/<date>.md
oma-translation 读起来地道的翻译;占位符、代码和 locale key 保持不变 译文
研究:搜索、市场、论文、学术写作
技能 作用 写入
oma-search 文档、网页和代码搜索,每个来源都带可信度标签 带引用的结果
oma-market 从社区信号中挖掘痛点、趋势和竞争对手,并用 SWOT、波特五力和 PESTEL 框架梳理 .agents/results/market/<topic>-<date>.md
oma-scholar 检索论文时读取精简的论断文件(Knows 格式,约 700 token),而不是完整 PDF(约 10K token) <paper>.knows.yaml
oma-academic-writing 对照评分标准起草和审校学术文章 你的文件
内容与媒体:/video、/convert、幻灯片、图像、语音
命令或技能 产出 写入
/video 把短视频、讲解视频或演示做成完整的 MP4;需要密钥的提供方都有免密钥的后备方案 .agents/results/videos/<run>/,附带 manifest
oma-slide 1920×1080 的 HTML 演示文稿,可导出为 PDF、PNG 或 PPTX .agents/results/slides/<session>/
oma-image 通过你已登录的厂商 CLI 生成图像,并排比较 .agents/results/images/<run>/
oma-voice 通过 Voicebox 应用在本地进行文本转语音和转写 .agents/results/voice/<run>/
/convert PDF 或 HWP 转 Markdown;通过 ffmpeg 转换图像、视频和音频 与输入文件放在一起

这些流水线在缺少来源或厂商密钥时会如实报告,而不是悄悄返回一份缩水的结果。

无需吩咐就会运行的 hook
Hook 作用 关闭方式 / 限制
关键词启动 从普通请求启动匹配的工作流 会跳过提问、粘贴的文本和代码块
技能注入器 根据 prompt 为 agent 指出合适的技能 持久型工作流运行期间暂停
Stop 门禁 把持久型工作流送回去继续工作;设置了 oma goal set --gate test 时,只有该脚本在 25 秒内以 0 退出才允许停止 说“workflow done”;阻止 5 次或 2 小时后也会自动解除
重构守卫 停止时标出超过 500 行的已编辑文件,交给 refactor-engineer 需手动开启:refactor_guard.enabled
密钥守卫 阻止对 *.env、*.pem、id_rsa*、*.tfstate 等文件执行 git add 在那一条命令前加上 OMA_SCM_ALLOW_SECRETS=1
代码搜索守卫 阻止在项目中使用原生递归搜索,让 agent 改用 Serena 或 Gortex providers.code_intelligence_guard: off
测试过滤器 只保留测试输出中的失败和摘要,从而少花 token OMA_TEST_FILTER=0
会话记忆 当你切换或恢复会话(或在压缩之后)时,重新注入当前会话的近期事件以及 AgentMemory 召回的内容 记忆提供方设为 none 或设置 OMA_NO_AGENTMEMORY=1 会关闭召回;本地事件快照仍会保留

oma hook probe 检查 oma 的 prompt hook 能否接受各运行时的 hook 输入(它不会启动运行时)。每个运行时接入了哪些 hook,见运行时差异。

并行 agent、会话与仪表盘
  • oma agent spawn <role> "<task>" <sid> 可在 Antigravity、Claude Code、Codex、Cursor、Grok、Kimi Code、Kiro、OpenCode、pi 或 Qwen Code 上运行角色,并支持 --isolation worktree 和 --fallback-vendors。oma agent parallel 可同时运行多个。这 10 个调度目标属于安装器支持的 14 个集成。
  • oma state list --all-projects 和 oma state get <sid>:会话以及记录下的每一条事件。
  • oma dashboard terminal / oma dashboard web:实时 agent 状态(Web 仪表盘只监听 127.0.0.1)。仪表盘指南。
  • oma stats get(生产力指标)、oma retro(git 回顾)、oma recap --window 7d(你在各个 AI 工具中做了什么)。
  • oma visualize --affected <paths>:哪些技能、工作流、agent 和检查依赖你改动的 .agents/ 文件。
代码智能、记忆与 MCP
槽位 默认 备选
文档 Context7 —
网络搜索 运行时原生搜索 Brave Search
代码智能 Serena,每个项目共用一个服务器 Gortex(实验性)
语义记忆 AgentMemory Honcho(实验性)、none
浏览器 MCP Aside Chrome DevTools、Firefox DevTools

Serena 提供基于 LSP 的代码导航和诊断,并在支持时反馈原生编辑结果。能力提供方的选择独立于 agent 运行时;可用能力因提供方和宿主而异。

agent 之间通过 .agents/state/ 中的普通文件协调,不依赖任何外部服务。/tools 用自然语言开启或关闭 MCP 工具。详情:能力提供方。

越用越好
  • oma skill eval 在留出任务上测量技能相对 baseline 的提升幅度。oma skill optimize 会提出能进一步提高这一幅度的修改,加上 --apply 则保留这些修改(skill-eval 指南)。
  • oma harness evolution enable --max-dispatches <n> 会安排一个每晚运行的周期:把失败的运行转成回归 fixture,并把通过评测的技能改进作为项目 overlay 应用。加上 --mode propose 则只记录这些改进。
  • oma emit 把 .agents/ 源导出为 Agent Skills 包、Agent Plugins 包、Claude Code 插件市场或 AGENTS.md。
配置与安全护栏
  • 由用户自己掌管的那份 .agents/oma-config.yaml 在更新后会保留(只有 oma update --force 会重置它);还可以在它之上叠加私有的 .local.yaml 或 .local.cue overlay。language 设置响应语言。
  • 13 条项目规则(backend、commit、database、debug、design 等)在 Claude Code 和 Cursor 中作为原生规则加载,并在为 Codex、Qwen Code 和 Pi 写入的托管 AGENTS.md 区块中建立索引。
  • 更新时会在 .agents/backup/ 中保留配置和迁移备份;随附的技能和工作流会被原地替换,所以请把本地修改放在它们之外。oma uninstall --dry-run 会列出将被删除的内容。first-fluke/oma-update-action@v1 会在 CI 中运行 oma update 并开一个 PR。
全部 33 个技能
技能 作用
oma-academic-writing 起草、修订并审核学术文章
oma-architecture 权衡架构取舍、划定模块边界,并提供 ADR/ATAM/CBAM 分析
oma-backend 用 Python、Node.js 或 Rust 构建 API、认证与数据访问
oma-brainstorm 在动手构建之前,先和你一起探索想法
oma-coordination 指导你逐步手动协调 PM、前端、后端、移动端与 QA 代理
oma-db 设计 schema、迁移、索引与 vector store
oma-debug 找到根因、修复 bug,并编写回归测试
oma-design 构建包含 token、无障碍与响应式布局的设计系统
oma-dev-workflow 自动化 CI/CD、发布与 monorepo 任务
oma-docs 检查文档中的失效引用,随代码变更同步文档,并标出翻译漂移
oma-explanation 把 diff、PR、分支或某个主题做成自包含的 HTML 讲解文档,代码变更还会附带测验
oma-frontend 用 React/Next.js 或 Angular 构建 UI
oma-hwp 将 HWP、HWPX 和 HWPML 文件转换为 Markdown
oma-image 生成图像及基于参考图的变体,也能并排比较多家 AI 供应商
oma-market 从社区信号研究你的市场,并用 SWOT、5F 和 PESTEL 框架梳理
oma-mobile 用 Flutter、React Native 或原生 Swift 构建移动应用
oma-observability 统一路由可观测性工作,覆盖指标、日志、追踪、SLO 与事故取证
oma-orchestration 通过 CLI 并行运行多个代理
oma-pdf 将 PDF 文件转换为 Markdown
oma-pm 规划任务、拆解需求并定义 API 契约
oma-qa 从正确性、OWASP 安全、性能和无障碍角度审查变更
oma-recap 将你的会话历史整理成按主题划分的工作摘要
oma-refactor 借助热点定位、特性化测试和纯重构提交,在不改变行为的前提下重构代码
oma-scholar 检索学术文献,并生成涵盖论点、证据与同行评审的 Knows 论文 sidecar
oma-scm 管理分支、合并、worktree 与 Conventional Commits
oma-search 将每条查询路由到最合适的来源,并为结果的可信度打分
oma-security 扫描源代码、代理技能和 MCP 组件;测试已部署的 Web 应用并验证发现
oma-skill-creation 编写并审核新的 OMA 技能
oma-slide 生成 HTML 演示文稿,并导出为 PDF/PNG/PPTX
oma-tf-infra 用 Terraform 配置多云基础设施
oma-translation 让译文读起来像母语者亲手所写
oma-video 通过可免密钥的 HyperFrames 流水线生成短视频、讲解视频和演示视频
oma-voice 在本地设备上生成配音并转写音频

兼容的运行时

共 14 个安装目标:Claude Code、Codex CLI、Cursor、Antigravity、Qwen Code、Grok、Kiro、Kimi、OpenCode、Pi、GitHub Copilot、Hermes、CommandCode 和 ZCode。安装时跳过的运行时可以之后用 oma link <vendor> 接入。各运行时提供的 hook 不尽相同,完整矩阵见支持的 Agent。

  • Orca IDE: OMA for Orca 会添加一个侧边栏面板和命令面板操作(需要 Orca 1.4.197+ 并启用实验性插件)。
  • DeepSeek Harness: OMA for DeepSeek Harness 通过 Cordis 插件接入 OMA 检查。需要 oma 在你的 PATH 中。
运行时标志(安装目标,外加 Amp 和 DeepSeek Harness)

原生 = oma 写入运行时自己的配置文件;适配器 = oma 还会额外添加 hook 或 agent shim。Amp 会自行读取 .agents/skills/,不是安装目标。

Claude Code
Claude Code
原生 + 适配器
Codex CLI
Codex CLI
原生 + 适配器
Antigravity
Antigravity
原生 SSOT
Cursor
Cursor
原生 + 适配器
Qwen Code
Qwen Code
原生派发
DeepSeek Harness
DeepSeek Harness
Cordis plugin
Pi
Pi
原生兼容
OpenCode
OpenCode
原生兼容
Amp
Amp
读取 .agents/skills
GitHub Copilot
GitHub Copilot
符号链接技能
Grok Build
Grok Build
原生 hook
Kiro CLI
Kiro CLI
原生 hook + agent

& 更多

运行时差异:哪些运行时支持关键词检测和 Stop 门禁
运行时 关键词检测 Stop 门禁
Claude Code、Codex CLI、Qwen Code、Grok、Kimi 支持 支持
Cursor 支持 支持(以后续消息的形式重新进入)
Antigravity 支持 支持(通过 bun 运行处理器,而不是经由 oma 包装器)
OpenCode、Pi 支持 尽力而为(Pi 需要带 agent_settled 的版本)
Kiro 支持 不支持:Kiro 会忽略 Stop hook 的输出
CommandCode 无 prompt hook 支持
GitHub Copilot、Hermes、ZCode 无 hook 无 hook

按 agent 配置模型

.agents/oma-config.yaml 中的 model_preset 决定每个 agent 角色使用哪个模型。默认值 auto 会沿用当前运行时自身的 agent 和模型设置。

language: en
model_preset: auto   # auto | free | antigravity | claude | codex | cursor | kiro | mixed | qwen | <custom_presets key>

# Optional per-agent overrides; they win over the preset
agents:
  backend: { model: openai/gpt-6.1-terra, effort: high }
  • mixed 让编排器、architecture、QA、PM 和 docs 使用 Claude,实现类角色使用 Codex gpt-6.1-terra,因此需要同时具备 Claude Code 和 Codex CLI。
  • free 通过 FreeLLMAPI 网关路由,需要 FREELLM_API_KEY 以及一个正在运行的服务器。
  • kiro 不在安装器菜单中,需要在配置文件里设置。
  • oma doctor --profile 会输出每个角色解析后的模型。
  • 完整指南:按 agent 配置模型

验证

OMA 会检查工作流生成的产出物。实际运行效果展示了 Stop 门禁的运行过程。

对于受跟踪的 Claude Code 和 Codex harness 运行,OMA 还会记录工具调用元数据和载荷摘要,区分运行时报告的 token 用量与估算值,并评估 skill 回归。这些 +1 功能贯穿各层;trace 覆盖范围因运行时和单次运行而异。

大多数检查由程序直接判定:命令返回退出码 0 或其他代码,文件则存在或缺失。prompt 驱动的 judge 是例外。程序执行的检查不会询问 LLM 工作“看起来是否正确”。

机制 检查内容 来源
Stop hook 门禁 在持久型工作流中,oma goal set --gate test(或 lint、typecheck)只有在对应的 package.json 脚本于 25 秒内以 0 退出时才允许停止。 persistent-mode.ts
产出物门禁 oma ralph verify --json 会检查 phase 记录、plan JSON,以及来自独立 QA agent 和独立 refactor agent 的 result 文件,每一项都绑定到已记录的 agent 运行。 ralph.md
prompt 驱动的 judge 不是机械的:/ralph 的 prompt 要求编排器 spawn 一个拥有全新上下文的 judge,每一轮都重新检查每一条标准。没有任何东西会检查这次 spawn 是否真的发生。 judge-protocol.md
事件日志 在 OMA 会话中,门禁通过、门禁失败和决策各会向该会话的 events.jsonl 追加一行 JSON。 state-core.ts · event-spec.md
按 agent 检查 oma verify agent <type> 会运行 Scope Check、Charter Preflight、Hardcoded Secrets、TODO/FIXME Comments、Declared outputs 和 TDD Evidence,外加按类型的检查,例如 TypeScript、Any Types、SQL Injection 和测试。 oma verify agent --help

会话事件记录: Stop hook 会把门禁事件记在持久型工作流启动时开启的那个 OMA 会话下。事件写入是尽力而为的。如果这个会话没能创建(stderr 中会出现 [oma] L1 session activation failed),失败的门禁仍然会阻止停止,但不会写下任何 gate.failed 行。在依赖这份留痕或拿它做演示之前,先确认 oma state list 显示有一个活跃会话;之后 oma state get <sid> 会显示它的事件。

限制、细节,以及 Stop hook 如何做决定

限制:

  • Stop 门禁只作用于持久型工作流(/orchestrate、/work、/ultrawork、/ralph)。没有 oma goal set --gate 时,它只会再次提示 agent 继续。当项目有低成本的检查时,/ultrawork 会让 agent 设置门禁,但没有任何机制强制执行。想要确保的话,请自己运行 oma goal set --gate test;其他持久型工作流从不设置门禁。
  • 只接受 typecheck、test 和 lint 这三个关键词,它们会运行 package.json 中同名的脚本。没有 package.json,或没有同名脚本,门禁就不会运行。非 JS 项目需要一个 package.json 包装脚本。
  • 阻止 5 次后、经过 2 小时或 --budget-minutes 用完后,门禁会解除阻止并记录失败。
  • 预算:session.quota_cap 限制 token 数、spawn 次数和单厂商 token;任何一个维度超标时,编排器都会拒绝下一次 spawn。

产出物门禁。 缺少产出物表示该阶段没有运行。当会话日志记录了 REFINE 跳过原因时,refactor 检查也会以 skip-recorded 通过。

prompt 驱动的 judge。 /ralph 工作流 prompt 要求编排器把 judge 作为一个拥有全新上下文的独立 agent 来 spawn,只告知它标准本身(绝不告知实现方声称自己修好了什么),并在每一轮重新校验每一条标准,已经 PASS 的也不例外,因为修复一项标准可能导致另一项回退。没有任何东西会检查这次 spawn 是否真的发生:oma ralph verify 把关的是 EXEC 产出物,而不是 judge;无法 spawn subagent 的运行时会被要求以内联方式判定,并记录 ralph.judge-inline-fallback。/ralph 在 5 轮后停止,并给出部分完成报告。

事件日志。 用 oma state list 找到会话,再用 oma state get <sid> 读取。每个事件都带有厂商和运行时会话 id。这个文件的位置取决于 OMA_HOME、OMA_STATE_HOME、OMA_PROFILE 以及旧版的项目本地会话目录,所以不要把路径写死。

按 agent 检查。 类型:backend、frontend、mobile、qa、debug、pm。任意检查失败时命令以 1 退出;TODO/FIXME Comments 和 Inline Styles 只会给出警告。

  • backend:<Language> Syntax、SQL Injection(原始 SQL 模式)和 <Language> Tests,来自 stack/stack.yaml 中的命令。没有这个文件(可用 /stack-set 生成)时会跳过这些检查。
  • frontend:stack/stack.yaml(位于 oma-frontend 下;若已安装 angular-developer 技能,则位于其下)中的语法和测试命令,或 TypeScript(tsc --noEmit)与 Frontend Tests(Vitest)。Inline Styles 和 Any Types 始终运行。
  • mobile:stack/stack.yaml 中的语法和测试命令,或 Flutter/Dart Analysis 与 Flutter Tests。
  • debug:Python Tests(通过 uv 运行 pytest)或 Frontend Tests(Vitest)。
  • pm:PM Plan(计划文件是合法的 JSON)。
  • qa:没有机械检查。
flowchart TD
    S[Agent tries to stop] --> P{Persistent workflow active?}
    P -- no --> A[Stop allowed]
    P -- yes --> D{User or agent said workflow done?}
    D -- yes --> A
    D -- no --> R{Budget spent, state older than 2 h, or 5 blocks reached?}
    R -- yes --> F[Stop allowed, logged as gate.failed]
    R -- no --> G{Gate set and package.json script exists?}
    G -- no --> B1[Blocked: workflow still active]
    G -- yes --> X{Script exits 0 within 25 s?}
    X -- yes --> OK[Stop allowed, logged as gate.passed]
    X -- no --> B2[Blocked with output tail, logged as gate.failed]

常见问题

我需要所有技能吗?

不需要。参见技能预设;All 是稳妥的默认选择。

怎么知道它在正常工作?

oma doctor 会显示已安装的技能,并在 hook 找不到 oma 时发出警告。在持久型工作流运行期间,oma state list 会显示活跃会话,oma state get <sid> 会显示它的门禁事件。

会多花 token 吗?

通常会。技能只在任务需要时加载,但多 agent 工作流和全新上下文审查会花得更多。在单 prompt 基准测试中,oma 的成本是纯 Claude Code 的 1.7 倍。

Stop hook 一直在阻止停止,怎么退出?

说“workflow done”(或“workflow complete” / “workflow finished”,或其他受支持语言中的对应说法),或者删除 .agents/state/<workflow>-state-<sid>.json。两者都不做的话,它会在阻止 5 次或 2 小时后自行解除。

如何更新或卸载?

oma update 会刷新技能、工作流和 hook,并保留你的配置(--with-new-skills 会加入该版本新增的技能;oma update mcp 可重新选择浏览器 MCP)。oma uninstall --dry-run 会列出将被删除的内容;oma uninstall 执行删除,并保留 oma-config.yaml、mcp.json 和你自己编写的技能。更多解决办法:故障排查。

oh-my-agent 把哪些事交给模型?

规划和下一步的选择仍由你的 agent 所用的模型负责;oma 没有固定的工作流图。oma 在模型之外强制执行的有:工具护栏(密钥守卫和搜索守卫)、预算、重试与停止上限、事件日志,以及在你设置了门禁时,一个要等你自己的检查通过才放行的停止。

了解更多

在 GitHub 上为项目加星:

gh api --method PUT /user/starred/first-fluke/oh-my-agent

入门模板:fullstack-starter

Star History

参考文献

本项目借鉴的研究(7 篇论文)
  • Li, X., Liu, Y., Chen, W., You, B., Di, Z., He, Y., Zheng, S., Choe, K. W., Sun, J., Wang, S., Tao, C., Li, B., Zhao, X., Geng, H., Wu, X., Zhou, J., Chen, X., Xing, H., Li, Y., … Song, D. (2026). SkillsBench: Benchmarking how well agent skills work across diverse tasks (Version 4) [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2602.12670
  • Yu, G., & Wang, X. (2026). Knows: Agent-native structured research representations (Version 1) [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2604.17309
  • Liang, Q., Wang, H., Liang, Z., & Liu, Y. (2026). From skill text to skill structure: The scheduling-structural-logical representation for agent skills (Version 4) [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2604.24026
  • Chen, C., Yu, Q., Gu, Y., Huang, Z., Li, H., Liu, H., Liu, S., Liu, J., Peng, D., Wang, J., Yan, Z., Meng, F., Qin, E., Che, C., & Hu, M. (2026). The scaling laws of skills in LLM agent systems (Version 1) [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2605.16508
  • Tang, L., Rashtchian, C., Ferng, C.-S., Tomkins, A., Juan, D.-C., & Vu, T. (2026). WikiSkill: Compiling agent experience into persistent knowledge for skill evolution [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2608.27454
  • Huang, Z., Xu, J., Yang, Y., Gong, Z., Yang, Q., Tian, M., Wang, X., Lv, C., Gao, X., Dai, Q., Liu, B., Qiu, K., Yang, X., Chen, D., Zheng, X., & Luo, C. (2026). From raw experience to skill consumption: A systematic study of model-generated agent skills [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2605.23899
  • Hong, D. B., Imani, A., & Ahmed, I. (2026). From anatomy to smells: An empirical study of SKILL.md in agent skills (Version 2) [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2607.01456

许可证

MIT

探索相关项目