langchain_anthropic or @langchain/anthropic.
Install
Net-new VerifiedX code
This is usually the only VerifiedX delta in an existing Claude-backed LangGraph setup.That is the important part. The rest of your LangGraph graph stays the same: your nodes, edges,
ToolNode or manual tool loop, store, checkpointer, and state schema do not need to be redesigned.Do not use the Anthropic direct adapter here. If LangGraph owns the graph and tool loop, use the LangGraph adapter.
Your native tool surface is the config. VerifiedX uses your existing tool names, descriptions, schemas, and LangGraph state/store surfaces as the source of truth for what to preflight.
Typical graph shape
A normal Claude-backed LangGraph graph still looks like a normal LangGraph graph.If you manually dispatch tools in Python
If your Python graph runs tools manually instead of usingToolNode, catch BoundaryDeniedError and replay exc.tool_result() back into the graph as a normal tool result.
Composed systems
If this Claude-backed LangGraph run is part of a larger multi-agent or agent+human workflow, pass upstream context into VerifiedX so the current graph run has better system and situational awareness before it takes a high-impact action. This is useful when a supervisor agent, parent workflow, or human reviewer already has context that the current graph run should use before taking action. VerifiedX does not require a fixed schema for this. Pass the upstream context you already have in any JSON-serializable shape.Upstream context is supporting workflow context from outside the current run. It is not proof that this run already executed any local action.
What the adapter already captures
On this path, VerifiedX captures the native LangGraph surfaces and keeps provider attribution truthful for Claude-backed runs. That includes:StateGraph.compile- Graph execution through
invoke,ainvoke,stream, andastreamwhere available - Selected tool history from
AIMessage.tool_calls - Tool execution through LangChain tool surfaces and
ToolNode - Direct state mutations through
Command.update - Direct compiled state mutations through
graph.update_stateorgraph.updateState - Store reads through
store.getandstore.search - Store writes through
store.putandstore.delete
provider: "anthropic" while keeping framework: "langgraph".
What gets preflighted
VerifiedX preflights the high-impact LangGraph boundaries directly. That includes:- Wrapped tool executions
store.putstore.deleteCommand.update- Compiled
graph.update_stateorgraph.updateState
AIMessage.tool_calls are reused at execution time, so VerifiedX does not send duplicate preflight requests for the same boundary.
What to expect at runtime
Protected LangGraph boundaries can return:allowallow_with_warningreplan_requiredgoal_fail_terminal
Production-style validation coverage
The Claude-backed LangGraph validation paths in this repo cover real graph flows including:- Clean memory writes
- Clean record mutations
- Clean internal workflow-state changes
- Multi-step internal runs across retrieval, memory, mutation, and internal notification
- External email attempts that replan into safer internal Slack updates
- Repeated adversarial external-email attempts that should not keep pushing the same unsafe action
Pricing note
One protected action check equals one real boundary preflight. Taint, event ingest, execution reports, and decision reads are all included at that price. The Free Sandbox includes every language, provider, framework, and adapter. VerifiedX does not replace your orchestrator or workflow. It returns receipts your system can keep local, route downstream, or pass upstream.For the provider-agnostic graph adapter, see LangGraph. For the direct Anthropic adapter outside LangGraph, see the Anthropic SDK pages.