Skip to content

LangGraph plugin samples#289

Open
DABH wants to merge 8 commits intotemporalio:mainfrom
DABH:langgraph-samples
Open

LangGraph plugin samples#289
DABH wants to merge 8 commits intotemporalio:mainfrom
DABH:langgraph-samples

Conversation

@DABH
Copy link
Copy Markdown

@DABH DABH commented Apr 14, 2026

Summary

Add seven samples demonstrating the Temporal LangGraph plugin, which runs LangGraph workflows as durable Temporal workflows. Each graph node or @task executes as a Temporal activity with automatic retries, timeouts, and crash recovery.

Samples are provided for both the Graph API (declarative StateGraph with nodes and edges) and the Functional API (imperative @task / @entrypoint decorators).

Sample Graph API Functional API Description
Human-in-the-loop Chatbot that uses interrupt() to pause for human approval, Temporal signals to receive feedback, and queries to expose the pending draft.
Continue-as-new Multi-stage data pipeline that uses continue-as-new with task result caching so previously-completed stages are not re-executed.
ReAct Agent Tool-calling agent loop. Graph API uses add_conditional_edges; Functional API uses a while loop.
Control Flow Parallel task execution, for loops, and if/else branching — patterns that are natural in the Functional API.

Key Features Demonstrated

  • Durable execution — Every graph node / @task runs as a Temporal activity with configurable timeouts and retry policies.
  • Human-in-the-loop — LangGraph's interrupt() pauses the graph; Temporal signals deliver human input; queries expose pending state to UIs.
  • Continue-as-new with cachingget_cache() captures completed task results; passing the cache to the next execution avoids re-running them.
  • Conditional routing — Graph API's add_conditional_edges and Functional API's native if/else/while for agent loops.
  • Parallel execution — Functional API launches multiple tasks concurrently by creating futures before awaiting them.

Related PRs

Test plan

Seven samples demonstrating the Temporal LangGraph plugin across both the
Graph API and Functional API:

- Human-in-the-loop: interrupt() + Temporal signals for chatbot approval
- Continue-as-new: task result caching across workflow boundaries
- ReAct agent: tool-calling loop with conditional edges / while loop
- Control flow (Functional API only): parallel, for-loop, if/else

Related SDK PR: temporalio/sdk-python#1448
@DABH DABH requested a review from a team as a code owner April 14, 2026 23:09
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Apr 14, 2026

CLA assistant check
All committers have signed the CLA.

@CLAassistant
Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

This comment was marked as outdated.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new langgraph_plugin/ sample suite to demonstrate running LangGraph workflows as durable Temporal workflows via the Temporal LangGraph plugin, covering both LangGraph Graph API and Functional API patterns.

Changes:

  • Introduces 7 new LangGraph+Temporal sample workflows (human-in-the-loop, continue-as-new w/ caching, ReAct agent, control-flow).
  • Adds a new langgraph dependency group and includes langgraph_plugin in the build packages list.
  • Updates repository documentation to link to the new sample suite and provides a dedicated README for running the samples.

Reviewed changes

Copilot reviewed 24 out of 34 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
pyproject.toml Adds langgraph dependency group, includes langgraph_plugin in wheel packages, adjusts lint/test tasks, and adds mypy override.
README.md Links the new langgraph_plugin samples from the repo root README.
langgraph_plugin/README.md Adds usage documentation and a sample matrix for the new suite.
langgraph_plugin/init.py Declares the new top-level sample package.
langgraph_plugin/graph_api/init.py Declares Graph API samples namespace.
langgraph_plugin/graph_api/react_agent/init.py Declares Graph API ReAct agent package.
langgraph_plugin/graph_api/react_agent/workflow.py Implements Graph API ReAct agent workflow and graph definition.
langgraph_plugin/graph_api/react_agent/run_worker.py Worker wiring for Graph API ReAct agent sample.
langgraph_plugin/graph_api/react_agent/run_workflow.py Starter script for Graph API ReAct agent sample.
langgraph_plugin/graph_api/human_in_the_loop/init.py Declares Graph API human-in-the-loop package.
langgraph_plugin/graph_api/human_in_the_loop/workflow.py Implements Graph API interrupt + Temporal signal/query human approval flow.
langgraph_plugin/graph_api/human_in_the_loop/run_worker.py Worker wiring for Graph API human-in-the-loop sample.
langgraph_plugin/graph_api/human_in_the_loop/run_workflow.py Starter script for Graph API human-in-the-loop sample.
langgraph_plugin/graph_api/continue_as_new/init.py Declares Graph API continue-as-new package.
langgraph_plugin/graph_api/continue_as_new/workflow.py Implements Graph API pipeline w/ continue-as-new + cache handoff.
langgraph_plugin/graph_api/continue_as_new/run_worker.py Worker wiring for Graph API continue-as-new sample.
langgraph_plugin/graph_api/continue_as_new/run_workflow.py Starter script for Graph API continue-as-new sample.
langgraph_plugin/functional_api/init.py Declares Functional API samples namespace.
langgraph_plugin/functional_api/react_agent/init.py Declares Functional API ReAct agent package.
langgraph_plugin/functional_api/react_agent/workflow.py Implements Functional API ReAct agent via @task + @entrypoint.
langgraph_plugin/functional_api/react_agent/run_worker.py Worker wiring for Functional API ReAct agent sample.
langgraph_plugin/functional_api/react_agent/run_workflow.py Starter script for Functional API ReAct agent sample.
langgraph_plugin/functional_api/human_in_the_loop/init.py Declares Functional API human-in-the-loop package.
langgraph_plugin/functional_api/human_in_the_loop/workflow.py Implements Functional API interrupt + signal/query human approval flow.
langgraph_plugin/functional_api/human_in_the_loop/run_worker.py Worker wiring for Functional API human-in-the-loop sample.
langgraph_plugin/functional_api/human_in_the_loop/run_workflow.py Starter script for Functional API human-in-the-loop sample.
langgraph_plugin/functional_api/control_flow/init.py Declares Functional API control-flow package.
langgraph_plugin/functional_api/control_flow/workflow.py Implements Functional API sample demonstrating parallelism + branching.
langgraph_plugin/functional_api/control_flow/run_worker.py Worker wiring for Functional API control-flow sample.
langgraph_plugin/functional_api/control_flow/run_workflow.py Starter script for Functional API control-flow sample.
langgraph_plugin/functional_api/continue_as_new/init.py Declares Functional API continue-as-new package.
langgraph_plugin/functional_api/continue_as_new/workflow.py Implements Functional API pipeline w/ continue-as-new + cache handoff.
langgraph_plugin/functional_api/continue_as_new/run_worker.py Worker wiring for Functional API continue-as-new sample.
langgraph_plugin/functional_api/continue_as_new/run_workflow.py Starter script for Functional API continue-as-new sample.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@DABH DABH mentioned this pull request Apr 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants