


























oh-my-openagent(OmO)做对的一件事,是把"挑模型"和"装领域知识"分开。前者是 Category(类别)——它回答"这是什么种类的活儿?";后者是 Skill(技能)——它回答"这件事需要什么专业知识和工具?"。两者组合起来,能在不到一秒内把一个普通子 Agent 装备成"前端工程师 + 浏览器测试员 + Git 提交艺术家"。
本章把 Category 与 Skill 系统讲透:8 个内置类别、7 个内置技能、自定义方式、组合策略、最佳实践。
直接让 Agent 在调用时写 model: "gpt-5.4" 有两个致命问题:
gpt-5.4 字符串?运行时哪个 Agent 哪个变体落到哪个 fallback?类别让这一切和模型解耦。OmO 把这一层抽象写在了源码 src/tools/delegate-task/constants.ts 里。
| Category | 默认配置 | 运行时回退顺序 | 适用 |
|---|---|---|---|
visual-engineering |
google/gemini-3.1-pro (high) |
gemini-3.1-pro → glm-5 → claude-opus-4-7 → glm-5 → k2p5 | 前端、UI/UX、设计、样式、动画 |
ultrabrain |
openai/gpt-5.4 (xhigh) |
gpt-5.4 → gemini-3.1-pro → claude-opus-4-7 → glm-5 | 复杂硬核逻辑、架构决策 |
deep |
openai/gpt-5.4 (medium) |
gpt-5.4 → claude-opus-4-7 → gemini-3.1-pro | 目标导向自主问题求解 |
artistry |
google/gemini-3.1-pro (high) |
gemini-3.1-pro → claude-opus-4-7 → gpt-5.4 | 创意 / 艺术性强、追求新颖 |
quick |
openai/gpt-5.4-mini |
gpt-5.4-mini → claude-haiku-4-5 → gemini-3-flash → minimax-m2.7 → gpt-5-nano | 改字、单文件、小修改 |
unspecified-low |
anthropic/claude-sonnet-4-6 |
claude-sonnet-4-6 → gpt-5.3-codex → kimi-k2.5 → gemini-3-flash → minimax-m2.7 | 不属于其他类别、低投入 |
unspecified-high |
anthropic/claude-opus-4-7 (max) |
claude-opus-4-7 → gpt-5.4 → glm-5 → k2p5 → kimi-k2.5 | 不属于其他类别、高投入 |
writing |
kimi-for-coding/k2p5 或 google/gemini-3-flash |
gemini-3-flash → kimi-k2.5 → claude-sonnet-4-6 → minimax-m2.7 | 文档、技术写作 |
通过 task 工具的 category 参数:
task({
category: "visual-engineering",
prompt: "为 dashboard 页面加一个响应式图表组件"
});
OmO 会自动启动一个 Sisyphus-Junior,配上对应的模型 + fallback 链 + 默认参数,然后跑你给的 prompt。
在你的 oh-my-openagent.json / oh-my-opencode.json 里直接 override 或新建。完整 schema:
| 字段 | 类型 | 描述 |
|---|---|---|
description |
string | 类别描述,会显示在 task prompt 里 |
model |
string | 模型 ID(如 anthropic/claude-opus-4-7) |
variant |
string | 变体(max、xhigh 等) |
temperature |
number | 0.0~2.0 |
top_p |
number | 0.0~1.0 |
prompt_append |
string | 追加到系统提示词 |
thinking |
object | { type: "enabled", budgetTokens: 16000 } |
reasoningEffort |
string | low / medium / high |
textVerbosity |
string | low / medium / high |
tools |
object | 禁用工具:{ "tool_name": false } |
maxTokens |
number | 最大响应 token |
is_unstable_agent |
boolean | 标记不稳定,强制后台执行以便监控 |
{
"categories": {
// 1. 新建一个"中文技术作家"类别
"korean-writer": {
"model": "google/gemini-3-flash",
"temperature": 0.5,
"prompt_append": "你是一位中文技术作家,保持友好清晰的语气。"
},
// 2. 覆盖已有类别(把 visual-engineering 改成 GPT-5.4)
"visual-engineering": {
"model": "openai/gpt-5.4",
"temperature": 0.8
},
// 3. 配置思考模型 + 限制工具
"deep-reasoning": {
"model": "anthropic/claude-opus-4-7",
"thinking": { "type": "enabled", "budgetTokens": 32000 },
"tools": { "websearch_web_search_exa": false }
}
}
}
记住:所有 Category 都是通过 Sisyphus-Junior 执行的。Junior 的核心限制:
task() / call_omo_agent()(避免无限委派);lsp_diagnostics 验证才能完成;Skill 比 Category 更"模板化":每个 Skill 是一个 SKILL.md 文件,包含:
OmO 内置:
| Skill | 触发关键词 | 描述 |
|---|---|---|
| git-master | commit / rebase / squash / "who wrote" / "when was X added" | Git 专家,三专长:原子提交、Rebase 手术、历史考古 |
| playwright | 浏览器任务、测试、截图 | 通过 Playwright MCP 浏览器自动化(默认) |
| agent-browser | 浏览器任务(agent-browser CLI) | Vercel agent-browser CLI,覆盖导航、快照、截图、网络监听、脚本交互 |
| dev-browser | 状态化的浏览器脚本 | 持久页面状态,迭代式工作流和带身份的会话 |
| frontend-ui-ux | UI/UX、样式 | 设计师转开发者人格,强调审美方向、特别字体、和谐配色 |
| review-work | "review work" / "QA my work" | 落地后审查协调器,并行启动 5 个后台子 Agent:目标验证、代码质量、安全、人工 QA、上下文挖掘 |
| ai-slop-remover | "remove AI slop" / "de-AI" / "humanize" | 在保留功能的前提下剔除 AI 痕迹:冗长注释、过度错误处理、过度抽象、AI 套话 |
git-master 是 OmO 体验里最显眼的 Skill 之一。三条核心原则:
多次提交是默认行为:
3+ 个文件 → 必须 ≥ 2 次提交
5+ 个文件 → 必须 ≥ 3 次提交
10+ 个文件 → 必须 ≥ 5 次提交
自动检测风格:
用法:
/git-master commit these changes
/git-master rebase onto main
/git-master who wrote this authentication code?
它会按你的仓库风格把"这个 PR 的 17 处改动"切成 5 个原子化提交,依赖关系正确,并且 Commit message 看起来像你自己写的。
这个 Skill 把"UI/UX"提升成一个完整的设计师人格:
OmO 通过 browser_automation_engine.provider 切换:
Playwright MCP(默认):
mcp:
playwright:
command: npx
args: ["@playwright/mcp@latest"]
/playwright Navigate to example.com and take a screenshot
Agent Browser CLI(Vercel):
{
"browser_automation_engine": { "provider": "agent-browser" }
}
bun add -g agent-browser
Use agent-browser to navigate to example.com and extract the main heading
二者都能:导航 / 交互 / 截图 PDF / 表单 / 等待网络 / 抓内容。区别在于:Playwright MCP 是稳定标准;agent-browser 在 Vercel 生态下更灵活。
把这个文件丢到 .opencode/skills/my-skill/SKILL.md:
---
name: my-skill
description: My special custom skill
mcp:
my-mcp:
command: npx
args: ["-y", "my-mcp-server"]
---
# My Skill Prompt
This content will be injected into the agent's system prompt.
...
OmO 在加载 Skill 时按以下优先级(高 → 低)扫描:
.opencode/skills/*/SKILL.md(项目 / OpenCode 原生)~/.config/opencode/skills/*/SKILL.md(用户 / OpenCode 原生).claude/skills/*/SKILL.md(项目 / Claude Code 兼容).agents/skills/*/SKILL.md(项目 / Agents 约定)~/.agents/skills/*/SKILL.md(用户 / Agents 约定)同名 Skill 高优先级覆盖低优先级。如果你想关闭内置 Skill:
{ "disabled_skills": ["playwright"] }
Skill 的 frontmatter 可以声明自己的 MCP 服务,只在该 Skill 被调用时启动,结束即销毁——这是 OmO 控制上下文窗口的关键技术。
OAuth-protected Skill MCP(RFC 2.1 全合规)示例:
---
description: My API skill
mcp:
my-api:
url: https://api.example.com/mcp
oauth:
clientId: ${CLIENT_ID}
scopes: ["read", "write"]
---
OmO 自动处理:
/.well-known/oauth-protected-resource(RFC 9728),不行回退 /.well-known/oauth-authorization-server(RFC 8414);~/.config/opencode/mcp-oauth.json(chmod 0600);预先认证:
bunx oh-my-opencode mcp oauth login <server-name> --server-url https://api.example.com
category: visual-engineering
load_skills: ["frontend-ui-ux", "playwright"]
效果:用 Gemini 3.1 Pro 写带美感的 UI,再用 Playwright 直接打开浏览器验证渲染效果——闭环。
category: ultrabrain
load_skills: []
效果:用 GPT-5.4 xhigh 推理做架构评审,纯思考、不做无关动作。
category: quick
load_skills: ["git-master"]
效果:用 GPT-5.4 Mini 快速修小问题,git-master 自动按风格切成多个原子提交。
review-work Skill 本身就是组合策略——它在被触发时一次性并行启动 5 个后台子 Agent:
5 个全 PASS 才算通过。这是 OmO 区别于"AI 写完就吹自己写完了"的硬手段。
任何时候你想给子 Agent 派任务,都建议照下面 7 个要素写——清晰具体的 prompt 是组合发挥的前提:
load_skills 哪些;坏例子:
"Fix this"
好例子:
TASK:修复
LoginButton.tsx在移动端的布局崩坏。
CONTEXT:src/components/LoginButton.tsx,使用 Tailwind CSS。
MUST DO:在md:断点改 flex-direction。
MUST NOT DO:不要改桌面端布局。
EXPECTED:移动端按钮垂直排列。
Sisyphus / Atlas
│
│ task({category, load_skills, prompt})
▼
┌────────────────────────────┐
│ Sisyphus-Junior │
│ ─ 按 category 选模型 │
│ ─ 按 load_skills 注入提示词│
│ ─ 启动 Skill 内嵌 MCP │
│ ─ 按 7 要素 prompt 工作 │
└────────────────────────────┘
│
▼
完成 → 验证 → 回收 → 销毁 Skill MCP
下一章我们把视角从"高层抽象"切回"工具实现层",看 OmO 是怎么用 Hashline、LSP、AST-Grep、Tmux 把 Agent 变成有 IDE 级精度的开发者。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。