fix: retry model fallback on rate limits

This commit is contained in:
CI
2026-01-05 18:04:36 +01:00
committed by Peter Steinberger
parent 7900d33701
commit 5622dfe86b
3 changed files with 52 additions and 0 deletions

View File

@@ -32,6 +32,7 @@ import {
buildBootstrapContextFiles,
ensureSessionHeader,
formatAssistantErrorText,
isRateLimitAssistantError,
sanitizeSessionMessagesImages,
} from "./pi-embedded-helpers.js";
import {
@@ -551,6 +552,16 @@ export async function runEmbeddedPiAgent(params: {
| AssistantMessage
| undefined;
const fallbackConfigured =
(params.config?.agent?.modelFallbacks?.length ?? 0) > 0;
if (fallbackConfigured && isRateLimitAssistantError(lastAssistant)) {
const message =
lastAssistant?.errorMessage?.trim() ||
(lastAssistant ? formatAssistantErrorText(lastAssistant) : "") ||
"LLM request rate limited.";
throw new Error(message);
}
const usage = lastAssistant?.usage;
const agentMeta: EmbeddedPiAgentMeta = {
sessionId: sessionIdUsed,