Skip to main content

LangGraph

LangGraph’s ToolNode uses internal state tracking that conflicts with transparent wrapping. Use a custom guarded_tool_node — do not use guard.wrap() with LangGraph. This is the required pattern.
See the full working example in examples/langgraph_integration.py.

LangChain

AutoGen

Blocked calls return an error string into the conversation — the agent sees it and can course-correct. No crash, no infinite loop.

CrewAI

Blocked calls raise ExecutionBlockedError, which CrewAI’s task loop catches natively.

OpenAI / Anthropic

Handling verdicts

Framework support matrix