diff --git a/packages/opencode/src/tool/task.ts b/packages/opencode/src/tool/task.ts index 46253a24ce..ad5872cab9 100644 --- a/packages/opencode/src/tool/task.ts +++ b/packages/opencode/src/tool/task.ts @@ -101,7 +101,7 @@ export const TaskTool = Tool.define( const msg = yield* Effect.sync(() => MessageV2.get({ sessionID: ctx.sessionID, messageID: ctx.messageID })) if (msg.info.role !== "assistant") return yield* Effect.fail(new Error("Not an assistant message")) - const smallModel = next.model ? undefined : yield* provider.getSmallModel(msg.info.providerID) + const smallModel = !next.model && next.name === "explore" ? yield* provider.getSmallModel(msg.info.providerID) : undefined const model = next.model ?? { modelID: smallModel?.id ?? msg.info.modelID, providerID: smallModel?.providerID ?? msg.info.providerID, diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index c2c0edf31d..b3b7a60a05 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -276,7 +276,7 @@ describe("tool.task", () => { ), ) - it.live("execute defaults subagents to the provider small model", () => + it.live("execute defaults explore agents to the provider small model", () => provideTmpdirInstance( () => Effect.gen(function* () { @@ -294,7 +294,7 @@ describe("tool.task", () => { { description: "inspect bug", prompt: "look into the cache key path", - subagent_type: "general", + subagent_type: "explore", }, { sessionID: chat.id,