---
url: /blog/qxq9fno9/index.md
description: >-
  用opencode也一两个月了，眼看着oh-my-opencode越发完善，很多设计理念都让我感到十分精妙，让最合适的模型去做最合适的agent，让每个agent配置对应不同的任务，各司其职的感觉不仅让我想起电台头的歌曲
  Everythin…
---
用opencode也一两个月了，眼看着oh-my-opencode越发完善，很多设计理念都让我感到十分精妙， **让最合适的模型去做最合适的agent，让每个agent配置对应不同的任务** ，各司其职的感觉不仅让我想起电台头的歌曲 *Everything In Its Right Place* （虽然歌名和实际表达的意思正好相反）。\
由于oh-my-opencode更新很频繁，github上readme很多时候更新不及时，也不够详细，这里就简单介绍一下最新版的agents集群架构。

***

简单来说就是oh-my-opencode通过把写代码，甚至是任何可以AI操作的电脑任务拆解成几个部分：规划、查阅、执行，具体的agent带着prompt、skills等上下文各司其职，团队分工合作完成复杂任务，多说无益我们看这个简化版的架构图：

[![image](./assets/新年来分享我的oh-my-opencode配置和学习心得%20-%20开发调优/e9c9c524b9621464f5eee65a1c5ed975180d1e14_2_690x424.png)](https://cdn3.linux.do/original/4X/e/9/c/e9c9c524b9621464f5eee65a1c5ed975180d1e14.png "image")

我们大致可以拆成四个部分来看这张图：

a.**编排器与调度器**

1. **Sisyphus** （主控 & 总工程师）

* 西西弗斯主agent，绝大多数时候都是和用户对话的agent和所有任务的入口
* 总规划编排调度，可以调用其他subagent，必要时还可以临时创建特定任务的agent
* 非常简单的任务也会自己直接阅读/写代码，有时其他agent职责没有覆盖/完成的也会自己上手

1. **Atlas** （调度器 & 计划执行器）

* 阅读Sisyphus或者Prometheus的 **plan** ，逐条执行 **ToDo**
* 主要功能是调用其他 **subagent** ，分配具体任务
* 简单问题也会自己直接执行读写文件

b.**计划与验证**

1. **Prometheus** （战略规划师）

* 生成 **plan** 给Atlas，一般由Sisyphus调用，如果用户对任务有详细的认知和描述可以手动切换直接与Prometheus对话，这样会更精确执行用户的目标
* 可能会询问用户问题来澄清需求

1. **Metis** （预分析规划顾问）

* Prometheus的分析顾问，制定 **plan** 之前的风险分析和方案探索
* 挖隐含需求、补上下文、避免过度设计

1. **Momus** （战略审查师）

* 作为Prometheus的审稿人对 **plan** 审查与结果验证

c.**检索与顾问**

1. **Oracle** （架构/调试顾问）

* 当其他agent（Atlas/Sisyphus等）有疑问的时候调用Oracle解决局部难点
* 一般是解释代码给出建议，做头脑风暴、审阅

1. **Librarian** （检索专家）

* grep文档、API、README、GitHub代码
* 当其他agent需要外部信息的时候调用它

1. **Explore** （代码库探索）

* 做结构化的语义grep，告诉其它agent某段逻辑、风格
* 当其他agent需要本地文档信息的时候调用它

1. **multimodal‑looker** （多模态分析师）

* 查看PDF、图片、截图等内容

d.**执行器**

1. **Hephaestus** （长周期执行器）

* 利用codex系列长期工作的特性执行那些需要几十分钟起步的任务
* 循环跑读、写代码、运行、检查结果的循环
* 由Sisyphus或Atlas调用

1. **Sisyphus‑Junior** （单任务执行器）

* 由用户创建或者Sisyphus临时生成的特定任务执行器
* 专注于某一种任务的执行，可以读写代码
* 用户可以手动在categories字段创建（见下文的json配置）

\*注：除了上面两个，Sisyphus和Atlas本身也可以读写文件，任务简单的时候也能直接修改代码，在早期版本中，Sisyphus会倾向于自己修改代码或者调用opencode的build agent修改代码，现在更加完善了

看完上面的每个agent分析，是不是发觉这个agents集群是一个精妙的系统，agent之间可以互相调用，可以返回各种信息，需要时还可以创建新的agent新的skill和其他约束最终高质量的交付。就这种各司其职的，让每个agent和模型做最适合自己的事情就像是拆解了一台精妙仪器一样。\
在下一节的jsonc代码里我会列出每个agent最适合的模型

***

佬友佬友，你讲了这么多，我似懂非懂了，那有没有一键使用的模板呢

有的，兄弟有的

理解了上面的原理后，下面这份模板你就可以拿走改改变成最适合自己的了\
首先在你的机器上找到`.config/opencode` 路径（win上是 `%USERPROFILE%\.config\opencode` ），安装并运行oh-my-opencode（如果没有安装可以在opencode里的build模式里直接给AI说我要安装oh-my-opencode，把github链接甩过去他就会安装了）之后就会有一个 `oh-my-opencode.json` 文件，我们可以把这个json改成jsonc文件（这样兼容性更好，支持批注和更多语法），然后按照我下面的参考进行配置。

我自己在用的配置如下，其中fallback链是结合代码和作者的推荐给出的推荐模型顺序，优先选择上面靠前的模型，意味着这个模型更适合这个任务，当然没有相关模型的订阅也可以顺次换成其他推荐的模型。写的模型是我正在用的，因为我没有官方的claude订阅（用的第三方API），所以用GPT代替了一部分claude模型（OpenAI订阅真的量大管饱啊），你们也可以根据自己的订阅来切换不同的模型。

```json
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",

  //2026-02-28
  //"disabled_agents": ["oracle", "multimodal-looker"],//来禁用某个特定代理
  "runtime_fallback": {
    "enabled": true,
    "retry_on_errors": [400, 429, 500, 503, 529],
    "max_fallback_attempts": 3,
    "cooldown_seconds": 60, // 回退冷却时间，防止短时间反复尝试已故障的模型
    "timeout_seconds": 60, // 单个请求超时时间（秒），超过则视为失败并触发回退，默认30
    "notify_on_fallback": true
  },
  "agents": {
    // ======================
    // 1. 编排规划与验证系列
    // ======================

    "sisyphus": {
      // 主编排器：委托任务编排分配、TODO、后台并行、动态组合技能，调用subagent
      // fallback：claude-opus-4-6 → kimi-k2.5 → glm-4.7 → gpt-5.3-codex → gemini-3-pro
      "model": "claude/claude-opus-4-6",
      "temperature": 0.1,
      "fallback_models": [
        "kimi-for-coding/k2p5",
        "zai-coding-plan/glm-4.7",
        "openai/gpt-5.3-codex",
        "google/gemini-3-pro-preview"
      ]
    },

    "atlas": {
      // 高级编排器：全生命周期管理，任务路由，基于skills调度，全局会话级别的编排器，一般由内部逻辑/hook唤起
      // fallback：claude-sonnet-4-5 → kimi-k2.5 → gpt-5.2 → gemini-3-pro
      "model": "openai/gpt-5.2",
      "temperature": 0.1,
      "fallback_models": [
        "anthropic/claude-sonnet-4-5",
        "kimi-for-coding/k2p5",
        "google/gemini-3-pro-preview"
      ]
    },

    "prometheus": {
      // 战略规划：澄清需求、验证计划、复杂任务分解，推荐内部plan而不是和用户直接交互
      // fallback：claude-opus-4-6 → kimi-k2.5 → gpt-5.2
      "model": "claude/claude-opus-4-6",
      "temperature": 0.1,
      "fallback_models": ["kimi-for-coding/k2p5", "openai/gpt-5.2"]
    },

    "metis": {
      // 预分析规划顾问：正式plan/执行前进行问题理解、风险与上下文分析，温度略高，探索更多方案
      // fallback：claude-opus-4-6 → kimi-k2.5 → gpt-5.2-high
      "model": "anthropic/claude-opus-4-6",
      "temperature": 0.3,
      "variant": "max",
      "fallback_models": ["kimi-for-coding/k2p5", "openai/gpt-5.2"]
    },

    "momus": {
      // 计划与结果验证：对计划/方案进行合理性检查和评审
      // gpt-5.2 → claude-opus-4-6 → gemini-3-pro
      "model": "openai/gpt-5.2",
      "temperature": 0.1,
      "variant": "medium",
      "fallback_models": [
        "anthropic/claude-opus-4-6",
        "google/gemini-3-pro-preview"
      ]
    },

    // ======================
    // 2. 执行系
    // ======================

    "hephaestus": {
      // 深度自主工作专用，长周期，深度任务
      // 只推荐OpenAI codex模型，如果没有codex则不会使用这个agent
      "model": "openai/gpt-5.3-codex",
      "temperature": 0.1,
      "fallback_models": ["openai/gpt-5.2-codex"]
    },

    // ======================
    // 3. 顾问与检索系
    // ======================

    "oracle": {
      // 咨询/调试/架构专家：代码审查、复杂问题拆解，交互式问答
      // fallback：gpt-5.2-high → gemini-3-pro → claude-opus-4-6
      "model": "openai/gpt-5.2",
      "temperature": 0.1,
      "variant": "high",
      "fallback_models": [
        "google/gemini-3-pro-preview",
        "anthropic/claude-opus-4-6"
      ]
    },

    "librarian": {
      // 文档/仓库检索专家：文档/README/API 手册/GitHub 仓库搜索，大量输入，需要快速便宜长上下文的模型
      // fallback：glm-4.7 → gpt-5.3-codex-spark → gemini-3-flash
      "model": "zai-coding-plan/glm-4.7",
      "fallback_models": [
        "zai-coding-plan/glm-4.7",
        "openai/gpt-5.3-codex-spark",
        "gemini/gemini-3-flash-preview"
      ]
    },

    "explore": {
      // 快速代码库探索:grep（上下文感知搜索）
      // fallback：gpt-5.3-codex-spark → grok-code-fast-1 → claude-haiku-4-5 → gpt-5-mini → gpt-5-nano
      "model": "openai/gpt-5.3-codex-spark",
      "fallback_models": [
        "github-copilot/grok-code-fast-1",
        "anthropic/claude-haiku-4-5",
        "openai/gpt-5-mini",
        "openai/gpt-5-nano"
      ]
    },

    "multimodal-looker": {
      // 多模态分析：PDF/图片分析，多模态好的模型
      // fallback：gemini-3-flash → kimi-k2.5
      "model": "gemini/gemini-3-pro-preview",
      "fallback_models": [
        "gemini/gemini-3-flash-preview",
        "kimi-for-coding/k2p5"
      ]
    }
  },
  "categories": {
    // 快速小活：haiku / gemini-flash / nano
    "quick": { "model": "openai/gpt-5.3-codex-spark", "temperature": 0.1 },

    // 深度执行：codex / opus / gemini-pro
    "deep": {
      "model": "openai/gpt-5.3-codex",
      "variant": "medium",
      "temperature": 0.1
    },

    // 超大脑：codex xhigh（更激进）
    "ultrabrain": {
      "model": "openai/gpt-5.3-codex",
      "variant": "xhigh",
      "temperature": 0.1
    },

    // 视觉/前端/GUI：gemini-pro-high / glm-5 / opus
    "visual-engineering": {
      "model": "google/gemini-3-pro-preview",
      "temperature": 0.1
    },

    // 文本/写作：glm4.7 / k2.5 / gemini-flash / sonnet
    "writing": { "model": "gemini/gemini-3-pro-preview", "temperature": 0.2 },

    // 未指定低/高档位
    "unspecified-low": {
      "model": "claude/claude-sonnet-4-5",
      "temperature": 0.1
    },
    "unspecified-high": {
      "model": "claude/claude-opus-4-6",
      "variant": "max",
      "temperature": 0.1
    }
  }
}
```

其中categories部分也是看自己的需求添加即可\
上面模型前面的供应商是 `opencode.jsonc` 里的provider，模型是模型的调用名字，假如说我在全局opencode配置里加了

```json
"new-api": {
      "npm": "@ai-sdk/openai",
      "name": "New API (OpenAI Responses)",
      "options": {
        "baseURL": "https://newapi.example.com/v1",
        "apiKey": "sk-123456789"
      },
      "models": {
        "gpt-5.2": { "name": "gpt-5.2 (New API)" },
        "gpt-5.3-codex": { "name": "gpt-5.3 codex (New API)" }
      }
    },
```

那我在 `oh-my-opencode.jsonc` 里就写 `new-api/gpt-5.3-codex` 即可\
大部分模型都是可以按照fallback列表配置的，有推荐列表前面的模型对应的订阅就优先选择它，后面的也不是不能用，总体上丰俭由人，根据自己手里的渠道选择\
值得注意的是，谷歌宣布从3月10号下架Gemini 3.0 Pro，建议替换成3.1 Pro\
一些模型选择的思路：
codex是那种说什么就做什么的模型，绝不多做，也不发挥主观能动性给你代码优化，而opus就更喜欢帮你优化代码，有更多主观能动性（GPT 5.2/5.3 codex对比opus4.5/4.6），所以codex就更适合做写代码的，opus更适合给codex布置任务、监工。又比如codex-spark是非常快的那种，就适合做大量grep的任务，Gemini多模态明显是御三家里最好的，所以就拿来多模态这样子。还有一些思路，比如说西西弗斯和阿特拉斯用不同家的模型互补，普罗米修斯和其他审阅plan的模型也不一样这样才能集思广益。

***

2.28修改：在上面配置里添加了 [佬友加的fallback](https://linux.do/t/topic/1624433/97) 配置，具体解释：

```json
"runtime_fallback": { // 全局回退策略
    "enabled": true, // 打开回退，默认是关闭（不写的话）
    "retry_on_errors": [ // 哪些报错会回退
      400, // Bad Request（部分 provider 的临时无效请求，可重试）
      429, // Rate Limit / 频率限制 / 配额用尽（最常见触发场景）
      500, // Internal Server Error（服务器内部错误）
      503, // Service Unavailable（服务暂时不可用）
      529 // 部分提供商（如 Gemini、中转服务）的过载/临时错误
    ],
    "max_fallback_attempts": 5, // 单个请求允许的最大回退尝试次数（包含原始模型），默认为3
    "cooldown_seconds": 60, // 模型回退后进入冷却的时间（秒），防止短时间内反复尝试同一个已故障的模型
"timeout_seconds": 30, // 单个请求超时时间（秒），超过则视为失败并触发回退，默认30
    "notify_on_fallback": true // 发生模型切换时，是否弹出桌面通知告知用户（推荐开启，方便知道发生了回退）
  },
```
