
OmO Agent-Model Matching 指南用 model_profile 与模型链驾驭多模型编排【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagentOmOoh-my-openagent以 Just type mass ulw 为入口把模型选择交给一套按意图选择的机制主 Agent 的会话模型由三个内置 model profile 决定携带调优提示词预设prompt preset的模型家族各有专属提示词而委派出去的 curated agents 与 categories 则各自维护独立的回退链。本文以 docs/guide/agent-model-matching.md 为主线结合packages/omo-senpi与packages/senpi-task的源码与测试讲清楚三层模型匹配的全貌并给出可落地的omo.json覆盖写法与安全/危险覆盖对照。读完你将掌握如何用一行配置切换主模型、何时该用 pin 而非 profile、如何为稀缺的顶级模型找到价值最高的槽位以及如何在不破坏系统的前提下自定义任意类别或 Agent 的模型链。三个内置 profile按意图挑选主 Agent 模型主 Agent 的大脑由当前会话模型session model决定。OmO 最省心的选择方式是一个model profile一条按命名、按意图挑选的有序模型链named, ordered chain。会话开始时OmO 沿链逐级下探把第一个你已连接的服务商能提供的模型应用到主 Agent。所有链都定义在packages/omo-senpi/src/components/model-profile/builtin-profiles.ts每一级rung都逐一列出能提供该模型的所有服务商——因此一个只有 Copilot 订阅、只有网关gateway订阅或只有直连 API Key 的账号最终解析结果都一样不会出现模型明明在注册表里却报不可用的情况。三个内置 profile 如下链中a|b表示同一级可用的服务商并集ProfileId适用场景链Capablecapable最强通用选手不想纠结模型时的默认选择anthropic\|anthropic-api\|github-copilot\|opencode/claude-fable-5-1 (max)- 同服务商/claude-opus-5 (max)-kimi-coding\|kimi-for-coding\|moonshotai\|opencode-go/kimi-k3 (max)-zai-coding-plan\|opencode-go/glm-5.3 (max)Simple worksimple-work小且边界明确的编辑任务重速度与成本openai\|openai-codex/gpt-5.6-luna-fast (low)-deepseek/deepseek-v4-flash-anthropic\|github-copilot/claude-haiku-4-5Deep workdeep-work需要最大推理量的难题与deep类别链完全一致openai\|openai-codex\|github-copilot\|opencode/gpt-6-astra (high)- 同服务商/gpt-5.6-sol (medium)在omo.json里用单个键即可激活{ model_profile: capable }会话启动时控制台会打印形如omo-senpi: model profile capable selected anthropic/claude-fable-5-1; mid-session fallback follows senpis retry chains的提示并点名被跳过的各级。这条提示文本在packages/omo-senpi/src/components/model-profile/index.ts的noticeContent中生成被跳过的 rung 会以(skipped: ...)列出。值得记住的五条规则Pin 优先Pins win。在同一键里直接写字面量provider/model如model_profile: anthropic/claude-opus-5就精确应用该模型任何含/的值都被当作 pin。判断逻辑在resolve.tsactive.includes(/)即走 pin 分支不再查询任何 profile 表。显式模型永不被覆盖。--model标志、scoped model、恢复的会话resume以及 fork 都会保留自己的模型profile 只作用于全新会话。源码里isFreshSessionWithoutExplicitModelindex.ts要求reason为startup或new且initialModelProvenance不是cli/scoped才允许应用。不设置就是不动。没有model_profile时Senpi 自己的默认解析含recommended-models内置照常运行一切不变。会话级作用域。应用过程从不写settings.json或omo.jsonindex.ts注释明确说明走的是persistDefault: false的会话级 setter。会话中途失败时走 Senpi 的 retry chains而非 profile 链。自定义链。model_profiles.name可以新增 profile也可以整体替换同名内置 profile不做字段级合并。条目与类别链同构可引用models.catalog别名。完整键参考见 omo.json Reference。你仍可随时用/model切换、会话中途换模型——主 Agent 跟随你切换提示词保持不变。推荐档位The recommended tierOmO 只对两套配置做推荐并持续调优Capable 与 Deep work 两个 profile 正是以它们打头Claude Opus 5有 Claude Fable 5 时也可用 Fable 5。Claude 是编排提示词orchestration prompt的参考配置长嵌套 todo、委派表、连续大量工具调用都能胜任。GPT 5.6 Sol。GPT 推荐配置。它获得一份模型感知的 GPT 原生提示词model-aware GPT-native prompt面向自主、原则驱动的工作。在小型有界任务上GPT 的已知风险是过度编排over-orchestration给它一个目标而不是一份配方。低于推荐档位的模型不作为主 Agent 受支持。它们前几轮可能表现正常三次工具调用后就会崩掉。没有人会对这些模型做编排提示词的回归检查因此一次利好 Claude/GPT 的提示词改动可能无声地毁掉一个不受支持的模型——不要把它当作 bug 上报它从一开始就没打算可用。提示词救不了模型。模型有硬性的内在特征。如果某个模型天生不适合做编排再多的提示词雕琢也无法改变。OmO 的提示词已经打磨到极致做不到的模型依旧做不到。携带调优提示词预设的模型家族Harness 为每个模型家族内置了一份提示词预设prompt preset。当会话模型命中某家族时主 Agent 的提示词就会针对该模型的行为习惯塑形。当前预设集如下预设说明claude-fable-5顶级高于 Opus。对长、机制驱动的提示词遵从度最高。claude-opus-5当前最佳 Opus。可控且字面化steerable and literal。参考配置。gpt-5.6GPT-5.6 Sol 及其同族。模型感知的 GPT 原生提示词简洁原则 显式决策标准。gpt-5.5与 5.6 共享 GPT 原生提示词家族。kimi-k3最新 Kimi。指令跟随与 Claude 高度接近。预设被校准为停止过度思考、保持推进因此会有思考 token 成本。glm-5-3/glm-5-2接近 Claude在长嵌套工作流上略松散。GLM 有校准预设与一份社区好评报告但维护者尚未对嵌套 todo、委派与长上下文路径做端到端验证置信度低于 Claude 或 Kimi。deepseek-v4V4 系含 Flash 与 Pro有预设但不作为主 Agent 推荐配置。grok-4.5/grok-4.6有预设Grok 4.6 同时是unspecified-low类别的默认模型。有预设只代表提示词为该模型塑形不代表该模型被推荐作为主 Agent——推荐档位只有上文两套配置。表外的一切模型都运行在通用提示词上没有任何模型专属调优。Claude 与 GPT 的提示差异理解这一点才能明白为什么主 Agent 提示词会随模型改变形状以及为什么委派类别按家族分线。Claude对机制驱动mechanics-driven的提示词反应最佳详细清单、模板、逐步流程。规则越多遵从度越高。你可以写一份带嵌套工作流的超长提示词Claude 会一步步照做。GPT尤其 5.2对原则驱动principle-driven的提示词反应最佳简洁原则、XML 结构、显式决策标准。规则越多 矛盾面越大 漂移越严重。GPT 最适合陈述目标、让它自己摸索机制。/ulw-planskill 曾为这两种风格各写一份模型家族提示词现在统一为一层薄提示词——因此切换会话模型只换模型不换规划提示词。Curated Agents 与 Categories 各自持有独立链model profile 只挑主会话模型不做别的。每一个被委派的子任务——无论 curated agent 还是 category——都走自己的链profile 在那些路径的任一级都不会被咨询。用户设置了categories.deep.model后无论 profile 是否激活行为都完全一致。Curated Agents委派经由task工具完成。四个只读 curated agents 拥有各自的回退链硬编码于packages/senpi-task/src/agents/builtin/fallback-chains.ts。第一个你连接的服务商能提供的 rung 胜出。Agent职责首选链explore快速代码库 grep 与模式发现gpt-5.6-luna-fast(low)openai\|openai-codex/gpt-5.6-luna-fast (low)-deepseek/deepseek-v4-flash (max)-opencode-go\|bailian-coding-plan/qwen3.7-plus- 更便宜的 utility rungs -anthropic\|github-copilot/claude-haiku-4-5-openai\|openai-codex/gpt-5.4-nanolibrarian文档与 OSS 代码检索gpt-5.6-luna-fast(low)与explore相同plan-consultant/ulw-plan规划前的差距分析claude-fable-5-1(max)anthropic\|github-copilot\|opencode/claude-fable-5-1 (max)-anthropic\|github-copilot\|opencode/claude-opus-5 (max)-opencode-go\|kimi-for-coding\|moonshotai\|opencode/kimi-k3 (max)plan-reviewer对照清晰度、验证与上下文标准做一次性计划评审gpt-6-astra(xhigh)openai\|openai-codex/gpt-6-astra (xhigh)-github-copilot/gpt-6-astra (high)-openai\|openai-codex\|opencode/gpt-6-astra (high)-anthropic\|github-copilot\|opencode/claude-opus-5 (max)- 源文件中的两个更低 rung -opencode-go/glm-5.2上面省略的 utility rungs 是廉价快速模型具体清单见源文件explore链在fallback-chains.ts中包含minimax-m3、MiniMax-M3、minimax-m2.7等plan-reviewer链在回退尾部还包含google\|github-copilot\|opencode/gemini-3.1-pro (high)。它们的存在是为了当你没有订阅全部服务商时系统仍能优雅降级只要连上了付费档位系统总是优先使用它。ulw 循环的评审 agentsomo-senpi-code-reviewer、omo-senpi-qa-executor、omo-senpi-gate-reviewer没有手写链它们通过定义上的categories字段解析模型。稀缺高级模型该花在哪个槽位当只有一个高级模型受配额限制、其余模型近乎无限时按角色匹配家族。Claude 家族模型适合沟通型角色主 Agent 与plan-consultant。GPT 家族模型适合plan-reviewer以及deep/ultrabrain类别。优先低频、高杠杆角色。plan-consultant每次生成计划只贡献一轮差距分析。高精度规划每轮跑一次plan-reviewer被拒后重来。两者都是比主 Agent 便宜得多的稀有模型栖身地——主 Agent 贯穿整个工作流消耗量完全不同。避开执行密集型槽位。类别 worker、explore、librarian都是高吞吐角色通常不适合放最稀有的模型。对于稀缺的 Claude Fable 5 配额plan-consultant是默认的每 token 价值落点它在计划定稿前运行能阻止昂贵的下游返工。内置链已用max级别的 Claude Fable 5.1 打头配额紧张时把 effort 压低{ agents: { plan-consultant: { model: anthropic/claude-fable-5-1, reasoning: high } } }Categories主 Agent 委派实现工作时不挑模型名而是挑一个类别category由类别派生类别 worker一个由该类别的模型与技能配置的全新 worker 会话。链定义在packages/senpi-task/src/category/fallback-chains.ts描述与提示词追加则在其旁的packages/senpi-task/src/category/*-categories.ts。类别用途默认链architect大图系统设计只提议不实现architect consult 通道anthropic/claude-fable-5-1 (max)anthropic\|anthropic-api\|github-copilot\|opencode/claude-fable-5-1 (max)visual-engineering前端、UI/UX、CSS、动效、设计系统anthropic/claude-fable-5-1 (max)claude-fable-5-1 (max)-claude-opus-5 (max)-kimi-coding\|kimi-for-coding\|moonshotai\|opencode-go/kimi-k3 (max)ultrabrain真正困难、逻辑重的任务只给目标不给步骤openai/gpt-6-astra (max)gpt-6-astra (max)跨openai、openai-codex、github-copilot、opencode-gpt-5.6-sol (max)跨同样服务商deep3D 图形、computer use、browser use、后端、算法、多模态、复杂研究openai/gpt-6-astra (high)openai\|openai-codex\|github-copilot\|opencode/gpt-6-astra (high)- 同服务商/gpt-5.6-sol (medium)artistry非常规、创造性问题求解anthropic/claude-fable-5-1 (max)claude-fable-5-1 (max)-kimi-k3 (max)-claude-opus-5 (xhigh)quick琐碎任务单文件改动、错别字kimi-coding/kimi-for-coding-highspeedkimi-for-coding-highspeed-openai-codex/gpt-5.6-luna-fast (low)-deepseek/deepseek-v4-flash (off)-qwen3.6-flash (low)- 更便宜的 utility rungs -xai/grok-4.20-0309-non-reasoning-claude-haiku-4-5 (off)unspecified-low无处归类、低 effortxai/grok-4.6 (xhigh)xai\|github-copilot\|opencode/grok-4.6 (xhigh)-gpt-5.6-terra (high)-claude-sonnet-5 (low)-qwen3.8-max-preview (max)-deepseek\|opencode-go/deepseek-v4-pro (max)-xiaomi\|opencode-go/mimo-v2.5-pro (max)unspecified-high无处归类、高 effortopenai/gpt-6-astra (high)gpt-6-astra (high)-claude-opus-5 (xhigh)-zai-coding-plan\|opencode-go/glm-5.3 (max)-kimi-k3 (max)writing文档、散文、技术写作anthropic/claude-fable-5-1 (medium)claude-fable-5-1 (medium)-kimi-k3 (max)quick类别带一条调用方警告小型快速模型需要显式提示词包含编号的必做步骤、禁止的偏离与具体的成功标准。deep的用法是每次调用一个目标加一个交付物多个目标请拆成并行的多次deep调用。主 Agent 如何在类别与 curated agent 之间抉择见 Orchestration System Guide。在omo.json中自定义在omo.json中可覆盖任意类别或 curated agent。model设置单一模型models设置一条有序链会先于内置链尝试。条目可以是纯provider/model字符串可带:levelreasoning 后缀如openai/gpt-6-astra:xhigh也可以是携带model、reasoning、max_tokens或provider_options的对象。完整键参考见 omo.json Reference。示例 AClaude 加 OpenAI{ $schema: https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/omo.schema.json, agents: { plan-consultant: { model: anthropic/claude-opus-5, reasoning: high }, plan-reviewer: { model: openai/gpt-6-astra, reasoning: xhigh }, explore: { model: openai/gpt-5.6-luna-fast, reasoning: low }, librarian: { model: openai/gpt-5.6-luna-fast, reasoning: low } }, categories: { visual-engineering: { model: anthropic/claude-fable-5-1, reasoning: max }, deep: { model: openai/gpt-6-astra, reasoning: high }, ultrabrain: { model: openai/gpt-6-astra, reasoning: max }, unspecified-high: { model: anthropic/claude-opus-5, reasoning: xhigh } } }示例 BKimi 与 GLM 承接 Claude 形角色{ agents: { plan-consultant: { model: kimi-for-coding/kimi-k3 } }, categories: { visual-engineering: { model: kimi-for-coding/kimi-k3, reasoning: max }, unspecified-high: { models: [ { model: zai-coding-plan/glm-5.3, reasoning: max }, kimi-for-coding/kimi-k3 ] } } }示例 CDeepSeek 作为链中 GPT 备选{ categories: { deep: { models: [ { model: openai/gpt-6-astra, reasoning: high }, { model: deepseek/deepseek-v4-pro, reasoning: max } ] } } }model是models单元素列表的语法糖见 omo.json Reference 中agents表reasoning的合法取值为off | minimal | low | medium | high | xhigh | max | auto。安全 vs 危险覆盖安全同家族、同角色形态主 AgentCapable profile或 pin Claude Opus 5 - Claude Fable 5想要 GPT 原生提示词时选 Deep work 或 pin GPT 5.6 Sol。plan-consultant任意 Claude 家族模型、Kimi K3、GLM 5.2 / 5.3。plan-reviewerGPT-6 Astra - GPT 5.6 Solmax级 Claude Opus 5 作沟通型回退。visual-engineering、artistry、writing在 Claude Fable 5、Claude Opus 5 与 Kimi K3 之间互换。低置信度可用但验证薄弱主 Agent 用 GLM 5.2 / 5.3。有校准预设但维护者未端到端验证嵌套 todo 与委派路径。主 Agent 用 Kimi K3。指令跟随强预算好思考 token。危险家族或角色错配主 Agent 用任何低于推荐档位的模型。未经维护者验证可能下一次 patch 就崩。提示词救不了模型。deep/ultrabrain用 Claude 或 Kimi。这两个类别为 GPT 的自主风格而建其他家族最终能完成但不出彩。plan-reviewer用小模型或快速模型。评审需要持续推理小模型会漂移并橡皮图章式放行。explore/librarian用 Opus 或 Fable。巨大成本浪费。检索要的是速度不是智能。visual-engineering用 utility 或检索模型。保持在 Fable 5 - Opus 5 - Kimi K3 链上。模型解析是如何发生的主 Agent 的解析在会话启动时一次性完成packages/omo-senpi/src/components/model-profile/index.ts1. --model 标志或 scoped model - 原样保留profile 永不运行 2. model_profile provider/model - pin若注册表能提供该精确模型则应用 3. model_profile profile id - 内置表叠加 model_profiles注册表能提供的第一个 rung 生效 4. Senpi 的默认解析 - 含其 recommended-models 内置会话中途的模型失败走 harness 自己的 retry chains不涉及 profile也不涉及下面的委派链。对于每个被委派的子任务category 或 curated agent解析沿链走到某 rung 匹配上你连接的服务商能提供的模型为止1. omo.json 覆盖 - categories.name.model(s) / agents.name.model(s) 2. 内置链 - category/fallback-chains.ts 或 agents/builtin/fallback-chains.ts 3. 第一个可服务的 rung 胜出reasoning 与 variant 归一化到模型支持的取值显式配置永远赢。若你为某个类别或 agent 设置了模型该选择优先于内置链。从源码看两处关键设计profile 与类别共用同一个匹配器。resolve.ts中每一级 rung 都调用oh-my-opencode/delegate-core的resolveModelForDelegateTask见packages/delegate-core/src/model-selection.ts类别链解析也走同一函数因此 profile 与类别在服务商拼写和哪个注册表 id 算作那个模型上永远不会分歧。rung 的 providers 顺序即resolveModelForDelegateTask中的优先级排序。deep-work与deep类别链被测试钉死为逐字一致。builtin-profiles.test.ts用expect(BUILTIN_MODEL_PROFILES[deep-work]?.models).toEqual(CATEGORY_FALLBACK_CHAINS[deep])做深比较保证 profile 永远不会偏离产品已发布的类别链同一测试还验证了内置 profile 恰好三个、按 picker 顺序渲染、每个 rung 都有服务商与模型、且不落在openaiAPI 计费通道上openai-codex是唯一的 OpenAI 通道。整表替换是刻意设计。mergeModelProfilesresolve.ts中用户model_profiles.name条目以整个定义覆盖同名内置不做字段合并因此capable: { display_name: Best }会得到一个没有模型的 profile运行时报告defines no models而不是在内置链上换标签。任何其他名字则新增 profile。配置层与模型层互不干扰。profiles.name由OMO_PROFILE激活是 VSCode 式配置层叠加改变的是加载哪份配置model_profiles/model_profile是这份配置内的普通基键改变的是主会话从哪个模型启动。唯一交汇点是一个profiles.name层可以像设置任何键一样设置model_profile。profile 键的 zod 模式定义于packages/omo-config-core/src/schema/model-profile.ts其中display_name与models都可选且对象为 strict。参见Installation Guide安装与服务商认证Orchestration System Guide主 Agent 如何向类别与 curated agents 委派omo.json Referencemodel_profiles、model_profile、agents、categories、models键packages/omo-senpi/src/components/model-profile/builtin-profiles.ts三个内置 profile 链packages/senpi-task/src/agents/builtin/fallback-chains.tscurated agent 链packages/senpi-task/src/category/fallback-chains.ts类别链【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考