Skip to content
NoteGarden
Go back

从单兵到军团:oh-my-openagent 构建你的AI开发流水线

功能介绍

oh-my-openagent 是一个强大的 AI 代理编排系统,为 OpenCode 提供了 11 个专业化 AI 代理、分类系统、技能系统、命令系统以及丰富的钩子和 MCP 集成。

核心代理(Core Agents)

系统提供了多个具有不同专长的 AI 代理:

代理模型用途
Sisyphusclaude-opus-4-6默认编排器,负责任务规划、委派和执行
Hephaestusgpt-5.4深度工作者,端到端完成任务
Oraclegpt-5.4架构决策、代码审查、调试(只读)
Librarianminimax-m2.7多仓库分析、文档查找
Exploregrok-code-fast-1快速代码库探索和搜索
Multimodal-Lookergpt-5.4视觉内容分析(PDF、图片、图表)

规划代理(Planning Agents)

代理用途
Prometheus战略规划器,支持访谈模式,创建详细工作计划
Metis规划顾问,识别隐藏意图和潜在失败点
Momus规划审查员,验证计划的清晰度和完整性

编排代理(Orchestration Agents)

代理用途
Atlas待办列表编排器,系统化执行计划任务
Sisyphus-Junior分类生成的执行器,根据任务类别自动选择模型

分类系统(Category System)

分类系统允许根据任务类型自动选择最优的模型和配置:

分类默认模型适用场景
visual-engineeringgoogle/gemini-3.1-pro前端、UI/UX、设计、动画
ultrabrainopenai/gpt-5.4 (xhigh)深度逻辑推理、复杂架构决策
deepopenai/gpt-5.4 (medium)自主问题解决,深入理解
artistrygoogle/gemini-3.1-pro (high)创意/艺术任务
quickopenai/gpt-5.4-mini简单任务,单文件修改
writinggoogle/gemini-3-flash文档、技术写作

技能系统(Skills)

技能是注入专业知识和工具的工作流:

技能触发场景描述
git-mastercommit、rebase、“谁写的”Git 专家,提交策略、历史分析
playwright浏览器任务、测试通过 Playwright MCP 进行浏览器自动化
frontend-ui-uxUI/UX 任务设计师兼开发者,打造精美界面

内置命令

命令描述
/init-deep初始化分层 AGENTS.md 知识库
/ralph-loop启动自引用开发循环直到完成
/refactor智能重构,支持 LSP、AST-grep
/start-work从 Prometheus 计划开始执行
/handoff创建上下文摘要以便在新会话中继续工作

工具集

系统提供了丰富的工具:

钩子系统(Hooks)

钩子系统在代理生命周期的关键节点拦截和修改行为,包括:

MCP 集成

内置 MCP 服务器:

MCP描述
websearch实时网络搜索(Exa AI)
context7官方文档查询
grep_app公共 GitHub 仓库代码搜索

安装准备

前置条件

订阅服务确认

安装前需明确团队已订阅的服务,这将决定 CLI 参数配置:

安装

推荐安装方式

通过 AI Agent 自动执行安装脚本,确保环境一致性:

在 LLM Agent 会话中执行:
Install and configure oh-my-opencode by following the instructions here:
https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/refs/heads/dev/docs/guide/installation.md

手动安装命令

# 使用 Bun(推荐)
bunx oh-my-opencode install

# 或使用 Node.js
npx oh-my-opencode install

安装器将自动完成:

验证安装

# 检查版本
opencode --version

# 验证配置文件
cat ~/.config/opencode/opencode.json

# 运行诊断工具
bunx oh-my-opencode doctor

认证配置

对于需要 OAuth 的提供商,执行:

opencode auth login

按提示选择 Provider 并完成浏览器授权。注意:GitHub Copilot 的 provider 前缀必须使用 github-copilot/

模型配置策略

配置原则

系统按以下优先级解析模型:显式配置 > Provider 回退链 > 系统默认。建议遵循”角色 - 模型”匹配原则,即根据 Agent 的职责选择最合适的模型。

推荐配置方案(Copilot + MiniMax 订阅)

{
  "agents": {
    // 核心编排层
    "sisyphus": { "model": "kimi-for-coding/k2p5" },
    "hephaestus": { "model": "github-copilot/gpt-5.4" },
    "prometheus": { "model": "github-copilot/claude-sonnet-4-6" },
    "oracle": { "model": "github-copilot/gpt-5.4", "variant": "high" },
    
    // 工具层(优先使用 MiniMax 优化成本)
    "librarian": { "model": "opencode-go/minimax-m2.7" },
    "explore": { "model": "github-copilot/grok-code-fast-1" },
    
    // 轻量任务
    "sisyphus-junior": { "model": "opencode/minimax-m2.7" }
  },
  
  "categories": {
    "quick": { "model": "opencode/minimax-m2.7-highspeed" },
    "unspecified-high": { "model": "github-copilot/gpt-5.4", "variant": "xhigh" }
  }
}

成本优化建议

  1. 分层路由:高价值任务(架构设计)使用 Copilot 高端模型,低价值任务(文档检索)使用 MiniMax
  2. Variant 控制:通过 variant: medium/high/xhigh 调节推理强度,避免过度消耗
  3. 高速模式:对延迟敏感的任务使用 minimax-m2.7-highspeedgrok-code-fast-1

配置

基础配置

在项目根目录创建 oh-my-openagent.jsonc 配置文件(或通过 ~/.config/opencode/oh-my-openagent.jsonc 进行全局配置):

{
  // 自定义代理模型
  "agents": {
    "sisyphus": {
      "fallback_models": [
        "opencode/glm-5",
        { "model": "openai/gpt-5.4", "variant": "high" }
      ]
    }
  },

  // 自定义分类
  "categories": {
    "korean-writer": {
      "model": "google/gemini-3-flash",
      "temperature": 0.5,
      "prompt_append": "You are a Korean technical writer."
    }
  },

  // 浏览器自动化引擎
  "browser_automation_engine": {
    "provider": "agent-browser" // 或 "playwright"(默认)
  },

  // tmux 可视化
  "tmux": {
    "enabled": true,
    "layout": "main-vertical"
  },

  // Ralph Loop 配置
  "ralph_loop": {
    "enabled": true,
    "default_max_iterations": 100
  },

  // 模型能力配置
  "model_capabilities": {
    "enabled": true,
    "auto_refresh_on_start": true
  },

  // Claude Code 兼容性开关
  "claude_code": {
    "mcp": true,
    "commands": true,
    "skills": true,
    "agents": true,
    "hooks": true,
    "plugins": true
  },

  // 禁用的技能
  "disabled_skills": [],

  // 禁用的钩子
  "disabled_hooks": []
}

文件化 Prompt

支持从外部文件加载代理的系统提示:

{
  "agents": {
    "sisyphus": {
      "prompt": "file:///path/to/custom-prompt.md"
    },
    "oracle": {
      "prompt_append": "file:///path/to/additional-context.md"
    }
  }
}

支持 ~ 展开和相对路径。适用于:

自定义技能

.opencode/skills/ 目录下创建自定义技能:

---
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.

技能加载位置(优先级从高到低):

同名技能在高优先级位置会覆盖低优先级位置的技能。

自定义命令

.opencode/command/ 目录下创建自定义命令。命令加载位置:

任务系统

在配置中启用任务系统:

{
  "experimental": {
    "task_system": true
  }
}

任务存储在 .sisyphus/tasks/ 目录下,支持依赖关系和并行执行。

任务 Schema:

interface Task {
  id: string; // T-{uuid}
  subject: string; // 命令式:"运行测试"
  description: string;
  status: "pending" | "in_progress" | "completed" | "deleted";
  activeForm?: string; // 进行时:"正在运行测试"
  blocks: string[]; // 被此任务阻塞的任务
  blockedBy: string[]; // 阻塞此任务的任务
  owner?: string; // 代理名称
  metadata?: Record<string, unknown>;
  threadID: string; // 会话 ID(自动设置)
}

依赖与并行执行:

[构建前端]    ──┐
                ├──→ [集成测试] ──→ [部署]
[构建后端]    ──┘

与 TodoWrite 的区别:

特性TodoWrite任务系统
存储会话内存文件系统
持久化关闭后丢失重启后保留
依赖完整支持(blockedBy
并行执行手动自动优化

运维与监控

配置验证

# 检查模型可用性
opencode models | grep -E "(copilot|minimax)"

# 测试特定代理
opencode /ask "测试查询" --agent librarian

用量监控

# 查看会话统计
opencode /stats

# 分析模型调用分布
cat ~/.config/opencode/sessions/*.json | grep -o '"model":"[^"]*"' | sort | uniq -c

模型能力刷新

更新本地模型能力缓存:

bunx oh-my-opencode refresh-model-capabilities

配置启动时自动刷新:

{
  "model_capabilities": {
    "enabled": true,
    "auto_refresh_on_start": true,
    "refresh_timeout_ms": 5000,
    "source_url": "https://models.dev/api.json"
  }
}

常见问题排查

使用示例

调用特定代理

Ask @oracle to review this design and propose an architecture
Ask @librarian how this is implemented
Ask @explore for the policy on this feature

使用分类委派任务

task({
  category: "visual-engineering",
  prompt: "Add a responsive chart component to the dashboard page",
});

后台运行代理

task({
  subagent_type: "explore",
  load_skills: [],
  prompt: "Find auth implementations",
  run_in_background: true,
});

// 继续工作...
// 系统会在完成时通知

// 获取结果
background_output(task_id: "bg_abc123");

启用 tmux 可视化后,后台代理会在独立的 tmux 窗格中运行,可以实时观察多个代理的工作状态。

组合分类和技能

// UI 实现者
task({
  category: "visual-engineering",
  load_skills: ["frontend-ui-ux", "playwright"],
  prompt: "Implement the new landing page design",
});

// 架构师
task({
  category: "ultrabrain",
  load_skills: [],
  prompt: "Analyze the current architecture and propose improvements",
});

// 维护者
task({
  category: "quick",
  load_skills: ["git-master"],
  prompt: "Fix the typo in the login form",
});

委派任务 Prompt 指南

委派任务时,清晰且具体的提示至关重要。应包含以下 7 个要素:

  1. TASK:需要做什么?(单一目标)
  2. EXPECTED OUTCOME:交付物是什么?
  3. REQUIRED SKILLS:应加载哪些技能?
  4. REQUIRED TOOLS:必须使用哪些工具?(白名单)
  5. MUST DO:必须做什么(约束条件)
  6. MUST NOT DO:绝不能做什么
  7. CONTEXT:文件路径、现有模式、参考资料

好的示例

TASK: 修复 LoginButton.tsx 中移动端布局断裂问题
CONTEXT: src/components/LoginButton.tsx,使用 Tailwind CSS
MUST DO: 在 md: 断点处修改 flex-direction
MUST NOT DO: 修改现有桌面端布局
EXPECTED: 按钮在移动端垂直对齐

使用命令

/init-deep                          # 初始化知识库
/ralph-loop "Build a REST API"      # 启动开发循环
/refactor src/auth                  # 智能重构
/start-work                         # 从计划开始执行
/handoff                            # 创建交接文档

最佳实践总结

  1. 最小权限配置:仅启用团队实际使用的 Agent 和模型,减少攻击面
  2. 配置版本管理:将 opencode.jsonoh-my-openagent.jsonc 纳入 Git 管理,确保环境一致性
  3. 渐进式优化:先使用默认配置上线,再根据实际用量数据微调模型路由
  4. 文档化决策:记录每个 Agent 的模型选择理由,便于后续审计和交接
  5. 利用回退链:为关键代理配置合理的回退模型链,确保服务高可用
  6. 善用钩子:利用内置钩子实现自动上下文注入、错误恢复和质量检查

总结

oh-my-openagent 通过灵活的模型路由机制和细粒度的 Agent 配置,为团队提供了构建高效、可控、成本优化的 AI 开发工作流的能力。作为架构工程师,建议在生产环境中采用”核心任务用高端模型、辅助任务用性价比模型”的分层策略,并建立持续的用量监控机制。随着团队需求演进,可进一步探索多账号负载均衡、本地缓存加速等进阶特性,持续优化智能体系统的整体效能。


Share this post on:

Next Post
Andrej Karpathy — AGI 仍需十年(精校版)