惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
C
Cisco Blogs
The Hacker News
The Hacker News
T
Threatpost
S
Schneier on Security
K
Kaspersky official blog
Spread Privacy
Spread Privacy
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
NISL@THU
NISL@THU
量子位
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google DeepMind News
Google DeepMind News
Security Latest
Security Latest
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
博客园 - 叶小钗
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
News and Events Feed by Topic
爱范儿
爱范儿
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cisco Talos Blog
Cisco Talos Blog
GbyAI
GbyAI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
Forbes - Security
Forbes - Security
博客园 - 三生石上(FineUI控件)
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News and Events Feed by Topic
V
V2EX
Webroot Blog
Webroot Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
Scott Helme
Scott Helme
Simon Willison's Weblog
Simon Willison's Weblog
L
LangChain Blog
W
WeLiveSecurity
Cloudbric
Cloudbric

博客园 - 我才是银古

第16章:常见问题、排错与最佳实践 第15章:扩展生态、MCAD 与外部集成 第12章:实战案例:机械结构与 3D 打印零件 第14章:构建、测试、调试与贡献流程 第13章:OpenSCAD 源码架构与核心执行流程 第11章:预览、渲染、网格精度与性能优化 第09章:列表推导、递归与算法建模 第08章:参数化零件库与复用设计 第10章:导入导出、命令行与自动化 第06章:CSG 布尔建模方法 第07章:二维图形、拉伸、旋转与投影 第05章:基础几何、坐标系与变换 第04章:参数、变量、函数、模块与作用域 OpenSCAD 教程目录 第03章:OpenSCAD 语言基础 第02章:安装、环境配置与开发工作流 第01章:OpenSCAD 项目全景与学习路线 第02章:源码获取、编译与开发环境配置 第01章:OCCT项目全景与学习路线 第18章:二次开发实战与综合案例 第17章:与 Qt VTK Python pythonOCC 生态集成 第18章:综合实战案例 第17章:数据交换与协同 第16章:源码架构与二次开发 第15章:插件与自定义工作台开发 第14章:Python脚本宏与自动化 第13章:FEM仿真分析 第12章:CAM数控加工 第11章:SurfaceMesh与逆向工程 第10章:Draft二维绘图与BIM建筑 第09章:工程图TechDraw 第07章:参数化表达式与Spreadsheet 第08章:装配设计Assembly 第06章:Part工作台与几何内核 第05章:PartDesign实体特征建模 第04章:草图Sketcher约束建模 第02章:安装版本与工作环境配置 第03章:界面工作台与基础操作 第01章:项目全景与学习路线 第十二章:插件开发、研究功能与最佳实践 第十章:定时任务与自动化(Cron) 第七章:技能、记忆与自学习闭环 第八章:MCP 集成与上下文文件 第六章:工具系统与终端后端 第五章:模型供应商与配置体系 Hermes Agent 教程目录 第十一章:语音、视觉、浏览器与子代理协作 第四章:CLI/TUI 与会话管理 第十二章:学习路线、实战方案与最佳实践 第十一章:源码结构、开发调试与插件开发 第十章:自动化、远程访问、日志与排障 第九章:Control UI、节点、Canvas 与语音能力 第七章:工具、技能、插件与能力扩展 第八章:安全模型、访问控制与沙箱实践 第六章:Agent 工作区、会话与多智能体路由 第五章:多通道消息接入与聊天平台配置 第四章:配置体系、模型接入与认证管理 第三章:Gateway 架构、协议与运行机制 第二章:安装、环境准备与快速上手 第一章:OpenClaw 项目概览与核心定位 oh-my-openagent 教程目录 09-命令模型回退与配置参考 10-实战案例最佳实践与故障排除 05-工作模式-Ultrawork-Prometheus-Atlas 08-Hooks与MCP系统 07-核心工具链 04-智能体全景详解 03-安装与环境配置 02-整体架构与多模型编排机制 01-项目简介与核心理念 01-项目概览与学习路线 02-安装部署与工具适配 03-Skill机制与using-superpowers 05-TDD系统化调试与完成前验证 04-需求澄清方案设计与计划编写 07-并行智能体子智能体与Git-Worktree 第六章:代码审查、反馈处理与分支收尾 08-中国特色Skills与本土团队落地 09-MCP构建工作流执行与自定义Skill 第23章:FreeCAD-Python-API Clipper2 C# 源码解读教程 第19章:PolyTree 多边形树结构 第20章:实际应用与最佳实践 第18章:Minkowski 和与差 第17章:RectClip 矩形裁剪优化 第16章:ClipperOffset 偏移类详解 第15章:填充规则详解 第14章:布尔运算执行流程 第13章:ClipperD 浮点裁剪类 第11章:OutRec 与 OutPt 输出结构 第9章:Active 活动边结构 第10章:Vertex 顶点与 LocalMinima 局部极小值 第12章:Clipper64 裁剪类详解 第7章:高精度运算与128位整数 第8章:ClipperBase 基类详解 第5章:枚举类型与常量定义 第6章:InternalClipper 内部工具类 第2章:核心数据结构 - Point64、PointD 第3章:路径与多边形表示 - Path64、PathD、Paths64、PathsD 第4章:矩形边界 - Rect64、RectD
06-Category与Skill系统
我才是银古 · 2026-05-04 · via 博客园 - 我才是银古

第六章:类别(Category)与技能(Skill)系统

oh-my-openagent(OmO)做对的一件事,是把"挑模型"和"装领域知识"分开。前者是 Category(类别)——它回答"这是什么种类的活儿?";后者是 Skill(技能)——它回答"这件事需要什么专业知识和工具?"。两者组合起来,能在不到一秒内把一个普通子 Agent 装备成"前端工程师 + 浏览器测试员 + Git 提交艺术家"。

本章把 Category 与 Skill 系统讲透:8 个内置类别、7 个内置技能、自定义方式、组合策略、最佳实践。


6.1 为什么是 Category,而不是直接选模型

直接让 Agent 在调用时写 model: "gpt-5.4" 有两个致命问题:

  1. 认知偏差:模型知道自己被叫做 "GPT-5.4",会按它对自己的认知去回答,反而把限制强化;而 Category("ultrabrain"、"deep"、"quick")是描述意图的词,模型会更自然地把自己当成"被叫来做这种工作的专家"。
  2. 维护噩梦:明天 GPT-5.5 出来了,全代码库改 gpt-5.4 字符串?运行时哪个 Agent 哪个变体落到哪个 fallback?类别让这一切和模型解耦

OmO 把这一层抽象写在了源码 src/tools/delegate-task/constants.ts 里。


6.2 8 个内置 Category

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/k2p5google/gemini-3-flash gemini-3-flash → kimi-k2.5 → claude-sonnet-4-6 → minimax-m2.7 文档、技术写作

6.2.1 调用方式

通过 task 工具的 category 参数:

task({
  category: "visual-engineering",
  prompt: "为 dashboard 页面加一个响应式图表组件"
});

OmO 会自动启动一个 Sisyphus-Junior,配上对应的模型 + fallback 链 + 默认参数,然后跑你给的 prompt。

6.2.2 设计原则

  • 频谱化:从 quick / unspecified-low(极便宜) 到 unspecified-high(极贵);
  • 风格化:visual-engineering 偏 Gemini;ultrabrain / deep 偏 GPT-5.4;artistry 偏 Gemini;writing 偏 Kimi / Gemini Flash;
  • 类别即温度 / effort 偏好:例如 ultrabrain 默认 xhigh,artistry 偏高温度。

6.3 自定义 Category

在你的 oh-my-openagent.json / oh-my-opencode.json 里直接 override 或新建。完整 schema:

字段 类型 描述
description string 类别描述,会显示在 task prompt 里
model string 模型 ID(如 anthropic/claude-opus-4-7
variant string 变体(maxxhigh 等)
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 标记不稳定,强制后台执行以便监控

6.3.1 三个实用配置示例

{
  "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 }
    }
  }
}

6.3.2 Sisyphus-Junior 是它的执行人

记住:所有 Category 都是通过 Sisyphus-Junior 执行的。Junior 的核心限制:

  • 不能再 task() / call_omo_agent()(避免无限委派);
  • 必须通过 lsp_diagnostics 验证才能完成;
  • 不能改计划文件。

6.4 7 个内置 Skill

Skill 比 Category 更"模板化":每个 Skill 是一个 SKILL.md 文件,包含:

  • frontmatter:name / description / mcp 依赖;
  • markdown 主体:被注入到 Agent 系统 prompt 里的"专业知识"。

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 套话

6.4.1 git-master 核心法则

git-master 是 OmO 体验里最显眼的 Skill 之一。三条核心原则:

多次提交是默认行为

3+ 个文件 → 必须 ≥ 2 次提交
5+ 个文件 → 必须 ≥ 3 次提交
10+ 个文件 → 必须 ≥ 5 次提交

自动检测风格

  • 分析最近 30 个 commit,判断语言(中/英文)和风格(语义化 / 普通 / 简短);
  • 自动匹配你这个仓库的提交习惯。

用法

/git-master commit these changes
/git-master rebase onto main
/git-master who wrote this authentication code?

它会按你的仓库风格把"这个 PR 的 17 处改动"切成 5 个原子化提交,依赖关系正确,并且 Commit message 看起来像你自己写的。

6.4.2 frontend-ui-ux 设计哲学

这个 Skill 把"UI/UX"提升成一个完整的设计师人格:

  • 设计流程:Purpose → Tone → Constraints → Differentiation;
  • 审美方向:选一个极致——brutalist / maximalist / retro-futuristic / luxury / playful;
  • 字体:用有特色的字体,避开 Inter / Roboto / Arial;
  • 配色:和谐配色 + 锋利点缀,避免"紫白搭"AI slop;
  • 动效:高冲击错位呈现、滚动触发、出乎意料的 hover;
  • 反模式:通用字体、可预测布局、模板化设计。

6.4.3 浏览器自动化两选一

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 生态下更灵活。


6.5 自定义 Skill:写一个 SKILL.md

把这个文件丢到 .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 时按以下优先级(高 → 低)扫描:

  1. .opencode/skills/*/SKILL.md(项目 / OpenCode 原生)
  2. ~/.config/opencode/skills/*/SKILL.md(用户 / OpenCode 原生)
  3. .claude/skills/*/SKILL.md(项目 / Claude Code 兼容)
  4. .agents/skills/*/SKILL.md(项目 / Agents 约定)
  5. ~/.agents/skills/*/SKILL.md(用户 / Agents 约定)

同名 Skill 高优先级覆盖低优先级。如果你想关闭内置 Skill:

{ "disabled_skills": ["playwright"] }

6.6 Skill 内嵌 MCP 与 OAuth

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);
  • 动态客户端注册:支持 RFC 7591(clientId 可选);
  • PKCE:所有流必须;
  • Resource Indicators:根据 MCP URL 自动按 RFC 8707 生成;
  • Token 存储~/.config/opencode/mcp-oauth.json(chmod 0600);
  • 自动刷新:401 自动刷新;403 + WWW-Authenticate 走 step-up authorization;
  • 动态端口:OAuth 回调用自动端口。

预先认证:

bunx oh-my-opencode mcp oauth login <server-name> --server-url https://api.example.com

6.7 Category + Skill:3 个王牌组合

6.7.1 The Designer:UI 实现专家

category: visual-engineering
load_skills: ["frontend-ui-ux", "playwright"]

效果:用 Gemini 3.1 Pro 写带美感的 UI,再用 Playwright 直接打开浏览器验证渲染效果——闭环。

6.7.2 The Architect:设计评审

category: ultrabrain
load_skills: []

效果:用 GPT-5.4 xhigh 推理做架构评审,纯思考、不做无关动作。

6.7.3 The Maintainer:快修 + 干净提交

category: quick
load_skills: ["git-master"]

效果:用 GPT-5.4 Mini 快速修小问题,git-master 自动按风格切成多个原子提交。

6.7.4 The Validator:QA 我的工作

review-work Skill 本身就是组合策略——它在被触发时一次性并行启动 5 个后台子 Agent:

  • 目标验证 Agent:检查是否实现了原始需求;
  • 代码质量 Agent:lint / 风格 / 复杂度;
  • 安全 Agent:审查潜在漏洞;
  • 人工 QA Agent:实际跑、点、验;
  • 上下文挖掘 Agent:检查相关文件 / 测试是否被同步更新。

5 个全 PASS 才算通过。这是 OmO 区别于"AI 写完就吹自己写完了"的硬手段。


6.8 task 委派的 7 要素 prompt

任何时候你想给子 Agent 派任务,都建议照下面 7 个要素写——清晰具体的 prompt 是组合发挥的前提:

  1. TASK:单一目标;
  2. EXPECTED OUTCOME:交付物是什么;
  3. REQUIRED SKILLS:要 load_skills 哪些;
  4. REQUIRED TOOLS:必须用的工具白名单;
  5. MUST DO:硬性要求;
  6. MUST NOT DO:硬性禁止;
  7. CONTEXT:相关文件路径、模式、参考资料。

坏例子

"Fix this"

好例子

TASK:修复 LoginButton.tsx 在移动端的布局崩坏。
CONTEXTsrc/components/LoginButton.tsx,使用 Tailwind CSS。
MUST DO:在 md: 断点改 flex-direction。
MUST NOT DO:不要改桌面端布局。
EXPECTED:移动端按钮垂直排列。


6.9 Category-Skill 工作机制小结

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 级精度的开发者。