diff --git a/packages/core/src/core/baseLlmClient.test.ts b/packages/core/src/core/baseLlmClient.test.ts index 8405aec78a..c7671e86fd 100644 --- a/packages/core/src/core/baseLlmClient.test.ts +++ b/packages/core/src/core/baseLlmClient.test.ts @@ -207,7 +207,7 @@ describe('BaseLlmClient', () => { await client.generateJson(defaultOptions); expect(retryWithBackoff).toHaveBeenCalledWith(expect.any(Function), { - maxAttempts: undefined, + maxAttempts: 5, }); }); }); diff --git a/packages/core/src/core/baseLlmClient.ts b/packages/core/src/core/baseLlmClient.ts index e76cb4cfb9..4dc86eddd5 100644 --- a/packages/core/src/core/baseLlmClient.ts +++ b/packages/core/src/core/baseLlmClient.ts @@ -19,6 +19,8 @@ import { logMalformedJsonResponse } from '../telemetry/loggers.js'; import { MalformedJsonResponseEvent } from '../telemetry/types.js'; import { retryWithBackoff } from '../utils/retry.js'; +const DEFAULT_MAX_ATTEMPTS = 5; + /** * Options for the generateJson utility function. */ @@ -105,7 +107,9 @@ export class BaseLlmClient { promptId, ); - const result = await retryWithBackoff(apiCall, { maxAttempts }); + const result = await retryWithBackoff(apiCall, { + maxAttempts: maxAttempts ?? DEFAULT_MAX_ATTEMPTS, + }); let text = getResponseText(result)?.trim(); if (!text) {