fix: max output tokens when setting budget thinking tokens (#2056)

Co-authored-by: rekram1-node <aidenpcline@gmail.com>
This commit is contained in:
Ytzhak
2025-09-07 14:15:53 -04:00
committed by GitHub
parent e915a3720e
commit 4654fb88de
2 changed files with 15 additions and 1 deletions

View File

@@ -98,4 +98,18 @@ export namespace ProviderTransform {
}
return result
}
export function maxOutputTokens(providerID: string, outputLimit: number, options: Record<string, any>): number {
if (providerID === "anthropic") {
const thinking = options["thinking"]
if (typeof thinking === "object" && thinking !== null) {
const type = thinking["type"]
const budgetTokens = thinking["budgetTokens"]
if (type === "enabled" && typeof budgetTokens === "number" && budgetTokens > 0) {
return outputLimit - budgetTokens
}
}
}
return outputLimit
}
}

View File

@@ -1019,7 +1019,7 @@ export namespace Session {
: undefined,
maxRetries: 3,
activeTools: Object.keys(tools).filter((x) => x !== "invalid"),
maxOutputTokens: outputLimit,
maxOutputTokens: ProviderTransform.maxOutputTokens(model.providerID, outputLimit, params.options),
abortSignal: abort.signal,
stopWhen: async ({ steps }) => {
if (steps.length >= 1000) {