UNPKG

langchain

Version:
1 lines 9.82 kB
{"version":3,"file":"toolRetry.d.ts","names":["z","ClientTool","ServerTool","AgentMiddleware","ToolRetryMiddlewareOptionsSchema","ZodTypeDef","ZodType","ZodString","ZodUnion","ZodArray","ZodOptional","ZodLiteral","Error","ZodUnknown","ZodTuple","ZodFunction","ZodDefault","ZodNumber","ZodBoolean","ZodTypeAny","ZodObject","ToolRetryMiddlewareConfig","input","toolRetryMiddleware"],"sources":["../../../src/agents/middleware/toolRetry.d.ts"],"sourcesContent":["/**\n * Tool retry middleware for agents.\n */\nimport { z } from \"zod/v3\";\nimport type { ClientTool, ServerTool } from \"@langchain/core/tools\";\nimport type { AgentMiddleware } from \"./types.js\";\n/**\n * Configuration options for the Tool Retry Middleware.\n */\nexport declare const ToolRetryMiddlewareOptionsSchema: z.ZodObject<{\n /**\n * Optional list of tools or tool names to apply retry logic to.\n * Can be a list of `BaseTool` instances or tool name strings.\n * If `undefined`, applies to all tools. Default is `undefined`.\n */\n tools: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodType<ClientTool, z.ZodTypeDef, ClientTool>, z.ZodType<ServerTool, z.ZodTypeDef, ServerTool>, z.ZodString]>, \"many\">>;\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 * Deprecated values:\n * - `\"raise\"`: use `\"error\"` instead.\n * - `\"return_message\"`: use `\"continue\"` instead.\n */\n onFailure: z.ZodDefault<z.ZodUnion<[z.ZodLiteral<\"error\">, z.ZodLiteral<\"continue\">, z.ZodLiteral<\"raise\">, z.ZodLiteral<\"return_message\">, 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 tools?: (string | ServerTool | ClientTool)[] | undefined;\n onFailure: \"continue\" | \"error\" | \"raise\" | \"return_message\" | ((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 tools?: (string | ServerTool | ClientTool)[] | undefined;\n onFailure?: \"continue\" | \"error\" | \"raise\" | \"return_message\" | ((args_0: Error, ...args: unknown[]) => string) | undefined;\n}>;\nexport type ToolRetryMiddlewareConfig = z.input<typeof ToolRetryMiddlewareOptionsSchema>;\n/**\n * Middleware that automatically retries failed tool 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, toolRetryMiddleware } from \"langchain\";\n *\n * const agent = createAgent({\n * model: \"openai:gpt-4o\",\n * tools: [searchTool],\n * middleware: [toolRetryMiddleware()],\n * });\n * ```\n *\n * @example Retry specific exceptions only\n * ```ts\n * import { toolRetryMiddleware } from \"langchain\";\n *\n * const retry = toolRetryMiddleware({\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 5xx errors\n * if (error.name === \"HTTPError\" && \"statusCode\" in error) {\n * const statusCode = (error as any).statusCode;\n * return 500 <= statusCode && statusCode < 600;\n * }\n * return false;\n * }\n *\n * const retry = toolRetryMiddleware({\n * maxRetries: 3,\n * retryOn: shouldRetry,\n * });\n * ```\n *\n * @example Apply to specific tools with custom error handling\n * ```ts\n * const formatError = (error: Error) =>\n * \"Database temporarily unavailable. Please try again later.\";\n *\n * const retry = toolRetryMiddleware({\n * maxRetries: 4,\n * tools: [\"search_database\"],\n * onFailure: formatError,\n * });\n * ```\n *\n * @example Apply to specific tools using BaseTool instances\n * ```ts\n * import { tool } from \"@langchain/core/tools\";\n * import { z } from \"zod\";\n *\n * const searchDatabase = tool(\n * async ({ query }) => {\n * // Search implementation\n * return results;\n * },\n * {\n * name: \"search_database\",\n * description: \"Search the database\",\n * schema: z.object({ query: z.string() }),\n * }\n * );\n *\n * const retry = toolRetryMiddleware({\n * maxRetries: 4,\n * tools: [searchDatabase], // Pass BaseTool instance\n * });\n * ```\n *\n * @example Constant backoff (no exponential growth)\n * ```ts\n * const retry = toolRetryMiddleware({\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 = toolRetryMiddleware({\n * maxRetries: 2,\n * onFailure: \"raise\", // 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 tool failures with retries\n */\nexport declare function toolRetryMiddleware(config?: ToolRetryMiddlewareConfig): AgentMiddleware;\n//# sourceMappingURL=toolRetry.d.ts.map"],"mappings":"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"}