diff --git a/apps/open-swe/src/types.ts b/apps/open-swe/src/types.ts index 3689d2f1..f39e00a2 100644 --- a/apps/open-swe/src/types.ts +++ b/apps/open-swe/src/types.ts @@ -343,6 +343,24 @@ export const GraphConfiguration = z.object({ "Maximum number of context gathering actions during planning", }, }), + /** + * The maximum number of tokens to generate in an individual generation. + * @default 10_000 + */ + maxTokens: z + .number() + .optional() + .default(() => 10_000) + .langgraph.metadata({ + x_oap_ui_config: { + type: "number", + default: 10_000, + min: 1, + max: 64_000, + description: + "The maximum number of tokens to generate in an individual generation", + }, + }), }); export type GraphConfig = LangGraphRunnableConfig< diff --git a/apps/open-swe/src/utils/load-model.ts b/apps/open-swe/src/utils/load-model.ts index f1d8704a..e71df9f6 100644 --- a/apps/open-swe/src/utils/load-model.ts +++ b/apps/open-swe/src/utils/load-model.ts @@ -65,7 +65,7 @@ export async function loadModel(config: GraphConfig, task: Task) { thinking: { budget_tokens: thinkingBudgetTokens, type: "enabled" }, maxTokens, } - : { maxTokens: 5_000 }), + : { maxTokens: config.configurable?.maxTokens ?? 10_000 }), }); return model;