diff options
| author | N. Taylor Mullen <[email protected]> | 2025-05-30 10:57:00 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-05-30 17:57:00 +0000 |
| commit | 8c46108a852128d1d0792c149746631d83fc58cf (patch) | |
| tree | 4d3ca2e8abd03e3722a1a75fce0dc752752a391c /packages/server/src/tools/web-fetch.ts | |
| parent | c5608869c00c433a468fe5e88bcbafd83f6599a1 (diff) | |
feat: Implement retry with backoff for API calls (#613)
Diffstat (limited to 'packages/server/src/tools/web-fetch.ts')
| -rw-r--r-- | packages/server/src/tools/web-fetch.ts | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/packages/server/src/tools/web-fetch.ts b/packages/server/src/tools/web-fetch.ts index 7a8a1515..24617902 100644 --- a/packages/server/src/tools/web-fetch.ts +++ b/packages/server/src/tools/web-fetch.ts @@ -10,6 +10,7 @@ import { BaseTool, ToolResult } from './tools.js'; import { getErrorMessage } from '../utils/errors.js'; import { Config } from '../config/config.js'; import { getResponseText } from '../utils/generateContentResponseUtilities.js'; +import { retryWithBackoff } from '../utils/retry.js'; // Interfaces for grounding metadata (similar to web-search.ts) interface GroundingChunkWeb { @@ -121,18 +122,21 @@ export class WebFetchTool extends BaseTool<WebFetchToolParams, ToolResult> { const userPrompt = params.prompt; try { - const response = await this.ai.models.generateContent({ - model: this.modelName, - contents: [ - { - role: 'user', - parts: [{ text: userPrompt }], + const apiCall = () => + this.ai.models.generateContent({ + model: this.modelName, + contents: [ + { + role: 'user', + parts: [{ text: userPrompt }], + }, + ], + config: { + tools: [{ urlContext: {} }], }, - ], - config: { - tools: [{ urlContext: {} }], - }, - }); + }); + + const response = await retryWithBackoff(apiCall); console.debug( `[WebFetchTool] Full response for prompt "${userPrompt.substring(0, 50)}...":`, |
