LangGraph / LangChain callback that emits Goderash audit events.
Drop-in adapter for LangGraph and LangChain. Plugs into LangChain's standard callback system, so every node, tool call, and LLM call your agent makes lands in Goderash — tamper-evident, hash-chained, regulator-ready.
Mirrors the TypeScript adapter @goderash/adapter-langgraph.
pip install goderash-sdk goderash-adapter-langgraph langgraphimport os
from goderash_sdk import GoderashClient
from goderash_adapter_langgraph import GoderashCallback
from langgraph.graph import StateGraph
goderash = GoderashClient(
api_key=os.environ["GODERASH_API_KEY"],
tenant="acme",
agent_id="support-agent-v1",
)
callback = GoderashCallback(goderash)
graph = StateGraph(...).compile()
graph.invoke(
{"messages": [{"role": "user", "content": "help me"}]},
config={"callbacks": [callback]},
)
# → root chain start → agent.turn.started
# → tool calls → tool.invoked / tool.completed
# → LLM calls → llm.call.started / llm.call.completed
# → root chain end → agent.turn.completed
# All hash-chained into the per-tenant ledger.| LangChain callback | Goderash event |
|---|---|
on_chain_start (root) |
agent.turn.started |
on_chain_end (root) |
agent.turn.completed |
on_tool_start |
tool.invoked |
on_tool_end |
tool.completed |
on_tool_error |
tool.failed |
on_llm_start |
llm.call.started |
on_llm_end |
llm.call.completed (with token usage) |
Works for both sync .invoke and async .ainvoke paths.
langchain-core >= 0.3.0langgraph >= 0.2.0- Python
>= 3.10
goderash-sdk— core SDK + runtime guardsgoderash-adapter-anthropic— Anthropic Messages / Claudegoderash-adapter-openai— OpenAI Chat / Responses / Assistants