Azure Functions LangGraph
Deploy existing LangGraph graphs as Azure Functions Python v2 HTTP endpoints without writing request wrappers. This is a deployment adapter, not an agent builder or a replacement for LangGraph.
Installation
Python 3.11–3.14 is supported. Azure Functions hosting support depends on the selected plan/runtime; see deployment.
pip install azure-functions-langgraph
Quick Start
Save as function_app.py in a Functions app with host.json:
from typing import TypedDict
from langgraph.graph import START, END, StateGraph
from azure_functions_langgraph import LangGraphApp
class State(TypedDict):
message: str
builder = StateGraph(State)
builder.add_node("echo", lambda state: {"message": state["message"]})
builder.add_edge(START, "echo")
builder.add_edge("echo", END)
app = LangGraphApp()
app.register(builder.compile(), "echo")
func_app = app.function_app
Run func start, then POST {"input":{"message":"hello"}} to
http://localhost:7071/api/graphs/echo/invoke; the result is
{"output":{"message":"hello"}}. Deployed routes require a function key by
default. Follow the 5-minute tutorial for complete
project files, local setup and deployment.
Deploy to Azure (default path)
One path, start to finish: the 5-minute tutorial: local invoke, minimal Azure resources, publish, authenticated cloud invoke, cleanup. Stateless graphs need only the Storage Account Azure Functions itself requires. Premium, Blob/Table persistence, Platform compatibility, Managed Identity and distributed locks are optional next steps in the advanced deployment guide. Cloud steps are not claimed as certified beyond the stability table below.
Stability — rolling 0.x, per surface
The package-level classifier is Beta, not a promise that every surface is production-ready. Compatibility decisions follow CONTRIBUTING.md; breaking changes remain on the 0.x line under the existing release policy.
| Surface | Tier | Contract |
|---|---|---|
LangGraphApp construction, native invoke/stream/state HTTP endpoints, auth levels |
Stable | Preserve supported calls; incompatible changes require explicit classification and migration |
Checkpoint backends, thread locks, async runtime, version="v2", RunObserver |
Beta | Shape settled; refinements remain possible before v1.0 |
| Platform compatibility, true HTTP streaming, Service Bus and Durable lifecycle | Experimental | Opt-in; may change between minor releases |
Classic stream routes return buffered SSE, not incremental tokens.
StreamingLangGraphApp is a separate experimental transport. Function keys
are not user/thread ownership; applications must enforce authorization.
Default locks and Platform thread records are process-local. Shared writers
need explicit distributed storage/locking; see the production guide
and security boundaries.
Recommended learning path
Optional, after the default path. These are independent, capability-focused apps, not cumulative production templates or prerequisites:
Also optional: an official LangGraph guide graph hosted with minimal changes, an official-example adaptation (not one of the custom examples above).
Examples support deterministic fake models without cloud credentials. For Platform thread storage, the tested Managed Identity storage recipe wires Azure Table explicitly. State separation is not authenticated ownership.
Documentation
- Configuration and usage
- Adapter reference, optional features and migrations
- Architecture and distributed deployment
- Finite SDK support matrix: partial compatibility, not Platform parity
- Examples, troubleshooting, security
- Contributing, product scope, design
- AI tooling: llms.txt, llms-full.txt, AGENTS.md
Contributing
Contributions are welcome. The Contributing Guide covers local setup, the checks to run, and the pull request workflow.
Looking for something to work on?
- Good first issue: small, self-contained starter tasks.
- Help wanted: tasks that may need more familiarity with this codebase or Azure Functions.
Please comment on an issue to request assignment before you open a pull request. Either list can be empty at any time, so bug reports and small documentation suggestions are always welcome too.
Part of the Azure Functions Python DX Toolkit. Integrated application recipes live in the cookbook; this package owns serving compiled graphs, not prompts, models or tool frameworks.
Independent community project; not affiliated with Microsoft or LangChain. Azure, Azure Functions and LangGraph are their owners' trademarks. MIT.
Metadata
Release files for azure-functions-langgraph 0.13.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| azure_functions_langgraph-0.13.0.tar.gz | 122.5 kB | With provenance | Details for azure_functions_langgraph-0.13.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| azure_functions_langgraph-0.13.0-py3-none-any.whl | Python 3 | none | any | Details for azure_functions_langgraph-0.13.0-py3-none-any.whl |
Total release size: 273.0 kB
Release files / azure_functions_langgraph-0.13.0.tar.gz
| Download URL | azure_functions_langgraph-0.13.0.tar.gz |
|---|---|
| Size | 122.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
614a439f196a3cbb3ba8e1abe1405691e0ac30f00b398e7c151fb730830f89b9
|
|
BLAKE2b-256 checksum How to use checksums |
ec0645180bb2b197979c3f7d5e1037dd8e7a6315b850792e8a09e253bb1c0fa5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logRelease files / azure_functions_langgraph-0.13.0-py3-none-any.whl
| Download URL | azure_functions_langgraph-0.13.0-py3-none-any.whl |
|---|---|
| Size | 150.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c4c924182861a1a0fdb47058a19611d448352be7eadcff7cca95e34aec71d91
|
|
BLAKE2b-256 checksum How to use checksums |
24179eb2df4a78f539a4f7cc7ad6b08296bd295fdcb6d84684bc6051fe390ec0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logSecurity for azure-functions-langgraph 0.13.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for azure_functions_langgraph-0.13.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.