diff --git a/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts b/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts index 3c8d73c9..dc840cbc 100644 --- a/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts +++ b/apps/open-swe/src/graphs/planner/nodes/generate-message/index.ts @@ -86,12 +86,10 @@ export async function generateAction( `MCP tools added to Planner: ${mcpTools.map((t) => t.name).join(", ")}`, ); // Cache Breakpoint 1: Add cache_control marker to the last tool for tools definition caching - if (tools.length > 0) { - tools[tools.length - 1] = { - ...tools[tools.length - 1], - cache_control: { type: "ephemeral" }, - } as any; - } + tools[tools.length - 1] = { + ...tools[tools.length - 1], + cache_control: { type: "ephemeral" }, + } as any; const modelWithTools = model.bindTools(tools, { tool_choice: "auto", diff --git a/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts b/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts index 0e2e8177..7ac49617 100644 --- a/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts +++ b/apps/open-swe/src/graphs/programmer/nodes/generate-message/index.ts @@ -137,14 +137,11 @@ export async function generateAction( logger.info( `MCP tools added to Programmer: ${mcpTools.map((t) => t.name).join(", ")}`, ); - // Cache Breakpoint 1: Add cache_control marker to the last tool for tools definition caching - if (tools.length > 0) { - tools[tools.length - 1] = { - ...tools[tools.length - 1], - cache_control: { type: "ephemeral" }, - } as any; - } + tools[tools.length - 1] = { + ...tools[tools.length - 1], + cache_control: { type: "ephemeral" }, + } as any; const modelWithTools = model.bindTools(tools, { tool_choice: "auto", diff --git a/apps/open-swe/src/graphs/reviewer/nodes/generate-review-actions/index.ts b/apps/open-swe/src/graphs/reviewer/nodes/generate-review-actions/index.ts index 2a5c70ef..85357cfd 100644 --- a/apps/open-swe/src/graphs/reviewer/nodes/generate-review-actions/index.ts +++ b/apps/open-swe/src/graphs/reviewer/nodes/generate-review-actions/index.ts @@ -120,6 +120,11 @@ export async function generateReviewActions( createShellTool(state), createInstallDependenciesTool(state), ]; + tools[tools.length - 1] = { + ...tools[tools.length - 1], + cache_control: { type: "ephemeral" }, + } as any; + const modelWithTools = model.bindTools(tools, { tool_choice: "auto", ...(modelSupportsParallelToolCallsParam diff --git a/apps/open-swe/src/utils/user-request.ts b/apps/open-swe/src/utils/user-request.ts index 8ebfaf24..050d5d69 100644 --- a/apps/open-swe/src/utils/user-request.ts +++ b/apps/open-swe/src/utils/user-request.ts @@ -89,10 +89,10 @@ export function formatUserRequestPrompt( const userFollowupRequest = getRecentUserRequest(messages); if (userFollowupRequest) { - return singleRequestPrompt + return followupRequestPrompt .replace("{USER_REQUEST}", userRequest) .replace("{USER_FOLLOWUP_REQUEST}", userFollowupRequest); } - return followupRequestPrompt.replace("{USER_REQUEST}", userRequest); + return singleRequestPrompt.replace("{USER_REQUEST}", userRequest); }