From 0ed550d09ae55826dec2a5f87f359fda56a1655f Mon Sep 17 00:00:00 2001 From: jiarung Date: Mon, 9 Mar 2026 15:16:43 +0000 Subject: [PATCH] fix(logging): include model and provider in overload/error log When an embedded agent run ends with an error (e.g. overloaded_error), the warn log now includes the model and provider that triggered the error. Before: embedded run agent end: runId=xxx isError=true error=The AI service is temporarily overloaded... After: embedded run agent end: runId=xxx isError=true model=claude-sonnet-4-6 provider=anthropic error=The AI service is temporarily overloaded... This makes it easy to correlate which model/provider is failing without needing to cross-reference token-usage.json. --- src/agents/pi-embedded-subscribe.handlers.lifecycle.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/agents/pi-embedded-subscribe.handlers.lifecycle.ts b/src/agents/pi-embedded-subscribe.handlers.lifecycle.ts index c666784ff8e..973de1ebefc 100644 --- a/src/agents/pi-embedded-subscribe.handlers.lifecycle.ts +++ b/src/agents/pi-embedded-subscribe.handlers.lifecycle.ts @@ -48,6 +48,8 @@ export function handleAgentEnd(ctx: EmbeddedPiSubscribeContext) { const safeErrorText = buildTextObservationFields(errorText).textPreview ?? "LLM request failed."; const safeRunId = sanitizeForConsole(ctx.params.runId) ?? "-"; + const safeModel = sanitizeForConsole(lastAssistant.model) ?? "unknown"; + const safeProvider = sanitizeForConsole(lastAssistant.provider) ?? "unknown"; ctx.log.warn("embedded run agent end", { event: "embedded_run_agent_end", tags: ["error_handling", "lifecycle", "agent_end", "assistant_error"], @@ -55,10 +57,10 @@ export function handleAgentEnd(ctx: EmbeddedPiSubscribeContext) { isError: true, error: safeErrorText, failoverReason, - provider: lastAssistant.provider, model: lastAssistant.model, + provider: lastAssistant.provider, ...observedError, - consoleMessage: `embedded run agent end: runId=${safeRunId} isError=true error=${safeErrorText}`, + consoleMessage: `embedded run agent end: runId=${safeRunId} isError=true model=${safeModel} provider=${safeProvider} error=${safeErrorText}`, }); emitAgentEvent({ runId: ctx.params.runId,