LangGraph ReAct agent integrated with ZenML.
LangGraph lets you build ReAct-style agents as message-driven graphs with nodes, edges, and tool calls; integrating LangGraph with ZenML wraps these agents in reproducible pipelines with artifact tracking, observability, and a clean path from local experiments to production.
Features with ZenML
- ReAct agent orchestration. Execute LangGraph ReAct agents as ZenML steps inside versioned pipelines.
- Message lineage. Track user prompts, intermediate messages, and final responses as artifacts for audit and debugging.
- Tool visibility. Log tool inputs and outputs from search or calculators alongside the agent step.
- Evaluation-ready. Add post-run checks to score answers, latency, or tool effectiveness.
- Portable deployment. Run the same agent graph locally or on Kubernetes and Airflow through ZenML stacks.

Main Features
- ReAct pattern. Reasoning-and-acting agents built as message graphs.
- Message-based communication. Agents exchange structured messages across nodes.
- Built-in tools. Search and calculator tools available for quick problem solving.
How to use ZenML with
LangGraph
from zenml import ExternalArtifact, pipeline, step
from langgraph_agent import agent # prebuilt LangGraph ReAct agent
@step
def run_langgraph(query: str) -> str:
messages = [{"role": "user", "content": query}]
result = agent.invoke({"messages": messages})
msgs = result.get("messages", [])
return getattr(msgs[-1], "content", str(result)) if msgs else str(result)
@pipeline
def langgraph_agent_pipeline() -> str:
q = ExternalArtifact(value="What is the weather in San Francisco?")
return run_langgraph(q.value)
if __name__ == "__main__":
print(langgraph_agent_pipeline())
Additional Resources
ZenML Agent Framework Integrations (GitHub)
ZenML Documentation
LangGraph Documentation