fix: default low thinking for reasoning models

This commit is contained in:
Peter Steinberger
2026-01-03 12:18:50 +00:00
parent 6e16c0699a
commit b6301c719b
14 changed files with 308 additions and 20 deletions

View File

@@ -10,6 +10,7 @@ import {
buildAllowedModelSet,
modelKey,
resolveConfiguredModelRef,
resolveThinkingDefault,
} from "../agents/model-selection.js";
import { runEmbeddedPiAgent } from "../agents/pi-embedded.js";
import { buildWorkspaceSkillSnapshot } from "../agents/skills.js";
@@ -211,7 +212,7 @@ export async function agentCommand(
registerAgentRunContext(sessionId, { sessionKey });
}
const resolvedThinkLevel =
let resolvedThinkLevel =
thinkOnce ??
thinkOverride ??
persistedThinking ??
@@ -275,15 +276,18 @@ export async function agentCommand(
);
const needsModelCatalog = hasAllowlist || hasStoredOverride;
let allowedModelKeys = new Set<string>();
let allowedModelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> = [];
let modelCatalog: Awaited<ReturnType<typeof loadModelCatalog>> | null = null;
if (needsModelCatalog) {
const catalog = await loadModelCatalog({ config: cfg });
modelCatalog = await loadModelCatalog({ config: cfg });
const allowed = buildAllowedModelSet({
cfg,
catalog,
catalog: modelCatalog,
defaultProvider,
});
allowedModelKeys = allowed.allowedKeys;
allowedModelCatalog = allowed.allowedCatalog;
}
if (sessionEntry && sessionStore && sessionKey && hasStoredOverride) {
@@ -312,6 +316,20 @@ export async function agentCommand(
model = storedModelOverride;
}
}
if (!resolvedThinkLevel) {
let catalogForThinking = modelCatalog ?? allowedModelCatalog;
if (!catalogForThinking || catalogForThinking.length === 0) {
modelCatalog = await loadModelCatalog({ config: cfg });
catalogForThinking = modelCatalog;
}
resolvedThinkLevel = resolveThinkingDefault({
cfg,
provider,
model,
catalog: catalogForThinking,
});
}
const sessionFile = resolveSessionTranscriptPath(sessionId);
const startedAt = Date.now();