Converts selected tool execution errors into error ToolMessages.
Handling is opt-in: ToolErrorMiddlewareConfig.onError must return
content for an error to be sent to the model. Returning nothing propagates
the original error unchanged. LangGraph control-flow signals always
propagate and are never passed to onError.
Prefer returning content that identifies the error type without including the raw error message, which may contain sensitive or internal details.
This middleware does not retry. To retry before handling an error, place
toolRetryMiddleware({ onFailure: "error" }) after this middleware.
toolErrorMiddleware(
config: ToolErrorMiddlewareConfig
): AgentMiddleware<undefined, undefined, unknown, readonly ClientTool | ServerTool[], readonly []>| Name | Type | Description |
|---|---|---|
config* | ToolErrorMiddlewareConfig |
import { createAgent, toolErrorMiddleware } from "langchain";
const agent = createAgent({
model,
tools: [searchTool],
middleware: [
toolErrorMiddleware({
onError: (error, request) => {
if (error instanceof TypeError) {
return `Tool '${request.toolCall.name}' failed with TypeError.`;
}
},
}),
],
});