Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

oh-my-opencode-slim:轻量级 Agent 编排方案

适合读者: 个人开发者, 效率追求者, 预算敏感型用户, 想要快速上手 Agent 编排的新手

本文介绍 oh-my-opencode-slim 的轻量级 Agent 编排方案,帮助你理解其 Hub-and-Spoke 架构、关键特性以及与 oh-my-openagent 的对比选型策略。

背景

随着 Agent 编排概念的普及,社区出现了两种发展路径:一是 oh-my-openagent(OMO)这样功能完备的全能框架,二是 oh-my-opencode-slim 这样追求轻量高效的替代方案。

slim 由 alvinunreal 开发(6.5K⭐),定位是“预算敏感的轻量级 OpenCode 增强插件“。与 OMO 的“全都要“理念不同,slim 选择了一条截然不同的路——用预设驱动配置降低入门门槛,用 $30 Preset 控制使用成本,用 Hub-and-Spoke V2 架构简化 Agent 协作。

设计理念:简单即高效

slim 的核心设计原则可以概括为三个词:开箱即用预算可控够用就好

Hub-and-Spoke V2

slim 采用 Hub-and-Spoke(轮毂-辐条)V2 架构,所有 Agent 围绕一个中心协调器工作:

flowchart TB
    subgraph Preset["Preset 驱动层"]
        P1[OpenAI Preset<br/>GPT-4o + GPT-4o-mini] --- P2[OpenCode Go Preset<br/>自定义 Provider]
    end

    subgraph Hub["Hub-and-Spoke V2 编排层"]
        direction TB
        S(Sisyphus<br/>协调器) --> E[Explorer<br/>代码探索]
        S --> C[Coder<br/>代码编写]
        S --> R[Reviewer<br/>代码审查]
        S --> D[Debugger<br/>调试诊断]
    end

    subgraph BG["后台 Agent 层"]
        direction LR
        CO[Companion<br/>伴生监控] --- RF[Reflect<br/>反思总结]
    end

    subgraph Tool["基础能力层"]
        direction LR
        LS[LazySkills<br/>按需加载] --- CT[Council<br/>多模型共识] --- WT[Worktrees<br/>隔离执行]
    end

    Preset --> S
    CO -.->|session:tick 驱动| S
    RF -.->|任务后回顾| S
    S --> LS
    S --> CT
    S --> WT

    style S fill:#4A90D9,color:#fff
    style E fill:#4A90D9,color:#fff
    style C fill:#4A90D9,color:#fff
    style R fill:#4A90D9,color:#fff
    style D fill:#4A90D9,color:#fff
    style CO fill:#50C878,color:#fff
    style RF fill:#50C878,color:#fff
    style P1 fill:#FF9F43,color:#fff
    style P2 fill:#FF9F43,color:#fff
    style LS fill:#A66CFF,color:#fff
    style CT fill:#A66CFF,color:#fff
    style WT fill:#A66CFF,color:#fff

7 个 Agent 的角色分工明确:

Agent角色职责
Sisyphus(协调器)中心轮毂任务分配、结果汇总、全局状态管理
Explorer探索者代码搜索、模式发现、代码库理解
Coder实现者代码编写、修改、重构
Reviewer审查者代码审查、质量检查、问题诊断
Debugger调试者Bug 定位、根因分析、修复验证
Companion伴生 Agent后台持续运行、监控文件变化、自动执行任务
Reflect Agent反思 Agent回顾执行过程、提出改进建议、自我修正

这种架构的优点是:Agent 间通信路径短(所有 Agent 都通过中心协调器交互),协作复杂度随 Agent 数量线性增长(而非指数级),适合中小规模的编排场景。

预设驱动配置

slim 将配置复杂度封装为两个预设(Preset),用户只需要选择预设,无需逐项配置 Agent 参数:

预设目标模型成本上限适合场景
OpenAI PresetGPT-4o / GPT-4o-mini$30需要最强模型能力,预算有上限的个人开发
OpenCode Go Preset通过 OpenCode Provider 配置$30使用其他模型供应商(Claude、国产模型等)

每个预设内置了:

  • Agent 角色到模型的映射(哪些 Agent 用强模型,哪些用轻量模型)
  • Token 预算分配策略(按 Agent 类型设定上限)
  • 重试和超时策略(失败自动重试、超时切换备用模型)
  • Skill 加载策略(LazySkills 按需加载)

用户只需要在 opencode.json 中引入 Preset 即可:

{
  "plugins": [
    {
      "name": "oh-my-opencode-slim",
      "preset": "openai" // 或 "opencode-go"
    }
  ]
}

$30 Preset:预算即架构

slim 最独特的设计是 $30 Preset——一个硬性的成本上限约束。这不是一个功能限制,而是一种架构选择。slim 的设计者认为,对个人开发者来说,每月 $30 是一个合理的 AI 编码工具预算。这个上限倒逼了 slim 在以下方面的优化:

  • Token 预算按 Agent 类型差异化分配:Explorer 用轻量模型省钱,Coder 用强模型保证质量
  • LazySkills:只在实际用到某个 Skill 时才加载其指令,避免上下文浪费
  • 智能降级:某个模型达到预算上限后自动切换到备用模型,不中断工作流

关键特性

Background Agents(后台 Agent)

slim 支持在用户不主动交互时,Agent 在后台持续运行。例如:

  • 你提交代码后,后台 Agent 自动运行测试并报告结果
  • 你在写文档时,后台 Agent 自动检查当前分支的代码质量
  • 你处理 A 任务时,后台 Agent 预加载 B 任务的上下文

与 OMO 的区别:OMO 的 Background Agent 需要通过 Ultrawork 或自定义工作流配置,slim 的 Background Agent 是内置特性,启用 Preset 后自动可用。

Companion Mode(伴生模式)

Companion 是 slim 最具特色的 Agent 角色之一。它不同于传统的“执行任务→返回结果“模式,而是:

  1. 长期驻留:在会话整个生命周期内持续存在
  2. 主动观察:监控文件变化、命令输出、Agent 行为模式
  3. 上下文记忆:记住之前的决策和偏好,在新任务中复用
  4. 低干扰介入:仅在关键节点触发提醒,不过度打断工作流

Companion 适合以下场景:

  • 代码审查时,Companion 自动跟踪哪些文件被修改了
  • 重构时,Companion 记住你之前的命名约定
  • 调试时,Companion 记录你尝试过的方案和结果

Deepwork(深度工作模式)

Deepwork 在 slim 中指「无干扰的长时间专注执行」。Agent 进入 Deepwork 模式后:

  • 关闭不必要的工具调用(MCP、文件读取等)
  • 暂缓后台 Agent 的次要通知
  • 聚焦单一目标直到完成,不主动切换上下文
  • 在达到预设 Token 预算时自动停止并生成摘要

Reflect(反思机制)

slim 的 Reflect Agent 在每个任务阶段结束时自动回顾:

  1. 行为回顾:刚才的执行过程中,哪些决策是正确的?哪些是有问题的?
  2. 质量自评:输出结果的质量是否符合预期?是否有遗漏?
  3. 改进建议:下次遇到类似任务,应该怎么做更好?
  4. 模式积累:将有效的模式加入 Companion 的记忆,作为未来任务的参考

Reflect 的输出不打断主流程——它写入一个独立的日志,用户可以随时查看,也可以在需要时让 Reflect 主动提出修正建议。

Worktrees 集成

slim 原生支持 git worktree(工作树),为并行任务提供文件系统级的隔离:

  • 每个 Agent 在自己的 worktree 中独立工作,互不干扰
  • 任务完成后,PR 级别的变更合并只需要比较两个 worktree 的差异
  • 避免多个 Agent 同时修改同一文件的冲突

LazySkills

传统 Skill 系统在会话启动时加载所有配置的 Skill,即使当前任务用不到。slim 的 LazySkills 机制改变了这一点:

  • Skill 只在首次被调用时加载
  • 加载后的 Skill 按使用频率缓存(高频 Skill 保持加载,低频 Skill 自动卸载)
  • 上下文窗口压力大幅降低(实测约减少 30-40%)

Council(多模型共识)

slim 的 Council 机制允许多个不同模型的 Agent 对同一问题给出判断,通过投票或加权评分达成共识:

# Council 配置示例
council:
  enabled: true
  members:
    - model: gpt-4o
      weight: 1.0
    - model: claude-3-5-sonnet
      weight: 1.0
    - model: gemini-pro
      weight: 0.5
  consensus: majority  # majority | weighted | unanimous
  apply_to: [code_review, architecture_decision]

Council 的生产力价值在于:对于高风险决策(架构选型、安全审计),多模型交叉验证比单模型更可靠。对于日常编码任务,Council 默认关闭以节省成本。

与 oh-my-openagent 对比

这是一份更全面的对比,覆盖两个项目的核心差异:

维度oh-my-openagent (OMO)oh-my-opencode-slim
架构三层(规划→编排→执行)Hub-and-Spoke V2(中心辐射)
Agent 数量11(Sisyphus, Atlas, Atlas-Turbo 等)7(Sisyphus, Explorer, Coder, Reviewer, Debugger, Companion, Reflect)
配置复杂度中等偏高(需理解 Category、模型路由等)低(预设驱动,两行配置可用)
工作流模式Ultrawork, Prometheus, Team Mode, 派生, 自定义Hub-and-Spoke 协作,Background Agents,Deepwork
成本控制手动配置 Token 预算内置 $30 Preset
Plugin 扩展60+ Hook 点,完整的 Plugin API有限扩展点,聚焦核心场景
多模型Category 路由 + 模型降级链Council 多模型共识(可选)
Skill标准 Skill 系统LazySkills(按需加载)
并行协作Team Mode(同一进程多 Agent)Worktrees 隔离(文件系统级)
ACP Agent需额外配置内置
背景执行通过 Ultrawork/自定工作流内置 Background Agents
学习曲线1-3 天入门30 分钟入门
社区64.8K⭐6.5K⭐
GitHubcode-yeongyu/oh-my-openagentalvinunreal/oh-my-opencode-slim

何时选哪个

你的场景推荐选择理由
个人开发者,想体验 Agent 编排slim5 分钟配置完成,$30 预算即用
小团队协作开发slimBackground Agents + Companion 足够日常使用
需要完整的 CI/CD 工作流OMOUltrawork + Team Mode + 派生模式全覆盖
大型项目跨模块重构OMOPrometheus 规划 + Team Mode 并行 + 派生模式分工
预算敏感,但需要编排能力slim$30 Preset 内置成本控制
需要 60+ Hook 点扩展OMO完整的 Plugin API 生态
想在多种模型间智能路由OMOCategory 路由 + 模型降级链更成熟
需要多模型交叉验证slimCouncil 机制轻量可用
希望 Agent 后台持续运行slimBackground Agents + Companion 内置支持

最佳实践

快速入门

  1. 安装 slim

    # 通过 OpenCode 插件安装
    opencode plugin install oh-my-opencode-slim
    
  2. 选择 Preset

    {
      "plugins": [
        {
          "name": "oh-my-opencode-slim",
          "preset": "openai"
        }
      ]
    }
    
  3. 启动一次协作:在 OpenCode TUI 中直接描述需求,slim 自动按照 Hub-and-Spoke 模式调度 Agent 完成。

与 OMO 共存配置

slim 和 OMO 可以安装在同一个 opencode.json 中,但一次只能启用一个:

{
  // 简单项目使用 slim
  "plugins": [
    {
      "name": "oh-my-opencode-slim",
      "preset": "opencode-go"
    }
  ],
  // 注释掉的 OMO 配置,复杂项目时启用
  // "plugins": [
  //   "oh-my-openagent"
  // ]
}

切换时只需要注释/取消注释插件配置,不需要卸载。slim 和 OMO 的运行时各自独立,不会冲突。

节省成本的配置建议

  • 启用 Council 仅用于高风险决策(架构评审、安全审计),日常任务关闭以节省 Token
  • 合理使用 LazySkills:只安装你真正需要的 Skill,避免加载冗余 Skill 影响上下文
  • 调整 Token 预算:如果 $30 不够用,可以在 Preset 中调整上限

小结

oh-my-opencode-slim 提供了一条与 oh-my-openagent 截然不同的 Agent 编排路径——用预设降低复杂度,用 $30 Preset 控制成本,用 Hub-and-Spoke 架构简化协作。它不是 OMO 的替代品,而是互补选择:简单项目用 slim 快速启动,复杂项目用 OMO 全量编排。

对于还在观望 Agent 编排的个人开发者和小团队,slim 的轻量特性大幅降低了尝试门槛。对于已经使用 OMO 的团队,slim 可以作为简单任务场景的备选,形成「重轻搭配」的工具矩阵。

关联章节