langchain
Version:
Typescript bindings for langchain
1 lines • 7.98 kB
Source Map (JSON)
{"version":3,"file":"modelRetry.d.ts","names":["z","AgentMiddleware","ModelRetryMiddlewareOptionsSchema","ZodLiteral","Error","ZodTypeDef","ZodType","ZodUnknown","ZodTuple","ZodString","ZodFunction","ZodUnion","ZodDefault","ZodNumber","ZodBoolean","ZodArray","ZodTypeAny","ZodObject","ModelRetryMiddlewareConfig","input","modelRetryMiddleware"],"sources":["../../../src/agents/middleware/modelRetry.d.ts"],"sourcesContent":["/**\n * Model retry middleware for agents.\n */\nimport { z } from \"zod/v3\";\nimport type { AgentMiddleware } from \"./types.js\";\n/**\n * Configuration options for the Model Retry Middleware.\n */\nexport declare const ModelRetryMiddlewareOptionsSchema: z.ZodObject<{\n /**\n * Behavior when all retries are exhausted. Options:\n * - `\"continue\"` (default): Return an AIMessage with error details, allowing\n * the agent to potentially handle the failure gracefully.\n * - `\"error\"`: Re-raise the exception, stopping agent execution.\n * - Custom function: Function that takes the exception and returns a string\n * for the AIMessage content, allowing custom error formatting.\n */\n onFailure: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<\"error\">, z.ZodLiteral<\"continue\">, z.ZodFunction<z.ZodTuple<[z.ZodType<Error, z.ZodTypeDef, Error>], z.ZodUnknown>, z.ZodString>]>>;\n} & {\n maxRetries: z.ZodDefault<z.ZodNumber>;\n retryOn: z.ZodDefault<z.ZodUnion<[z.ZodFunction<z.ZodTuple<[z.ZodType<Error, z.ZodTypeDef, Error>], z.ZodUnknown>, z.ZodBoolean>, z.ZodArray<z.ZodType<new (...args: any[]) => Error, z.ZodTypeDef, new (...args: any[]) => Error>, \"many\">]>>;\n backoffFactor: z.ZodDefault<z.ZodNumber>;\n initialDelayMs: z.ZodDefault<z.ZodNumber>;\n maxDelayMs: z.ZodDefault<z.ZodNumber>;\n jitter: z.ZodDefault<z.ZodBoolean>;\n}, \"strip\", z.ZodTypeAny, {\n maxRetries: number;\n retryOn: (new (...args: any[]) => Error)[] | ((args_0: Error, ...args: unknown[]) => boolean);\n backoffFactor: number;\n initialDelayMs: number;\n maxDelayMs: number;\n jitter: boolean;\n onFailure: \"continue\" | \"error\" | ((args_0: Error, ...args: unknown[]) => string);\n}, {\n maxRetries?: number | undefined;\n retryOn?: (new (...args: any[]) => Error)[] | ((args_0: Error, ...args: unknown[]) => boolean) | undefined;\n backoffFactor?: number | undefined;\n initialDelayMs?: number | undefined;\n maxDelayMs?: number | undefined;\n jitter?: boolean | undefined;\n onFailure?: \"continue\" | \"error\" | ((args_0: Error, ...args: unknown[]) => string) | undefined;\n}>;\nexport type ModelRetryMiddlewareConfig = z.input<typeof ModelRetryMiddlewareOptionsSchema>;\n/**\n * Middleware that automatically retries failed model calls with configurable backoff.\n *\n * Supports retrying on specific exceptions and exponential backoff.\n *\n * @example Basic usage with default settings (2 retries, exponential backoff)\n * ```ts\n * import { createAgent, modelRetryMiddleware } from \"langchain\";\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [searchTool],\n * middleware: [modelRetryMiddleware()],\n * });\n * ```\n *\n * @example Retry specific exceptions only\n * ```ts\n * import { modelRetryMiddleware } from \"langchain\";\n *\n * const retry = modelRetryMiddleware({\n * maxRetries: 4,\n * retryOn: [TimeoutError, NetworkError],\n * backoffFactor: 1.5,\n * });\n * ```\n *\n * @example Custom exception filtering\n * ```ts\n * function shouldRetry(error: Error): boolean {\n * // Only retry on rate limit errors\n * if (error.name === \"RateLimitError\") {\n * return true;\n * }\n * // Or check for specific HTTP status codes\n * if (error.name === \"HTTPError\" && \"statusCode\" in error) {\n * const statusCode = (error as any).statusCode;\n * return statusCode === 429 || statusCode === 503;\n * }\n * return false;\n * }\n *\n * const retry = modelRetryMiddleware({\n * maxRetries: 3,\n * retryOn: shouldRetry,\n * });\n * ```\n *\n * @example Return error message instead of raising\n * ```ts\n * const retry = modelRetryMiddleware({\n * maxRetries: 4,\n * onFailure: \"continue\", // Return AIMessage with error instead of throwing\n * });\n * ```\n *\n * @example Custom error message formatting\n * ```ts\n * const formatError = (error: Error) =>\n * `Model call failed: ${error.message}. Please try again later.`;\n *\n * const retry = modelRetryMiddleware({\n * maxRetries: 4,\n * onFailure: formatError,\n * });\n * ```\n *\n * @example Constant backoff (no exponential growth)\n * ```ts\n * const retry = modelRetryMiddleware({\n * maxRetries: 5,\n * backoffFactor: 0.0, // No exponential growth\n * initialDelayMs: 2000, // Always wait 2 seconds\n * });\n * ```\n *\n * @example Raise exception on failure\n * ```ts\n * const retry = modelRetryMiddleware({\n * maxRetries: 2,\n * onFailure: \"error\", // Re-raise exception instead of returning message\n * });\n * ```\n *\n * @param config - Configuration options for the retry middleware\n * @returns A middleware instance that handles model failures with retries\n */\nexport declare function modelRetryMiddleware(config?: ModelRetryMiddlewareConfig): AgentMiddleware;\n//# sourceMappingURL=modelRetry.d.ts.map"],"mappings":";;;;;;;;AAiBsIK,cATjHH,iCASiHG,EAT9EL,CAAAA,CAAEiB,SAS4EZ,CAAAA;EAAYD;;;;;;;;EAEnHS,SAAAA,EAFhBb,CAAAA,CAAEY,UAEcC,CAFHb,CAAAA,CAAEW,QAECE,CAAAA,CAFSb,CAAAA,CAAEG,UAEXU,CAAAA,OAAAA,CAAAA,EAFgCb,CAAAA,CAAEG,UAElCU,CAAAA,UAAAA,CAAAA,EAF0Db,CAAAA,CAAEU,WAE5DG,CAFwEb,CAAAA,CAAEQ,QAE1EK,CAAAA,CAFoFb,CAAAA,CAAEM,OAEtFO,CAF8FT,KAE9FS,EAFqGb,CAAAA,CAAEK,UAEvGQ,EAFmHT,KAEnHS,CAAAA,CAAAA,EAF4Hb,CAAAA,CAAEO,UAE9HM,CAAAA,EAF2Ib,CAAAA,CAAES,SAE7II,CAAAA,CAAAA,CAAAA,CAAAA;CAAfb,GAAEY;EACwDR,UAAAA,EAD1DJ,CAAAA,CAAEY,UACwDR,CAD7CJ,CAAAA,CAAEa,SAC2CT,CAAAA;EAASC,OAAAA,EAAtEL,CAAAA,CAAEY,UAAoEP,CAAzDL,CAAAA,CAAEW,QAAuDN,CAAAA,CAA7CL,CAAAA,CAAEU,WAA2CL,CAA/BL,CAAAA,CAAEQ,QAA6BH,CAAAA,CAAnBL,CAAAA,CAAEM,OAAiBD,CAATD,KAASC,EAAFL,CAAAA,CAAEK,UAAAA,EAAYD,KAAZC,CAAAA,CAAAA,EAAqBL,CAAAA,CAAEO,UAAvBF,CAAAA,EAAoCL,CAAAA,CAAEc,UAAtCT,CAAAA,EAAmDL,CAAAA,CAAEe,QAArDV,CAA8DL,CAAAA,CAAEM,OAAhED,CAAAA,KAAAA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAgGD,KAAhGC,EAAuGL,CAAAA,CAAEK,UAAzGA,EAAAA,KAAAA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAA6ID,KAA7IC,CAAAA,EAAAA,MAAAA,CAAAA,CAAAA,CAAAA,CAAAA;EAAYD,aAAAA,EAC5EJ,CAAAA,CAAEY,UAD0ER,CAC/DJ,CAAAA,CAAEa,SAD6DT,CAAAA;EAA7BE,cAAAA,EAE9CN,CAAAA,CAAEY,UAF4CN,CAEjCN,CAAAA,CAAEa,SAF+BP,CAAAA;EAAwCC,UAAAA,EAG1FP,CAAAA,CAAEY,UAHwFL,CAG7EP,CAAAA,CAAEa,SAH2EN,CAAAA;EAApDC,MAAAA,EAI1CR,CAAAA,CAAEY,UAJwCJ,CAI7BR,CAAAA,CAAEc,UAJ2BN,CAAAA;CAAiER,EAAEc,OAAAA,EAK7Gd,CAAAA,CAAEgB,UAL2GF,EAAAA;EAAjFJ,UAAAA,EAAAA,MAAAA;EAA2IN,OAAAA,EAAAA,CAAAA,KAAAA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAO7IA,KAP6IA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,MAAAA,EAOxHA,KAPwHA,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,EAAAA,EAAAA,GAAAA,OAAAA,CAAAA;EAASC,aAAAA,EAAAA,MAAAA;EAAoCD,cAAAA,EAAAA,MAAAA;EAA7EE,UAAAA,EAAAA,MAAAA;EAAXS,MAAAA,EAAAA,OAAAA;EAA5GJ,SAAAA,EAAAA,UAAAA,GAAAA,OAAAA,GAAAA,CAAAA,CAAAA,MAAAA,EAYoBP,KAZpBO,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,EAAAA,EAAAA,GAAAA,MAAAA,CAAAA;CAAfX,EAAEY;EACmBC,UAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbD,OAAAA,CAAAA,EAAAA,CAAAA,KAAAA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAckBR,KAdlBQ,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,MAAAA,EAcuCR,KAdvCQ,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,EAAAA,EAAAA,GAAAA,OAAAA,CAAAA,GAAAA,SAAAA;EACcC,aAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbD,cAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EACSC,UAAAA,CAAAA,EAAAA,MAAAA,GAAAA,SAAAA;EAAbD,MAAAA,CAAAA,EAAAA,OAAAA,GAAAA,SAAAA;EACSE,SAAAA,CAAAA,EAAAA,UAAAA,GAAAA,OAAAA,GAAAA,CAAAA,CAAAA,MAAAA,EAgBsBV,KAhBtBU,EAAAA,GAAAA,IAAAA,EAAAA,OAAAA,EAAAA,EAAAA,GAAAA,MAAAA,CAAAA,GAAAA,SAAAA;CAAfd,CAAAA;AACEgB,KAiBFE,0BAAAA,GAA6BlB,CAAAA,CAAEmB,KAjB7BH,CAAAA,OAiB0Cd,iCAjB1Cc,CAAAA;;;;;;;;AAjBqD;AAkCnE;AAwFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwBI,oBAAAA,UAA8BF,6BAA6BjB"}