From 0727d9a1a3fe4709b2f30d172cac537ea184ac20 Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 10:38:31 +0200 Subject: [PATCH 1/7] fix(opencode-go): replace non-existent minimax-m2.7-highspeed with qwen3.5-plus --- src/cli/model-fallback.ts | 4 +-- src/shared/model-requirements.test.ts | 50 ++++++++++++++++----------- src/shared/model-requirements.ts | 6 ++-- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/cli/model-fallback.ts b/src/cli/model-fallback.ts index 6378482c6..f256808f3 100644 --- a/src/cli/model-fallback.ts +++ b/src/cli/model-fallback.ts @@ -130,7 +130,7 @@ export function generateModelConfig(config: InstallConfig): GeneratedOmoConfig { if (avail.native.openai) { agentConfig = { model: "openai/gpt-5.4-mini-fast" } } else if (avail.opencodeGo) { - agentConfig = { model: "opencode-go/minimax-m2.7" } + agentConfig = { model: "opencode-go/qwen3.5-plus" } } else if (avail.zai) { agentConfig = { model: ZAI_MODEL } } else if (avail.vercelAiGateway) { @@ -151,7 +151,7 @@ export function generateModelConfig(config: InstallConfig): GeneratedOmoConfig { } else if (avail.opencodeZen) { agentConfig = { model: "opencode/claude-haiku-4-5" } } else if (avail.opencodeGo) { - agentConfig = { model: "opencode-go/minimax-m2.7" } + agentConfig = { model: "opencode-go/qwen3.5-plus" } } else if (avail.copilot) { agentConfig = { model: "github-copilot/gpt-5-mini" } } else if (avail.vercelAiGateway) { diff --git a/src/shared/model-requirements.test.ts b/src/shared/model-requirements.test.ts index 027ed04d8..ed5f90f90 100644 --- a/src/shared/model-requirements.test.ts +++ b/src/shared/model-requirements.test.ts @@ -72,7 +72,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { // then - fallbackChain exists with openai/gpt-5.4-mini-fast as first entry expect(librarian).toBeDefined() expect(librarian.fallbackChain).toBeArray() - expect(librarian.fallbackChain).toHaveLength(5) + expect(librarian.fallbackChain).toHaveLength(6) const primary = librarian.fallbackChain[0] expect(primary.providers).toEqual(["openai"]) @@ -80,19 +80,23 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const second = librarian.fallbackChain[1] expect(second.providers[0]).toBe("opencode-go") - expect(second.model).toBe("minimax-m2.7-highspeed") + expect(second.model).toBe("qwen3.5-plus") - const tertiary = librarian.fallbackChain[2] - expect(tertiary.providers[0]).toBe("opencode-go") - expect(tertiary.model).toBe("minimax-m2.7") + const third = librarian.fallbackChain[2] + expect(third.providers).toEqual(["vercel"]) + expect(third.model).toBe("minimax-m2.7-highspeed") const quaternary = librarian.fallbackChain[3] - expect(quaternary.providers).toContain("anthropic") - expect(quaternary.model).toBe("claude-haiku-4-5") + expect(quaternary.providers[0]).toBe("opencode-go") + expect(quaternary.model).toBe("minimax-m2.7") - const fifth = librarian.fallbackChain[4] - expect(fifth.providers).toContain("openai") - expect(fifth.model).toBe("gpt-5.4-nano") + const quinary = librarian.fallbackChain[4] + expect(quinary.providers).toContain("anthropic") + expect(quinary.model).toBe("claude-haiku-4-5") + + const sixth = librarian.fallbackChain[5] + expect(sixth.providers).toContain("openai") + expect(sixth.model).toBe("gpt-5.4-nano") }) test("explore has valid fallbackChain with openai/gpt-5.4-mini-fast as primary", () => { @@ -102,27 +106,31 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { // when - accessing explore requirement expect(explore).toBeDefined() expect(explore.fallbackChain).toBeArray() - expect(explore.fallbackChain).toHaveLength(5) + expect(explore.fallbackChain).toHaveLength(6) const primary = explore.fallbackChain[0] expect(primary.providers).toEqual(["openai"]) expect(primary.model).toBe("gpt-5.4-mini-fast") const secondary = explore.fallbackChain[1] - expect(secondary.providers).toContain("opencode-go") - expect(secondary.model).toBe("minimax-m2.7-highspeed") + expect(secondary.providers[0]).toBe("opencode-go") + expect(secondary.model).toBe("qwen3.5-plus") - const tertiary = explore.fallbackChain[2] - expect(tertiary.providers).toContain("opencode-go") - expect(tertiary.model).toBe("minimax-m2.7") + const third = explore.fallbackChain[2] + expect(third.providers).toEqual(["vercel"]) + expect(third.model).toBe("minimax-m2.7-highspeed") const quaternary = explore.fallbackChain[3] - expect(quaternary.providers).toContain("anthropic") - expect(quaternary.model).toBe("claude-haiku-4-5") + expect(quaternary.providers[0]).toBe("opencode-go") + expect(quaternary.model).toBe("minimax-m2.7") - const fifth = explore.fallbackChain[4] - expect(fifth.providers).toContain("openai") - expect(fifth.model).toBe("gpt-5.4-nano") + const quinary = explore.fallbackChain[4] + expect(quinary.providers).toContain("anthropic") + expect(quinary.model).toBe("claude-haiku-4-5") + + const sixth = explore.fallbackChain[5] + expect(sixth.providers).toContain("openai") + expect(sixth.model).toBe("gpt-5.4-nano") }) test("multimodal-looker has valid fallbackChain with gpt-5.5 as primary", () => { diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index 019da4d16..d5c67849f 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -78,7 +78,8 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { librarian: { fallbackChain: [ { providers: ["openai"], model: "gpt-5.4-mini-fast" }, - { providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" }, + { providers: ["opencode-go"], model: "qwen3.5-plus" }, + { providers: ["vercel"], model: "minimax-m2.7-highspeed" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, { providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" }, { providers: ["openai", "opencode", "vercel"], model: "gpt-5.4-nano" }, @@ -87,7 +88,8 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { explore: { fallbackChain: [ { providers: ["openai"], model: "gpt-5.4-mini-fast" }, - { providers: ["opencode-go", "vercel"], model: "minimax-m2.7-highspeed" }, + { providers: ["opencode-go"], model: "qwen3.5-plus" }, + { providers: ["vercel"], model: "minimax-m2.7-highspeed" }, { providers: ["opencode-go", "vercel"], model: "minimax-m2.7" }, { providers: ["anthropic", "opencode", "vercel"], model: "claude-haiku-4-5" }, { providers: ["openai", "opencode", "vercel"], model: "gpt-5.4-nano" }, From 6cd40df4cb8c2fa4d625221f1d1c280f0520d8b9 Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 11:13:45 +0200 Subject: [PATCH 2/7] =?UTF-8?q?feat(opencode-go):=20upgrade=20glm-5=20?= =?UTF-8?q?=E2=86=92=20glm-5.1=20and=20kimi-k2.5=20=E2=86=92=20kimi-k2.6?= =?UTF-8?q?=20in=20fallback=20chains?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__snapshots__/model-fallback.test.ts.snap | 57 ++++++++++++------- .../config-manager/plugin-detection.test.ts | 2 +- .../checks/model-resolution-config.test.ts | 4 +- src/hooks/model-fallback/hook.test.ts | 2 +- .../prometheus-agent-config-builder.test.ts | 4 +- src/plugin/event.model-fallback.test.ts | 6 +- src/shared/model-requirements.test.ts | 14 ++--- src/shared/model-requirements.ts | 26 ++++----- src/tools/delegate-task/sync-task.test.ts | 10 ++-- 9 files changed, 70 insertions(+), 55 deletions(-) diff --git a/src/cli/__snapshots__/model-fallback.test.ts.snap b/src/cli/__snapshots__/model-fallback.test.ts.snap index fbdf7fad3..57d897bac 100644 --- a/src/cli/__snapshots__/model-fallback.test.ts.snap +++ b/src/cli/__snapshots__/model-fallback.test.ts.snap @@ -4138,7 +4138,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "atlas": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4189,7 +4189,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/anthropic/claude-opus-4.7", @@ -4206,7 +4206,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4215,7 +4215,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "multimodal-looker": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/zai/glm-4.6v", @@ -4238,7 +4238,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4251,7 +4251,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, { "model": "vercel/google/gemini-3.1-pro-preview", @@ -4262,6 +4262,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin }, "sisyphus": { "fallback_models": [ + { + "model": "vercel/moonshotai/kimi-k2.6", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4279,7 +4282,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "sisyphus-junior": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4348,7 +4351,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4361,7 +4364,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4379,7 +4382,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4399,6 +4402,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/anthropic/claude-opus-4.7", "variant": "max", }, + { + "model": "vercel/zai/glm-5.1", + }, ], "model": "vercel/google/gemini-3.1-pro-preview", "variant": "high", @@ -4406,7 +4412,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "writing": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/anthropic/claude-sonnet-4.6", @@ -4428,7 +4434,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "atlas": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4479,7 +4485,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/anthropic/claude-opus-4.7", @@ -4496,7 +4502,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4505,7 +4511,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "multimodal-looker": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/zai/glm-4.6v", @@ -4528,7 +4534,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4541,7 +4547,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "high", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, { "model": "vercel/google/gemini-3.1-pro-preview", @@ -4552,6 +4558,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin }, "sisyphus": { "fallback_models": [ + { + "model": "vercel/moonshotai/kimi-k2.6", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4569,7 +4578,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "sisyphus-junior": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/openai/gpt-5.5", @@ -4638,7 +4647,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "max", }, { - "model": "vercel/zai/glm-5", + "model": "vercel/zai/glm-5.1", }, ], "model": "vercel/openai/gpt-5.5", @@ -4653,6 +4662,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin { "model": "vercel/zai/glm-5", }, + { + "model": "vercel/zai/glm-5.1", + }, { "model": "vercel/moonshotai/kimi-k2.5", }, @@ -4667,7 +4679,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "variant": "medium", }, { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/google/gemini-3-flash", @@ -4687,6 +4699,9 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "model": "vercel/anthropic/claude-opus-4.7", "variant": "max", }, + { + "model": "vercel/zai/glm-5.1", + }, ], "model": "vercel/google/gemini-3.1-pro-preview", "variant": "high", @@ -4694,7 +4709,7 @@ exports[`generateModelConfig Vercel AI Gateway provider uses vercel/ model strin "writing": { "fallback_models": [ { - "model": "vercel/moonshotai/kimi-k2.5", + "model": "vercel/moonshotai/kimi-k2.6", }, { "model": "vercel/anthropic/claude-sonnet-4.6", diff --git a/src/cli/config-manager/plugin-detection.test.ts b/src/cli/config-manager/plugin-detection.test.ts index fcd6109f9..e4ebd1b6e 100644 --- a/src/cli/config-manager/plugin-detection.test.ts +++ b/src/cli/config-manager/plugin-detection.test.ts @@ -54,7 +54,7 @@ describe("detectCurrentConfig - single package detection", () => { it("detects OpenCode Go from the existing omo config", () => { // given writeFileSync(testConfigPath, JSON.stringify({ plugin: ["oh-my-opencode"] }, null, 2) + "\n", "utf-8") - writeFileSync(testOmoConfigPath, JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.5" } } }, null, 2) + "\n", "utf-8") + writeFileSync(testOmoConfigPath, JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.6" } } }, null, 2) + "\n", "utf-8") // when const result = detectCurrentConfig() diff --git a/src/cli/doctor/checks/model-resolution-config.test.ts b/src/cli/doctor/checks/model-resolution-config.test.ts index 124d35242..189084e02 100644 --- a/src/cli/doctor/checks/model-resolution-config.test.ts +++ b/src/cli/doctor/checks/model-resolution-config.test.ts @@ -31,13 +31,13 @@ describe("model-resolution-config", () => { process.env.OPENCODE_CONFIG_DIR = testConfigDir writeFileSync( join(testConfigDir, "oh-my-openagent.json"), - JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.5" } } }, null, 2) + "\n", + JSON.stringify({ agents: { atlas: { model: "opencode-go/kimi-k2.6" } } }, null, 2) + "\n", "utf-8", ) const config = loadOmoConfig() - expect(config?.agents?.atlas?.model).toBe("opencode-go/kimi-k2.5") + expect(config?.agents?.atlas?.model).toBe("opencode-go/kimi-k2.6") } finally { rmSync(testConfigDir, { recursive: true, force: true }) } diff --git a/src/hooks/model-fallback/hook.test.ts b/src/hooks/model-fallback/hook.test.ts index b12eee1cd..e2f2c850f 100644 --- a/src/hooks/model-fallback/hook.test.ts +++ b/src/hooks/model-fallback/hook.test.ts @@ -163,7 +163,7 @@ describe("model fallback hook", () => { expect(secondOutput.message["model"]).toEqual({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(secondOutput.message["variant"]).toBeUndefined() }) diff --git a/src/plugin-handlers/prometheus-agent-config-builder.test.ts b/src/plugin-handlers/prometheus-agent-config-builder.test.ts index 8c77f562d..791fe0cc1 100644 --- a/src/plugin-handlers/prometheus-agent-config-builder.test.ts +++ b/src/plugin-handlers/prometheus-agent-config-builder.test.ts @@ -103,12 +103,12 @@ describe("buildPrometheusAgentConfig", () => { expect(result).toBeDefined(); }); - test("accepts glm-5 from fallback chain", async () => { + test("accepts glm-5.1 from fallback chain", async () => { const result = await buildPrometheusAgentConfig({ configAgentPlan: undefined, pluginPrometheusOverride: undefined, userCategories: undefined, - currentModel: "opencode-go/glm-5", + currentModel: "opencode-go/glm-5.1", }); expect(result).toBeDefined(); }); diff --git a/src/plugin/event.model-fallback.test.ts b/src/plugin/event.model-fallback.test.ts index 967608f09..3ff82ae20 100644 --- a/src/plugin/event.model-fallback.test.ts +++ b/src/plugin/event.model-fallback.test.ts @@ -222,7 +222,7 @@ describe("createEventHandler - model fallback", () => { expect(promptCalls).toEqual([sessionID]) expect(output.message["model"]).toMatchObject({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(output.message["variant"]).toBeUndefined() }) @@ -549,14 +549,14 @@ describe("createEventHandler - model fallback", () => { //#then - first fallback entry applied (no-op skip: claude-opus-4-7 matches current model after normalization) expect(first.message["model"]).toMatchObject({ providerID: "opencode-go", - modelID: "kimi-k2.5", + modelID: "kimi-k2.6", }) expect(first.message["variant"]).toBeUndefined() //#when - second retry cycle const second = await triggerRetryCycle() - //#then - second fallback entry applied (chain advanced past opencode-go/kimi-k2.5) + //#then - second fallback entry applied (chain advanced past opencode-go/kimi-k2.6) expect(second.message["model"]).toMatchObject({ providerID: "kimi-for-coding", modelID: "k2p5", diff --git a/src/shared/model-requirements.test.ts b/src/shared/model-requirements.test.ts index ed5f90f90..33d53fea1 100644 --- a/src/shared/model-requirements.test.ts +++ b/src/shared/model-requirements.test.ts @@ -41,7 +41,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const second = sisyphus.fallbackChain[1] expect(second.providers).toEqual(["opencode-go", "vercel"]) - expect(second.model).toBe("kimi-k2.5") + expect(second.model).toBe("kimi-k2.6") const third = sisyphus.fallbackChain[2] expect(third.providers).toEqual(["kimi-for-coding"]) @@ -138,7 +138,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const multimodalLooker = AGENT_MODEL_REQUIREMENTS["multimodal-looker"] // when - accessing multimodal-looker requirement - // then - fallbackChain: gpt-5.5 -> opencode-go/kimi-k2.5 -> glm-4.6v -> gpt-5-nano + // then - fallbackChain: gpt-5.5 -> opencode-go/kimi-k2.6 -> glm-4.6v -> gpt-5-nano expect(multimodalLooker).toBeDefined() expect(multimodalLooker.fallbackChain).toBeArray() expect(multimodalLooker.fallbackChain).toHaveLength(4) @@ -150,7 +150,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { const secondary = multimodalLooker.fallbackChain[1] expect(secondary.providers).toEqual(["opencode-go", "vercel"]) - expect(secondary.model).toBe("kimi-k2.5") + expect(secondary.model).toBe("kimi-k2.6") const tertiary = multimodalLooker.fallbackChain[2] expect(tertiary.model).toBe("glm-4.6v") @@ -230,7 +230,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(primary.providers[0]).toBe("anthropic") const secondary = atlas.fallbackChain[1] - expect(secondary.model).toBe("kimi-k2.5") + expect(secondary.model).toBe("kimi-k2.6") expect(secondary.providers[0]).toBe("opencode-go") const tertiary = atlas.fallbackChain[2] @@ -353,7 +353,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { const visualEngineering = CATEGORY_MODEL_REQUIREMENTS["visual-engineering"] // when - accessing visual-engineering requirement - // then - fallbackChain: gemini-3.1-pro(high) → glm-5 → opus-4-6(max) → opencode-go/glm-5 → k2p5 + // then - fallbackChain: gemini-3.1-pro(high) → glm-5 → opus-4-6(max) → opencode-go/glm-5.1 → k2p5 expect(visualEngineering).toBeDefined() expect(visualEngineering.fallbackChain).toBeArray() expect(visualEngineering.fallbackChain).toHaveLength(5) @@ -373,7 +373,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { const fourth = visualEngineering.fallbackChain[3] expect(fourth.providers[0]).toBe("opencode-go") - expect(fourth.model).toBe("glm-5") + expect(fourth.model).toBe("glm-5.1") const fifth = visualEngineering.fallbackChain[4] expect(fifth.providers[0]).toBe("kimi-for-coding") @@ -466,7 +466,7 @@ describe("CATEGORY_MODEL_REQUIREMENTS", () => { expect(primary.providers[0]).toBe("google") const second = writing.fallbackChain[1] - expect(second.model).toBe("kimi-k2.5") + expect(second.model).toBe("kimi-k2.6") expect(second.providers[0]).toBe("opencode-go") const third = writing.fallbackChain[2] diff --git a/src/shared/model-requirements.ts b/src/shared/model-requirements.ts index d5c67849f..a137c5895 100644 --- a/src/shared/model-requirements.ts +++ b/src/shared/model-requirements.ts @@ -25,7 +25,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["kimi-for-coding"], model: "k2p5" }, { providers: [ @@ -72,7 +72,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, librarian: { @@ -98,7 +98,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { "multimodal-looker": { fallbackChain: [ { providers: ["openai", "opencode", "vercel"], model: "gpt-5.5", variant: "medium" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["zai-coding-plan", "vercel"], model: "glm-4.6v" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5-nano" }, ], @@ -115,7 +115,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gpt-5.5", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3.1-pro", @@ -134,7 +134,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gpt-5.5", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["kimi-for-coding"], model: "k2p5" }, ], }, @@ -155,13 +155,13 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { model: "gemini-3.1-pro", variant: "high", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, atlas: { fallbackChain: [ { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -173,7 +173,7 @@ export const AGENT_MODEL_REQUIREMENTS: Record = { "sisyphus-junior": { fallbackChain: [ { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6" }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["openai", "github-copilot", "opencode", "vercel"], model: "gpt-5.5", @@ -199,7 +199,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["kimi-for-coding"], model: "k2p5" }, ], }, @@ -220,7 +220,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "claude-opus-4-7", variant: "max", }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, ], }, deep: { @@ -286,7 +286,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { model: "gpt-5.3-codex", variant: "medium", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3-flash", @@ -308,7 +308,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { }, { providers: ["zai-coding-plan", "opencode", "vercel"], model: "glm-5" }, { providers: ["kimi-for-coding"], model: "k2p5" }, - { providers: ["opencode-go", "vercel"], model: "glm-5" }, + { providers: ["opencode-go", "vercel"], model: "glm-5.1" }, { providers: ["opencode", "vercel"], model: "kimi-k2.5" }, { providers: [ @@ -330,7 +330,7 @@ export const CATEGORY_MODEL_REQUIREMENTS: Record = { providers: ["google", "github-copilot", "opencode", "vercel"], model: "gemini-3-flash", }, - { providers: ["opencode-go", "vercel"], model: "kimi-k2.5" }, + { providers: ["opencode-go", "vercel"], model: "kimi-k2.6" }, { providers: ["anthropic", "github-copilot", "opencode", "vercel"], model: "claude-sonnet-4-6", diff --git a/src/tools/delegate-task/sync-task.test.ts b/src/tools/delegate-task/sync-task.test.ts index e032f11aa..bd346b8f0 100644 --- a/src/tools/delegate-task/sync-task.test.ts +++ b/src/tools/delegate-task/sync-task.test.ts @@ -272,7 +272,7 @@ describe("executeSyncTask - cleanup on error paths", () => { } const fallbackChain = [ { providers: ["anthropic"], model: "claude-opus-4-7", variant: "max" }, - { providers: ["opencode-go"], model: "kimi-k2.5" }, + { providers: ["opencode-go"], model: "kimi-k2.6" }, ] //#when @@ -282,10 +282,10 @@ describe("executeSyncTask - cleanup on error paths", () => { //#then expect(result).toContain("Task completed") - expect(result).toContain("Model: opencode-go/kimi-k2.5") + expect(result).toContain("Model: opencode-go/kimi-k2.6") expect(attemptedModels).toEqual([ { providerID: "anthropic", modelID: "claude-opus-4-7", variant: "max" }, - { providerID: "opencode-go", modelID: "kimi-k2.5", variant: undefined }, + { providerID: "opencode-go", modelID: "kimi-k2.6", variant: undefined }, ]) }) @@ -339,7 +339,7 @@ describe("executeSyncTask - cleanup on error paths", () => { } const fallbackChain = [ { providers: ["anthropic"], model: "claude-opus-4-7", variant: "max" }, - { providers: ["opencode-go"], model: "kimi-k2.5" }, + { providers: ["opencode-go"], model: "kimi-k2.6" }, { providers: ["openai"], model: "gpt-5.4", variant: "medium" }, ] @@ -352,7 +352,7 @@ describe("executeSyncTask - cleanup on error paths", () => { expect(result).toBe("Final failure") expect(attemptedModels).toEqual([ { providerID: "anthropic", modelID: "claude-opus-4-7", variant: "max" }, - { providerID: "opencode-go", modelID: "kimi-k2.5", variant: undefined }, + { providerID: "opencode-go", modelID: "kimi-k2.6", variant: undefined }, { providerID: "openai", modelID: "gpt-5.4", variant: "medium" }, ]) }) From 1e93d37df650cad5ce3e0dc535113a3d25f5b833 Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 12:21:30 +0200 Subject: [PATCH 3/7] docs(opencode-go): update docs and fallback chain tables to reflect glm-5.1, kimi-k2.6, qwen3.5-plus --- README.ja.md | 6 ++-- README.ko.md | 6 ++-- README.md | 6 ++-- README.ru.md | 6 ++-- README.zh-cn.md | 4 +-- docs/guide/agent-model-matching.md | 58 +++++++++++++++--------------- docs/guide/installation.md | 16 ++++----- docs/reference/configuration.md | 28 +++++++-------- docs/reference/features.md | 20 +++++------ src/agents/AGENTS.md | 6 ++-- 10 files changed, 78 insertions(+), 78 deletions(-) diff --git a/README.ja.md b/README.ja.md index 43f80175a..9b90c63fb 100644 --- a/README.ja.md +++ b/README.ja.md @@ -167,17 +167,17 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu -**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) はあなたのメインオーケストレーターです。計画を立て、専門家に委任し、攻撃的な並列実行でタスクを完了まで推進します。途中で投げ出すことはありません。 +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) はあなたのメインオーケストレーターです。計画を立て、専門家に委任し、攻撃的な並列実行でタスクを完了まで推進します。途中で投げ出すことはありません。 **Hephaestus** (`gpt-5.4`) はあなたの自律的なディープワーカーです。レシピではなく、目標を与えてください。手取り足取り教えなくても、コードベースを探索し、パターンを調査し、エンドツーエンドで実行します。*正当なる職人 (The Legitimate Craftsman).* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) はあなたの戦略プランナーです。インタビューモードで質問を投げ、スコープを特定し、コードに一行触れる前に詳細な計画を構築します。 +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) はあなたの戦略プランナーです。インタビューモードで質問を投げ、スコープを特定し、コードに一行触れる前に詳細な計画を構築します。 すべてのエージェントは、それぞれのモデルの強みに合わせてチューニングされています。手動でモデルを切り替える必要はありません。[詳しくはこちら →](docs/guide/overview.md) > Anthropic が [私たちのせいで OpenCode をブロックしました。](https://x.com/thdxr/status/2010149530486911014) だからこそ Hephaestus は「正当なる職人 (The Legitimate Craftsman)」と呼ばれているのです。皮肉を込めています。 > -> Opus で最もよく動きますが、Kimi K2.5 + GPT-5.4 の組み合わせだけでも、バニラの Claude Code を軽く凌駕します。設定は一切不要です。 +> Opus で最もよく動きますが、Kimi K2.6 + GPT-5.4 の組み合わせだけでも、バニラの Claude Code を軽く凌駕します。設定は一切不要です。 ### エージェントのオーケストレーション diff --git a/README.ko.md b/README.ko.md index ce3442e96..5b572cdf5 100644 --- a/README.ko.md +++ b/README.ko.md @@ -168,17 +168,17 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu -**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 메인 오케스트레이터입니다. 계획을 세우고, 전문가에게 위임하고, 공격적인 병렬 실행으로 작업을 끝까지 밀어붙입니다. 중간에 멈추지 않습니다. +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**)는 메인 오케스트레이터입니다. 계획을 세우고, 전문가에게 위임하고, 공격적인 병렬 실행으로 작업을 끝까지 밀어붙입니다. 중간에 멈추지 않습니다. **Hephaestus** (`gpt-5.4`)는 자율적으로 깊게 파는 작업자입니다. 레시피가 아니라 목표를 주세요. 코드베이스를 탐색하고, 패턴을 조사하고, 손을 잡아주지 않아도 엔드투엔드로 실행합니다. *The Legitimate Craftsman.* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**)는 전략 플래너입니다. 인터뷰 모드: 질문으로 스코프를 파악하고, 코드에 손대기 전에 상세한 계획을 만듭니다. +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**)는 전략 플래너입니다. 인터뷰 모드: 질문으로 스코프를 파악하고, 코드에 손대기 전에 상세한 계획을 만듭니다. 모든 에이전트는 자기 모델의 강점에 맞춰 튜닝되어 있습니다. 수동으로 모델을 돌려가며 쓸 필요가 없습니다. [더 알아보기 →](docs/guide/overview.md) > Anthropic은 [우리 때문에 OpenCode를 차단했습니다.](https://x.com/thdxr/status/2010149530486911014) 그래서 Hephaestus에게 "The Legitimate Craftsman"이라는 별명이 붙었습니다. 의도된 아이러니입니다. > -> Opus에서 가장 잘 돌지만, Kimi K2.5 + GPT-5.4 조합만으로도 이미 바닐라 Claude Code를 이깁니다. 별도 설정 없이요. +> Opus에서 가장 잘 돌지만, Kimi K2.6 + GPT-5.4 조합만으로도 이미 바닐라 Claude Code를 이깁니다. 별도 설정 없이요. ### Agent Orchestration diff --git a/README.md b/README.md index 177955793..f4c6122e7 100644 --- a/README.md +++ b/README.md @@ -168,17 +168,17 @@ Even with only the following subscriptions, `ultrawork` works well (this project -**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`** ) is your main orchestrator. He plans, delegates to specialists, and drives tasks to completion with aggressive parallel execution. He does not stop halfway. +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`** ) is your main orchestrator. He plans, delegates to specialists, and drives tasks to completion with aggressive parallel execution. He does not stop halfway. **Hephaestus** (`gpt-5.4`) is your autonomous deep worker. Give him a goal, not a recipe. He explores the codebase, researches patterns, and executes end-to-end without hand-holding. *The Legitimate Craftsman.* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`** ) is your strategic planner. Interview mode: he asks questions, identifies scope, and builds a detailed plan before a single line of code is touched. +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`** ) is your strategic planner. Interview mode: he asks questions, identifies scope, and builds a detailed plan before a single line of code is touched. Every agent is tuned to its model's specific strengths. No manual model juggling. [Learn more →](docs/guide/overview.md) > Anthropic [blocked OpenCode because of us.](https://x.com/thdxr/status/2010149530486911014) That's why Hephaestus is called "The Legitimate Craftsman." The irony is intentional. > -> We run best on Opus, but Kimi K2.5 + GPT-5.4 already beats vanilla Claude Code. Zero config needed. +> We run best on Opus, but Kimi K2.6 + GPT-5.4 already beats vanilla Claude Code. Zero config needed. ### Agent Orchestration diff --git a/README.ru.md b/README.ru.md index 5dfa5bd65..3897a01f3 100644 --- a/README.ru.md +++ b/README.ru.md @@ -167,17 +167,17 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu -**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути. +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) — главный оркестратор. Он планирует, делегирует задачи специалистам и доводит их до завершения с агрессивным параллельным выполнением. Он не останавливается на полпути. **Hephaestus** (`gpt-5.4`) — автономный глубокий исполнитель. Дайте ему цель, а не рецепт. Он исследует кодовую базу, изучает паттерны и выполняет задачи сквозным образом без лишних подсказок. *Законный Мастер.* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) — стратегический планировщик. Режим интервью: он задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода. +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) — стратегический планировщик. Режим интервью: он задаёт вопросы, определяет объём работ и формирует детальный план до того, как написана хотя бы одна строка кода. Каждый агент настроен под сильные стороны своей модели. Никакого ручного переключения между моделями. [Подробнее →](docs/guide/overview.md) > Anthropic [заблокировал OpenCode из-за нас.](https://x.com/thdxr/status/2010149530486911014) Именно поэтому Hephaestus зовётся «Законным Мастером». Ирония намеренная. > -> Мы работаем лучше всего на Opus, но Kimi K2.5 + GPT-5.4 уже превосходят ванильный Claude Code. Никакой настройки не требуется. +> Мы работаем лучше всего на Opus, но Kimi K2.6 + GPT-5.4 уже превосходят ванильный Claude Code. Никакой настройки не требуется. ### Оркестрация агентов diff --git a/README.zh-cn.md b/README.zh-cn.md index 44788da9a..4ceff5ee4 100644 --- a/README.zh-cn.md +++ b/README.zh-cn.md @@ -167,11 +167,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu -**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) 是你的主指挥官。他负责制定计划、分配任务给专家团队,并以极其激进的并行策略推动任务直至完成。他从不半途而废。 +**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) 是你的主指挥官。他负责制定计划、分配任务给专家团队,并以极其激进的并行策略推动任务直至完成。他从不半途而废。 **Hephaestus** (`gpt-5.4`) 是你的自主深度工作者。你只需要给他目标,不要给他具体做法。他会自动探索代码库模式,从头到尾独立执行任务,绝不会中途要你当保姆。*名副其实的正牌工匠。* -**Prometheus** (`claude-opus-4-7` / **`kimi-k2.5`** / **`glm-5`**) 是你的战略规划师。他通过访谈模式,在动一行代码之前,先通过提问确定范围并构建详尽的执行计划。 +**Prometheus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5.1`**) 是你的战略规划师。他通过访谈模式,在动一行代码之前,先通过提问确定范围并构建详尽的执行计划。 每一个 Agent 都针对其底层模型的特点进行了专门调优。你无需手动来回切换模型。[阅读背景设定了解更多 →](docs/guide/overview.md) diff --git a/docs/guide/agent-model-matching.md b/docs/guide/agent-model-matching.md index 28164ee43..40191c69a 100644 --- a/docs/guide/agent-model-matching.md +++ b/docs/guide/agent-model-matching.md @@ -204,8 +204,8 @@ These agents have Claude-optimized prompts — long, detailed, mechanics-driven. | Agent | Role | Fallback Chain | |---|---|---| -| **Sisyphus** | Main orchestrator | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `opencode-go\|vercel/kimi-k2.5` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix\|vercel/kimi-k2.5` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `zai-coding-plan\|opencode\|vercel/glm-5` → `opencode/big-pickle` | -| **Metis** | Plan gap analyzer | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `opencode-go\|vercel/glm-5` → `kimi-for-coding/k2p5` | +| **Sisyphus** | Main orchestrator | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `opencode-go\|vercel/kimi-k2.6` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix\|vercel/kimi-k2.5` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `zai-coding-plan\|opencode\|vercel/glm-5` → `opencode/big-pickle` | +| **Metis** | Plan gap analyzer | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `opencode-go\|vercel/glm-5.1` → `kimi-for-coding/k2p5` | ### Dual-Prompt Agents → Claude preferred, GPT supported @@ -213,8 +213,8 @@ These agents ship separate prompts for Claude and GPT families. They auto-detect | Agent | Role | Fallback Chain | |---|---|---| -| **Prometheus** | Strategic planner | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `opencode-go\|vercel/glm-5` → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` | -| **Atlas** | Todo orchestrator | `anthropic\|github-copilot\|opencode\|vercel/claude-sonnet-4-6` → `opencode-go\|vercel/kimi-k2.5` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/minimax-m2.7` | +| **Prometheus** | Strategic planner | `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `opencode-go\|vercel/glm-5.1` → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` | +| **Atlas** | Todo orchestrator | `anthropic\|github-copilot\|opencode\|vercel/claude-sonnet-4-6` → `opencode-go\|vercel/kimi-k2.6` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/minimax-m2.7` | ### Deep Specialists → GPT @@ -223,8 +223,8 @@ These agents are built for GPT's principle-driven style. Their prompts assume au | Agent | Role | Fallback Chain | |---|---|---| | **Hephaestus** | Autonomous deep worker | `openai\|github-copilot\|venice\|opencode\|vercel/gpt-5.5` (medium) — single-entry chain, requires one of those providers. The craftsman. | -| **Oracle** | Architecture consultant | `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` (high) → `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `opencode-go\|vercel/glm-5` | -| **Momus** | Ruthless reviewer | `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (xhigh) → `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` (high) → `opencode-go\|vercel/glm-5` | +| **Oracle** | Architecture consultant | `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (high) → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` (high) → `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `opencode-go\|vercel/glm-5.1` | +| **Momus** | Ruthless reviewer | `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (xhigh) → `anthropic\|github-copilot\|opencode\|vercel/claude-opus-4-7` (max) → `google\|github-copilot\|opencode\|vercel/gemini-3.1-pro` (high) → `opencode-go\|vercel/glm-5.1` | ### Utility Runners → Speed over Intelligence @@ -232,10 +232,10 @@ These agents do grep, search, and retrieval. They intentionally use the fastest, | Agent | Role | Fallback Chain | |---|---|---| -| **Explore** | Fast codebase grep | `openai/gpt-5.4-mini-fast` → `opencode-go\|vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | +| **Explore** | Fast codebase grep | `openai/gpt-5.4-mini-fast` → `opencode-go/qwen3.5-plus` → `vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | | **Librarian** | Docs/code search | same as Explore | -| **Multimodal Looker** | Vision/screenshots | `openai\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/kimi-k2.5` → `zai-coding-plan\|vercel/glm-4.6v` → `openai\|github-copilot\|opencode\|vercel/gpt-5-nano` | -| **Sisyphus-Junior** | Category executor | `anthropic\|github-copilot\|opencode\|vercel/claude-sonnet-4-6` → `opencode-go\|vercel/kimi-k2.5` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/minimax-m2.7` → `opencode/big-pickle` | +| **Multimodal Looker** | Vision/screenshots | `openai\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/kimi-k2.6` → `zai-coding-plan\|vercel/glm-4.6v` → `openai\|github-copilot\|opencode\|vercel/gpt-5-nano` | +| **Sisyphus-Junior** | Category executor | `anthropic\|github-copilot\|opencode\|vercel/claude-sonnet-4-6` → `opencode-go\|vercel/kimi-k2.6` → `openai\|github-copilot\|opencode\|vercel/gpt-5.5` (medium) → `opencode-go\|vercel/minimax-m2.7` → `opencode/big-pickle` | --- @@ -282,10 +282,10 @@ A premium subscription tier ($10/month) that provides reliable access to Chinese | Model | Use Case | | ------------------------ | --------------------------------------------------------------------- | -| **opencode-go/kimi-k2.5** | Vision-capable, Claude-like reasoning. Used by Sisyphus, Atlas, Sisyphus-Junior, Multimodal Looker. | -| **opencode-go/glm-5** | Text-only orchestration model. Used by Oracle, Prometheus, Metis, Momus. | +| **opencode-go/kimi-k2.6** | Vision-capable, Claude-like reasoning. Used by Sisyphus, Atlas, Sisyphus-Junior, Multimodal Looker. | +| **opencode-go/glm-5.1** | Text-only orchestration model. Used by Oracle, Prometheus, Metis, Momus. | | **opencode-go/minimax-m2.7** | Ultra-cheap, fast responses. Used by Atlas, Sisyphus-Junior, Explore and Librarian fallbacks for utility work. | -| **opencode-go/minimax-m2.7-highspeed** | Even faster OpenCode Go MiniMax entry used as a secondary fallback for Explore and Librarian when GPT-5.4 Mini Fast is unavailable. | +| **opencode-go/qwen3.5-plus** | Qwen coding model used as the first OpenCode Go utility fallback for Explore and Librarian when GPT-5.4 Mini Fast is unavailable. | **When It Gets Used:** @@ -309,14 +309,14 @@ When agents delegate work, they don't pick a model name — they pick a **catego | Category | Used For | Default Model | Fallback Chain | |---|---|---|---| -| `visual-engineering` | Frontend, UI, CSS, design | `google/gemini-3.1-pro` (high) | Gemini → `zai-coding-plan/glm-5` → `claude-opus-4-7` (max) → `opencode-go/glm-5` → `kimi-for-coding/k2p5` | +| `visual-engineering` | Frontend, UI, CSS, design | `google/gemini-3.1-pro` (high) | Gemini → `zai-coding-plan/glm-5` → `claude-opus-4-7` (max) → `opencode-go/glm-5.1` → `kimi-for-coding/k2p5` | | `artistry` | Creative, novel approaches | `google/gemini-3.1-pro` (high) | Gemini → `claude-opus-4-7` (max) → `gpt-5.5` — requires Gemini family to activate | -| `ultrabrain` | Maximum reasoning needed | `openai/gpt-5.5` (xhigh) | GPT-5.5 xhigh → `gemini-3.1-pro` (high) → `claude-opus-4-7` (max) → `opencode-go/glm-5` | +| `ultrabrain` | Maximum reasoning needed | `openai/gpt-5.5` (xhigh) | GPT-5.5 xhigh → `gemini-3.1-pro` (high) → `claude-opus-4-7` (max) → `opencode-go/glm-5.1` | | `deep` | Deep coding, complex logic | `openai/gpt-5.5` (medium) | GPT-5.5 → `claude-opus-4-7` (max) → `gemini-3.1-pro` (high) | | `quick` | Simple, fast tasks | `openai/gpt-5.4-mini` | GPT-5.4-mini → `claude-haiku-4-5` → `gemini-3-flash` → `opencode-go/minimax-m2.7` → `opencode/gpt-5-nano` | -| `unspecified-high` | General complex work | `anthropic/claude-opus-4-7` (max) | Opus → `gpt-5.5` (high) → `zai-coding-plan/glm-5` → `kimi-for-coding/k2p5` → `opencode-go/glm-5` → `opencode/kimi-k2.5` → `moonshotai/kimi-k2.5` | -| `unspecified-low` | General standard work | `anthropic/claude-sonnet-4-6` | Sonnet → `gpt-5.3-codex` (medium) → `opencode-go/kimi-k2.5` → `google/gemini-3-flash` → `opencode-go/minimax-m2.7` | -| `writing` | Text, docs, prose | `kimi-for-coding/k2p5` | Kimi → `gemini-3-flash` → `opencode-go/kimi-k2.5` → `claude-sonnet-4-6` → `opencode-go/minimax-m2.7` | +| `unspecified-high` | General complex work | `anthropic/claude-opus-4-7` (max) | Opus → `gpt-5.5` (high) → `zai-coding-plan/glm-5` → `kimi-for-coding/k2p5` → `opencode-go/glm-5.1` → `opencode/kimi-k2.5` → `moonshotai/kimi-k2.5` | +| `unspecified-low` | General standard work | `anthropic/claude-sonnet-4-6` | Sonnet → `gpt-5.3-codex` (medium) → `opencode-go/kimi-k2.6` → `google/gemini-3-flash` → `opencode-go/minimax-m2.7` | +| `writing` | Text, docs, prose | `kimi-for-coding/k2p5` | Kimi → `gemini-3-flash` → `opencode-go/kimi-k2.6` → `claude-sonnet-4-6` → `opencode-go/minimax-m2.7` | See the [Orchestration System Guide](./orchestration.md) for how agents dispatch tasks to categories. @@ -351,11 +351,11 @@ See the [Orchestration System Guide](./orchestration.md) for how agents dispatch "prometheus": { "model": "opencode-go/kimi-k2.6" }, // Atlas also communicative — Kimi works great - "atlas": { "model": "opencode-go/kimi-k2.5" }, + "atlas": { "model": "opencode-go/kimi-k2.6" }, // Utility agents stay cheap - "explore": { "model": "opencode-go/minimax-m2.7-highspeed" }, - "librarian": { "model": "opencode-go/minimax-m2.7-highspeed" }, + "explore": { "model": "opencode-go/qwen3.5-plus" }, + "librarian": { "model": "opencode-go/qwen3.5-plus" }, }, "categories": { @@ -363,9 +363,9 @@ See the [Orchestration System Guide](./orchestration.md) for how agents dispatch "deep": { "model": "openai/gpt-5.5", "variant": "medium" }, "ultrabrain": { "model": "openai/gpt-5.5", "variant": "xhigh" }, "quick": { "model": "openai/gpt-5.4-mini" }, - "unspecified-low": { "model": "opencode-go/kimi-k2.5" }, + "unspecified-low": { "model": "opencode-go/kimi-k2.6" }, "unspecified-high": { "model": "opencode-go/kimi-k2.6" }, - "writing": { "model": "opencode-go/kimi-k2.5" }, + "writing": { "model": "opencode-go/kimi-k2.6" }, }, "background_task": { @@ -407,19 +407,19 @@ Cheapest full-stack path. Hephaestus won't activate — accept that trade-off. { "agents": { "sisyphus": { "model": "opencode-go/kimi-k2.6" }, - "atlas": { "model": "opencode-go/kimi-k2.5" }, + "atlas": { "model": "opencode-go/kimi-k2.6" }, // Omit hephaestus entirely; it needs GPT. - "oracle": { "model": "opencode-go/glm-5" }, // Degraded but functional - "explore": { "model": "opencode-go/minimax-m2.7-highspeed" }, - "librarian": { "model": "opencode-go/minimax-m2.7-highspeed" }, + "oracle": { "model": "opencode-go/glm-5.1" }, // Degraded but functional + "explore": { "model": "opencode-go/qwen3.5-plus" }, + "librarian": { "model": "opencode-go/qwen3.5-plus" }, }, "categories": { "visual-engineering": { "model": "opencode-go/qwen3.6-plus" }, "deep": { "model": "opencode-go/kimi-k2.6" }, // Not ideal — Kimi isn't GPT, but best available "unspecified-high": { "model": "opencode-go/kimi-k2.6" }, - "unspecified-low": { "model": "opencode-go/kimi-k2.5" }, + "unspecified-low": { "model": "opencode-go/kimi-k2.6" }, "quick": { "model": "opencode-go/minimax-m2.7" }, - "writing": { "model": "opencode-go/kimi-k2.5" }, + "writing": { "model": "opencode-go/kimi-k2.6" }, }, } ``` @@ -437,7 +437,7 @@ If you have OpenRouter and want DeepSeek in the chain when GPT is unavailable: "fallback_models": [ "anthropic/claude-opus-4-7", { "model": "openrouter/deepseek/deepseek-v3.2", "temperature": 0.7 }, - "opencode-go/glm-5", + "opencode-go/glm-5.1", ], }, }, diff --git a/docs/guide/installation.md b/docs/guide/installation.md index 5b410dd74..e6c883edc 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -331,8 +331,8 @@ Based on your subscriptions, here's how the agents were configured: | Agent | Role | Default Chain | What It Does | | ------------ | ---------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------- | -| **Sisyphus** | Main ultraworker | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → opencode-go/kimi-k2.5 → kimi-for-coding/k2p5 → opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5 → openai\|github-copilot\|opencode/gpt-5.5 (medium) → zai-coding-plan\|opencode/glm-5 → opencode/big-pickle | Primary coding agent. Exact runtime chain from `src/shared/model-requirements.ts`. | -| **Metis** | Plan review | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → openai\|github-copilot\|opencode/gpt-5.5 (high) → opencode-go/glm-5 → kimi-for-coding/k2p5 | Reviews Prometheus plans for gaps. Exact runtime chain from `src/shared/model-requirements.ts`. | +| **Sisyphus** | Main ultraworker | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → opencode-go/kimi-k2.6 → kimi-for-coding/k2p5 → opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5 → openai\|github-copilot\|opencode/gpt-5.5 (medium) → zai-coding-plan\|opencode/glm-5 → opencode/big-pickle | Primary coding agent. Exact runtime chain from `src/shared/model-requirements.ts`. | +| **Metis** | Plan review | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → openai\|github-copilot\|opencode/gpt-5.5 (high) → opencode-go/glm-5.1 → kimi-for-coding/k2p5 | Reviews Prometheus plans for gaps. Exact runtime chain from `src/shared/model-requirements.ts`. | **Dual-Prompt Agents** (auto-switch between Claude and GPT prompts): @@ -342,16 +342,16 @@ Priority: **Claude > GPT > Claude-like models** | Agent | Role | Default Chain | GPT Prompt? | | -------------- | ----------------- | ---------------------------------------------------------- | ---------------------------------------------------------------- | -| **Prometheus** | Strategic planner | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → openai\|github-copilot\|opencode/gpt-5.5 (high) → opencode-go/glm-5 → google\|github-copilot\|opencode/gemini-3.1-pro | Yes — XML-tagged, principle-driven (~300 lines vs ~1,100 Claude) | -| **Atlas** | Todo orchestrator | anthropic\|github-copilot\|opencode/claude-sonnet-4-6 → opencode-go/kimi-k2.5 → openai\|github-copilot\|opencode/gpt-5.5 (medium) → opencode-go/minimax-m2.7 | Yes - GPT-optimized todo management | +| **Prometheus** | Strategic planner | anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → openai\|github-copilot\|opencode/gpt-5.5 (high) → opencode-go/glm-5.1 → google\|github-copilot\|opencode/gemini-3.1-pro | Yes — XML-tagged, principle-driven (~300 lines vs ~1,100 Claude) | +| **Atlas** | Todo orchestrator | anthropic\|github-copilot\|opencode/claude-sonnet-4-6 → opencode-go/kimi-k2.6 → openai\|github-copilot\|opencode/gpt-5.5 (medium) → opencode-go/minimax-m2.7 | Yes - GPT-optimized todo management | **GPT-Native Agents** (built for GPT, don't override to Claude): | Agent | Role | Default Chain | Notes | | -------------- | ---------------------- | -------------------------------------- | ------------------------------------------------------ | | **Hephaestus** | Deep autonomous worker | GPT-5.5 (medium) only | "Codex on steroids." No fallback. Requires GPT access. | -| **Oracle** | Architecture/debugging | openai\|github-copilot\|opencode/gpt-5.5 (high) → google\|github-copilot\|opencode/gemini-3.1-pro (high) → anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → opencode-go/glm-5 | High-IQ strategic backup. GPT preferred. | -| **Momus** | High-accuracy reviewer | openai\|github-copilot\|opencode/gpt-5.5 (xhigh) → anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → google\|github-copilot\|opencode/gemini-3.1-pro (high) → opencode-go/glm-5 | Verification agent. GPT preferred. | +| **Oracle** | Architecture/debugging | openai\|github-copilot\|opencode/gpt-5.5 (high) → google\|github-copilot\|opencode/gemini-3.1-pro (high) → anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → opencode-go/glm-5.1 | High-IQ strategic backup. GPT preferred. | +| **Momus** | High-accuracy reviewer | openai\|github-copilot\|opencode/gpt-5.5 (xhigh) → anthropic\|github-copilot\|opencode/claude-opus-4-7 (max) → google\|github-copilot\|opencode/gemini-3.1-pro (high) → opencode-go/glm-5.1 | Verification agent. GPT preferred. | **Utility Agents** (speed over intelligence): @@ -359,9 +359,9 @@ These agents do search, grep, and retrieval. They intentionally use fast, cheap | Agent | Role | Default Chain | Design Rationale | | --------------------- | ------------------ | ---------------------------------------------------------------------- | -------------------------------------------------------------- | -| **Explore** | Fast codebase grep | github-copilot\|xai/grok-code-fast-1 → opencode-go/minimax-m2.7-highspeed → opencode/minimax-m2.7 → anthropic\|opencode/claude-haiku-4-5 → opencode/gpt-5-nano | Speed is everything. Exact runtime chain from `src/shared/model-requirements.ts`. | +| **Explore** | Fast codebase grep | github-copilot\|xai/grok-code-fast-1 → opencode-go/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode/minimax-m2.7 → anthropic\|opencode/claude-haiku-4-5 → opencode/gpt-5-nano | Speed is everything. Exact runtime chain from `src/shared/model-requirements.ts`. | | **Librarian** | Docs/code search | opencode-go/minimax-m2.7 → opencode/minimax-m2.7-highspeed → anthropic\|opencode/claude-haiku-4-5 → opencode/gpt-5-nano | Doc retrieval doesn't need deep reasoning. Exact runtime chain from `src/shared/model-requirements.ts`. | -| **Multimodal Looker** | Vision/screenshots | openai\|opencode/gpt-5.5 (medium) → opencode-go/kimi-k2.5 → zai-coding-plan/glm-4.6v → openai\|github-copilot\|opencode/gpt-5-nano | GPT-5.5 now leads the default vision path when available. | +| **Multimodal Looker** | Vision/screenshots | openai\|opencode/gpt-5.5 (medium) → opencode-go/kimi-k2.6 → zai-coding-plan/glm-4.6v → openai\|github-copilot\|opencode/gpt-5-nano | GPT-5.5 now leads the default vision path when available. | #### Why Different Models Need Different Prompts diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 57a1295aa..cfe9bfb53 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -357,29 +357,29 @@ Capability data comes from provider runtime metadata first. OmO also ships bundl | Agent | Default Model | Provider Priority | | --------------------- | ------------------- | ---------------------------------------------------------------------------- | -| **Sisyphus** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/kimi-k2.5` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `zai-coding-plan\|opencode/glm-5` → `opencode/big-pickle` | +| **Sisyphus** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/kimi-k2.6` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `zai-coding-plan\|opencode/glm-5` → `opencode/big-pickle` | | **Hephaestus** | `gpt-5.5` | `gpt-5.5 (medium)` | -| **oracle** | `gpt-5.5` | `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5` | -| **librarian** | `gpt-5.4-mini-fast` | `openai/gpt-5.4-mini-fast` → `opencode-go\|vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | -| **explore** | `gpt-5.4-mini-fast` | `openai/gpt-5.4-mini-fast` → `opencode-go\|vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | -| **multimodal-looker** | `gpt-5.5` | `openai\|opencode/gpt-5.5 (medium)` → `opencode-go/kimi-k2.5` → `zai-coding-plan/glm-4.6v` → `openai\|github-copilot\|opencode/gpt-5-nano` | -| **Prometheus** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5` → `google\|github-copilot\|opencode/gemini-3.1-pro` | -| **Metis** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5` → `kimi-for-coding/k2p5` | -| **Momus** | `gpt-5.5` | `openai\|github-copilot\|opencode/gpt-5.5 (xhigh)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `opencode-go/glm-5` | -| **Atlas** | `claude-sonnet-4-6` | `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7` | +| **oracle** | `gpt-5.5` | `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5.1` | +| **librarian** | `gpt-5.4-mini-fast` | `openai/gpt-5.4-mini-fast` → `opencode-go/qwen3.5-plus` → `vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | +| **explore** | `gpt-5.4-mini-fast` | `openai/gpt-5.4-mini-fast` → `opencode-go/qwen3.5-plus` → `vercel/minimax-m2.7-highspeed` → `opencode-go\|vercel/minimax-m2.7` → `anthropic\|opencode\|vercel/claude-haiku-4-5` → `openai\|opencode\|vercel/gpt-5.4-nano` | +| **multimodal-looker** | `gpt-5.5` | `openai\|opencode/gpt-5.5 (medium)` → `opencode-go/kimi-k2.6` → `zai-coding-plan/glm-4.6v` → `openai\|github-copilot\|opencode/gpt-5-nano` | +| **Prometheus** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5.1` → `google\|github-copilot\|opencode/gemini-3.1-pro` | +| **Metis** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5.1` → `kimi-for-coding/k2p5` | +| **Momus** | `gpt-5.5` | `openai\|github-copilot\|opencode/gpt-5.5 (xhigh)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `opencode-go/glm-5.1` | +| **Atlas** | `claude-sonnet-4-6` | `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/kimi-k2.6` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7` | #### Category Provider Chains | Category | Default Model | Provider Priority | | ---------------------- | ------------------- | -------------------------------------------------------------- | -| **visual-engineering** | `gemini-3.1-pro` | `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `zai-coding-plan\|opencode/glm-5` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5` → `kimi-for-coding/k2p5` | -| **ultrabrain** | `gpt-5.5` | `openai\|opencode/gpt-5.5 (xhigh)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5` | +| **visual-engineering** | `gemini-3.1-pro` | `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `zai-coding-plan\|opencode/glm-5` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5.1` → `kimi-for-coding/k2p5` | +| **ultrabrain** | `gpt-5.5` | `openai\|opencode/gpt-5.5 (xhigh)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5.1` | | **deep** | `gpt-5.5` | `openai\|github-copilot\|venice\|opencode/gpt-5.5 (medium)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` | | **artistry** | `gemini-3.1-pro` | `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5` | | **quick** | `gpt-5.4-mini` | `openai\|github-copilot\|opencode/gpt-5.4-mini` → `anthropic\|github-copilot\|opencode/claude-haiku-4-5` → `google\|github-copilot\|opencode/gemini-3-flash` → `opencode-go/minimax-m2.7` → `opencode/gpt-5-nano` | -| **unspecified-low** | `claude-sonnet-4-6` | `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `openai\|opencode/gpt-5.3-codex (medium)` → `opencode-go/kimi-k2.5` → `google\|github-copilot\|opencode/gemini-3-flash` → `opencode-go/minimax-m2.7` | -| **unspecified-high** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `zai-coding-plan\|opencode/glm-5` → `kimi-for-coding/k2p5` → `opencode-go/glm-5` → `opencode/kimi-k2.5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` | -| **writing** | `gemini-3-flash` | `google\|github-copilot\|opencode/gemini-3-flash` → `opencode-go/kimi-k2.5` → `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/minimax-m2.7` | +| **unspecified-low** | `claude-sonnet-4-6` | `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `openai\|opencode/gpt-5.3-codex (medium)` → `opencode-go/kimi-k2.6` → `google\|github-copilot\|opencode/gemini-3-flash` → `opencode-go/minimax-m2.7` | +| **unspecified-high** | `claude-opus-4-7` | `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `zai-coding-plan\|opencode/glm-5` → `kimi-for-coding/k2p5` → `opencode-go/glm-5.1` → `opencode/kimi-k2.5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` | +| **writing** | `gemini-3-flash` | `google\|github-copilot\|opencode/gemini-3-flash` → `opencode-go/kimi-k2.6` → `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/minimax-m2.7` | Run `bunx oh-my-opencode doctor --verbose` to see effective model resolution for your config. diff --git a/docs/reference/features.md b/docs/reference/features.md index 29fe2272f..a1b8ba6e2 100644 --- a/docs/reference/features.md +++ b/docs/reference/features.md @@ -10,26 +10,26 @@ Core-agent tab cycling is deterministic via injected runtime order field. The fi | Agent | Model | Purpose | | --------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Sisyphus** | `claude-opus-4-7` | The default orchestrator. Plans, delegates, and executes complex tasks using specialized subagents with aggressive parallel execution. Todo-driven workflow with extended thinking (32k budget). Fallback: `opencode-go/kimi-k2.5` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `zai-coding-plan\|opencode/glm-5` → `opencode/big-pickle`. | +| **Sisyphus** | `claude-opus-4-7` | The default orchestrator. Plans, delegates, and executes complex tasks using specialized subagents with aggressive parallel execution. Todo-driven workflow with extended thinking (32k budget). Fallback: `opencode-go/kimi-k2.6` → `kimi-for-coding/k2p5` → `opencode\|moonshotai\|moonshotai-cn\|firmware\|ollama-cloud\|aihubmix/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `zai-coding-plan\|opencode/glm-5` → `opencode/big-pickle`. | | **Hephaestus** | `gpt-5.5` | The Legitimate Craftsman. Autonomous deep worker inspired by AmpCode's deep mode. Goal-oriented execution with thorough research before action. Explores codebase patterns, completes tasks end-to-end without premature stopping. Named after the Greek god of forge and craftsmanship. Requires a GPT-capable provider. | -| **Oracle** | `gpt-5.5` | Architecture decisions, code review, debugging. Read-only consultation with stellar logical reasoning and deep analysis. Inspired by AmpCode. Fallback: `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5`. | -| **Librarian** | `gpt-5.4-mini-fast` | Multi-repo analysis, documentation lookup, OSS implementation examples. Deep codebase understanding with evidence-based answers. Fallback: `opencode-go/minimax-m2.7-highspeed` → `opencode-go/minimax-m2.7` → `anthropic\|opencode/claude-haiku-4-5` → `openai\|opencode/gpt-5.4-nano`. | -| **Explore** | `gpt-5.4-mini-fast` | Fast codebase exploration and contextual grep. Fallback: `opencode-go/minimax-m2.7-highspeed` → `opencode-go/minimax-m2.7` → `anthropic\|opencode/claude-haiku-4-5` → `openai\|opencode/gpt-5.4-nano`. | -| **Multimodal-Looker** | `gpt-5.5` | Visual content specialist. Analyzes PDFs, images, diagrams to extract information. Fallback: `opencode-go/kimi-k2.5` → `zai-coding-plan/glm-4.6v` → `openai\|github-copilot\|opencode/gpt-5-nano`. | +| **Oracle** | `gpt-5.5` | Architecture decisions, code review, debugging. Read-only consultation with stellar logical reasoning and deep analysis. Inspired by AmpCode. Fallback: `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `opencode-go/glm-5.1`. | +| **Librarian** | `gpt-5.4-mini-fast` | Multi-repo analysis, documentation lookup, OSS implementation examples. Deep codebase understanding with evidence-based answers. Fallback: `opencode-go/qwen3.5-plus` → `opencode-go/minimax-m2.7` → `anthropic\|opencode/claude-haiku-4-5` → `openai\|opencode/gpt-5.4-nano`. | +| **Explore** | `gpt-5.4-mini-fast` | Fast codebase exploration and contextual grep. Fallback: `opencode-go/qwen3.5-plus` → `opencode-go/minimax-m2.7` → `anthropic\|opencode/claude-haiku-4-5` → `openai\|opencode/gpt-5.4-nano`. | +| **Multimodal-Looker** | `gpt-5.5` | Visual content specialist. Analyzes PDFs, images, diagrams to extract information. Fallback: `opencode-go/kimi-k2.6` → `zai-coding-plan/glm-4.6v` → `openai\|github-copilot\|opencode/gpt-5-nano`. | ### Planning Agents | Agent | Model | Purpose | | -------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Prometheus** | `claude-opus-4-7` | Strategic planner with interview mode. Creates detailed work plans through iterative questioning. Fallback: `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5` → `google\|github-copilot\|opencode/gemini-3.1-pro`. | -| **Metis** | `claude-opus-4-7` | Plan consultant — pre-planning analysis. Identifies hidden intentions, ambiguities, and AI failure points. Fallback: `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5` → `kimi-for-coding/k2p5`. | -| **Momus** | `gpt-5.5` | Plan reviewer — validates plans against clarity, verifiability, and completeness standards. Fallback: `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `opencode-go/glm-5`. | +| **Prometheus** | `claude-opus-4-7` | Strategic planner with interview mode. Creates detailed work plans through iterative questioning. Fallback: `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5.1` → `google\|github-copilot\|opencode/gemini-3.1-pro`. | +| **Metis** | `claude-opus-4-7` | Plan consultant — pre-planning analysis. Identifies hidden intentions, ambiguities, and AI failure points. Fallback: `openai\|github-copilot\|opencode/gpt-5.5 (high)` → `opencode-go/glm-5.1` → `kimi-for-coding/k2p5`. | +| **Momus** | `gpt-5.5` | Plan reviewer — validates plans against clarity, verifiability, and completeness standards. Fallback: `anthropic\|github-copilot\|opencode/claude-opus-4-7 (max)` → `google\|github-copilot\|opencode/gemini-3.1-pro (high)` → `opencode-go/glm-5.1`. | ### Orchestration Agents | Agent | Model | Purpose | | ------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Atlas** | `claude-sonnet-4-6` | Todo-list orchestrator. Executes planned tasks systematically, managing todo items and coordinating work. Fallback: `opencode-go/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7`. | -| **Sisyphus-Junior** | _(category-dependent)_ | Category-spawned executor. Model is selected automatically based on the task category (visual-engineering, quick, deep, etc.). Its built-in general fallback chain is `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/kimi-k2.5` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7` → `opencode/big-pickle`. | +| **Atlas** | `claude-sonnet-4-6` | Todo-list orchestrator. Executes planned tasks systematically, managing todo items and coordinating work. Fallback: `opencode-go/kimi-k2.6` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7`. | +| **Sisyphus-Junior** | _(category-dependent)_ | Category-spawned executor. Model is selected automatically based on the task category (visual-engineering, quick, deep, etc.). Its built-in general fallback chain is `anthropic\|github-copilot\|opencode/claude-sonnet-4-6` → `opencode-go/kimi-k2.6` → `openai\|github-copilot\|opencode/gpt-5.5 (medium)` → `opencode-go/minimax-m2.7` → `opencode/big-pickle`. | ### Invoking Agents diff --git a/src/agents/AGENTS.md b/src/agents/AGENTS.md index bd7fe1136..7f86b4a82 100644 --- a/src/agents/AGENTS.md +++ b/src/agents/AGENTS.md @@ -15,11 +15,11 @@ Agent factories following `createXXXAgent(model) → AgentConfig` pattern. Each | Agent | Model | Temp | Mode | Fallback Chain | Purpose | |-------|-------|------|------|----------------|---------| -| **Sisyphus** | claude-opus-4-7 max | 0.1 | all | k2p5 -> kimi-k2.5 -> gpt-5.5 medium -> glm-5 -> big-pickle | Main orchestrator, plans + delegates | +| **Sisyphus** | claude-opus-4-7 max | 0.1 | all | k2p5 -> kimi-k2.6 -> gpt-5.5 medium -> glm-5 -> big-pickle | Main orchestrator, plans + delegates | | **Hephaestus** | gpt-5.5 medium | 0.1 | all | — | Autonomous deep worker | | **Oracle** | gpt-5.5 high | 0.1 | subagent | gemini-3.1-pro high -> claude-opus-4-7 max | Read-only consultation | -| **Librarian** | gpt-5.4-mini-fast | 0.1 | subagent | minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | External docs/code search | -| **Explore** | gpt-5.4-mini-fast | 0.1 | subagent | minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | Contextual grep | +| **Librarian** | gpt-5.4-mini-fast | 0.1 | subagent | qwen3.5-plus -> minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | External docs/code search | +| **Explore** | gpt-5.4-mini-fast | 0.1 | subagent | qwen3.5-plus -> minimax-m2.7-highspeed -> minimax-m2.7 -> claude-haiku-4-5 -> gpt-5.4-nano | Contextual grep | | **Multimodal-Looker** | gpt-5.3-codex medium | 0.1 | subagent | k2p5 -> gemini-3-flash -> glm-4.6v -> gpt-5-nano | PDF/image analysis | | **Metis** | claude-opus-4-7 max | **0.3** | subagent | gpt-5.5 high -> gemini-3.1-pro high | Pre-planning consultant | | **Momus** | gpt-5.5 xhigh | 0.1 | subagent | claude-opus-4-7 max -> gemini-3.1-pro high | Plan reviewer | From b7d77da88fcaa13d139d8df902d471ae853d8b1c Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 15:11:51 +0200 Subject: [PATCH 4/7] fix(capabilities): add kimi-k2.6 to supplemental model entries kimi-k2.6 is referenced in fallback chains but missing from the bundled snapshot (which only has kimi-k2.5). Added supplemental entry with specs matching models.dev data. --- .../model-capabilities/supplemental-entries.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/shared/model-capabilities/supplemental-entries.ts b/src/shared/model-capabilities/supplemental-entries.ts index 20ef10c71..cb652a561 100644 --- a/src/shared/model-capabilities/supplemental-entries.ts +++ b/src/shared/model-capabilities/supplemental-entries.ts @@ -1,6 +1,21 @@ import type { ModelCapabilitiesSnapshotEntry } from "./types" export const SUPPLEMENTAL_MODEL_CAPABILITIES: Record = { + "kimi-k2.6": { + id: "kimi-k2.6", + family: "kimi", + reasoning: true, + temperature: true, + toolCall: true, + modalities: { + input: ["text", "image", "video"], + output: ["text"], + }, + limit: { + context: 262144, + output: 262144, + }, + }, "gpt-5.5": { id: "gpt-5.5", family: "gpt", From 467a4a5eed76ee047991b7a9a509cf06d2b1e0df Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 15:30:04 +0200 Subject: [PATCH 5/7] fix(test): use toContain instead of providers[0].toBe for multi-provider entries Restore consistent assertion style in librarian and explore tests. Multi-provider entries like ["opencode-go", "vercel"] should use toContain() not providers[0].toBe() to match the established pattern. --- src/shared/model-requirements.test.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shared/model-requirements.test.ts b/src/shared/model-requirements.test.ts index 33d53fea1..b6e753f91 100644 --- a/src/shared/model-requirements.test.ts +++ b/src/shared/model-requirements.test.ts @@ -79,7 +79,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(primary.model).toBe("gpt-5.4-mini-fast") const second = librarian.fallbackChain[1] - expect(second.providers[0]).toBe("opencode-go") + expect(second.providers).toContain("opencode-go") expect(second.model).toBe("qwen3.5-plus") const third = librarian.fallbackChain[2] @@ -87,7 +87,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(third.model).toBe("minimax-m2.7-highspeed") const quaternary = librarian.fallbackChain[3] - expect(quaternary.providers[0]).toBe("opencode-go") + expect(quaternary.providers).toContain("opencode-go") expect(quaternary.model).toBe("minimax-m2.7") const quinary = librarian.fallbackChain[4] @@ -113,7 +113,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(primary.model).toBe("gpt-5.4-mini-fast") const secondary = explore.fallbackChain[1] - expect(secondary.providers[0]).toBe("opencode-go") + expect(secondary.providers).toContain("opencode-go") expect(secondary.model).toBe("qwen3.5-plus") const third = explore.fallbackChain[2] @@ -121,7 +121,7 @@ describe("AGENT_MODEL_REQUIREMENTS", () => { expect(third.model).toBe("minimax-m2.7-highspeed") const quaternary = explore.fallbackChain[3] - expect(quaternary.providers[0]).toBe("opencode-go") + expect(quaternary.providers).toContain("opencode-go") expect(quaternary.model).toBe("minimax-m2.7") const quinary = explore.fallbackChain[4] From df7f64db3c0ca60adcf9c7d354f604ea91bb51db Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 16:10:50 +0200 Subject: [PATCH 6/7] fix(docs): correct Explore and Librarian fallback chains in installation guide The documented chains were missing entries and had wrong providers: - Librarian was missing openai/gpt-5.4-mini-fast, vercel/minimax-m2.7-highspeed, and the last two entries. Also had opencode/ instead of vercel/ for minimax-m2.7-highspeed. - Explore had github-copilot|xai/grok-code-fast-1 as primary (which doesn't exist in the fallback chain) and was missing openai/gpt-5.4-mini-fast. Both now match the exact runtime chains from model-requirements.ts. --- docs/guide/installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guide/installation.md b/docs/guide/installation.md index e6c883edc..9d58040e3 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -359,8 +359,8 @@ These agents do search, grep, and retrieval. They intentionally use fast, cheap | Agent | Role | Default Chain | Design Rationale | | --------------------- | ------------------ | ---------------------------------------------------------------------- | -------------------------------------------------------------- | -| **Explore** | Fast codebase grep | github-copilot\|xai/grok-code-fast-1 → opencode-go/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode/minimax-m2.7 → anthropic\|opencode/claude-haiku-4-5 → opencode/gpt-5-nano | Speed is everything. Exact runtime chain from `src/shared/model-requirements.ts`. | -| **Librarian** | Docs/code search | opencode-go/minimax-m2.7 → opencode/minimax-m2.7-highspeed → anthropic\|opencode/claude-haiku-4-5 → opencode/gpt-5-nano | Doc retrieval doesn't need deep reasoning. Exact runtime chain from `src/shared/model-requirements.ts`. | +| **Explore** | Fast codebase grep | openai/gpt-5.4-mini-fast → opencode-go/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode-go\|vercel/minimax-m2.7 → anthropic\|opencode\|vercel/claude-haiku-4-5 → openai\|opencode\|vercel/gpt-5.4-nano | Speed is everything. Exact runtime chain from `src/shared/model-requirements.ts`. | +| **Librarian** | Docs/code search | openai/gpt-5.4-mini-fast → opencode-go/qwen3.5-plus → vercel/minimax-m2.7-highspeed → opencode-go\|vercel/minimax-m2.7 → anthropic\|opencode\|vercel/claude-haiku-4-5 → openai\|opencode\|vercel/gpt-5.4-nano | Doc retrieval doesn't need deep reasoning. Exact runtime chain from `src/shared/model-requirements.ts`. | | **Multimodal Looker** | Vision/screenshots | openai\|opencode/gpt-5.5 (medium) → opencode-go/kimi-k2.6 → zai-coding-plan/glm-4.6v → openai\|github-copilot\|opencode/gpt-5-nano | GPT-5.5 now leads the default vision path when available. | #### Why Different Models Need Different Prompts From f31860b17d99049718ed45c91670371f121e5295 Mon Sep 17 00:00:00 2001 From: Samuele Domenico Ruffino Date: Thu, 23 Apr 2026 16:26:09 +0200 Subject: [PATCH 7/7] fix(docs): resolve model table inconsistencies in installation guide - Add Qwen 3.5 Plus to Different-Behavior Models table (new opencode-go model) - Fix MiniMax M2.7 Highspeed providers: opencode-go removed, vercel added - Split Kimi K2.5/K2.6 entries: K2.6 on opencode-go/vercel, K2.5 on other providers - Add GLM 5.1 entry for opencode-go/vercel alongside existing GLM 5 - Add vercel to MiniMax M2.7 providers --- docs/guide/installation.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/guide/installation.md b/docs/guide/installation.md index 9d58040e3..1799d275c 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -291,8 +291,10 @@ Not all models behave the same way. Understanding which models are "similar" hel | **Claude Opus 4.7** | anthropic, github-copilot, opencode | Best overall. Default for Sisyphus. | | **Claude Sonnet 4.6** | anthropic, github-copilot, opencode | Faster, cheaper. Good balance. | | **Claude Haiku 4.5** | anthropic, opencode | Fast and cheap. Good for quick tasks. | -| **Kimi K2.5** | kimi-for-coding, opencode-go, opencode, moonshotai, moonshotai-cn, firmware, ollama-cloud, aihubmix | Behaves very similarly to Claude. Great all-rounder that appears in several orchestration fallback chains. | +| **Kimi K2.6** | opencode-go, vercel | Behaves very similarly to Claude. Great all-rounder that appears in several orchestration fallback chains. | +| **Kimi K2.5** | kimi-for-coding, opencode, moonshotai, moonshotai-cn, firmware, ollama-cloud, aihubmix | Claude-like behavior. Available on multiple providers. | | **Kimi K2.5 Free** | opencode | Free-tier Kimi. Rate-limited but functional. | +| **GLM 5.1** | opencode-go, vercel | Claude-like behavior. Upgraded from GLM-5 on opencode-go. | | **GLM 5** | zai-coding-plan, opencode | Claude-like behavior. Good for broad tasks. | | **Big Pickle (GLM 4.6)** | opencode | Free-tier GLM. Decent fallback. | @@ -311,8 +313,9 @@ Not all models behave the same way. Understanding which models are "similar" hel | --------------------- | -------------------------------- | ----------------------------------------------------------- | | **Gemini 3.1 Pro** | google, github-copilot, opencode | Excels at visual/frontend tasks. Different reasoning style. | | **Gemini 3 Flash** | google, github-copilot, opencode | Fast, good for doc search and light tasks. | -| **MiniMax M2.7** | opencode-go, opencode | Fast and smart. Utility fallbacks use `minimax-m2.7` or `minimax-m2.7-highspeed` depending on the chain. | -| **MiniMax M2.7 Highspeed** | opencode-go, opencode | Faster utility variant used in Explore and other retrieval-heavy fallback chains. | +| **MiniMax M2.7** | opencode-go, opencode, vercel | Fast and smart. Utility fallbacks use `minimax-m2.7` or `minimax-m2.7-highspeed` depending on the chain. | +| **MiniMax M2.7 Highspeed** | vercel, opencode | Faster utility variant used in Explore and other retrieval-heavy fallback chains. | +| **Qwen 3.5 Plus** | opencode-go | 1M context, high-speed reasoning. Default for Explore and Librarian when GPT-5.4 Mini Fast is unavailable. | **Speed-Focused Models**: @@ -320,7 +323,7 @@ Not all models behave the same way. Understanding which models are "similar" hel | ----------------------- | ---------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | **Grok Code Fast 1** | github-copilot, xai | Very fast | Optimized for code grep/search. Default for Explore. | | **Claude Haiku 4.5** | anthropic, opencode | Fast | Good balance of speed and intelligence. | -| **MiniMax M2.7 Highspeed** | opencode-go, opencode | Very fast | High-speed MiniMax utility fallback used by runtime chains such as Explore and, on the OpenCode catalog, Librarian. | +| **MiniMax M2.7 Highspeed** | vercel, opencode | Very fast | High-speed MiniMax utility fallback used by runtime chains such as Explore and, on the OpenCode catalog, Librarian. | | **GPT-5.3-codex-spark** | openai | Extremely fast | Blazing fast but compacts so aggressively that oh-my-openagent's context management doesn't work well with it. Not recommended for omo agents. | #### What Each Agent Does and Which Model It Got