Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

LangGraph API

This package implements the LangGraph API for rapid development and testing. Build and iterate on LangGraph agents with a tight feedback loop. The server is backed by a predominently in-memory data store that is persisted to local disk when the server is restarted.

For production use, see the various deployment options for the LangGraph API, which are backed by a production-grade database.

Installation

Install the langgraph-cli package with the inmem extra. Your CLI version must be no lower than 0.1.55.

pip install -U "langgraph-cli[inmem]"

Quickstart

  1. (Optional) Clone a starter template:

    langgraph new --template new-langgraph-project-python ./my-project
    cd my-project
    

    (Recommended) Use a virtual environment and install dependencies:

    python -m venv .venv
    source .venv/bin/activate
    python -m pip install .
    
  2. Start the development server:

    langgraph dev --config ./langgraph.json
    
  3. The server will launch, opening a browser window with the graph UI. Interact with your graph or make code edits; the server automatically reloads on changes.

Usage

Start the development server:

langgraph dev

Your agent's state (threads, runs, assistants) persists in memory while the server is running - perfect for development and testing. Each run's state is tracked and can be inspected, making it easy to debug and improve your agent's behavior.

A2A wire versions

Send A2A-Version: 1.0 on JSON-RPC requests to opt into v1 response shapes, including streaming responses. V1 responses omit legacy kind discriminators, use statusUpdate and artifactUpdate stream wrappers, emit UTC timestamps ending in Z, and encode file parts with url or raw, mediaType, and filename. Server-generated tool result data uses toolResults in this mode; arbitrary application data and extension payloads are not renamed.

Requests without the header, with an empty header, or with A2A-Version: 0.3, retain the existing response behavior, including tool_results. Surrounding whitespace is stripped, and numeric patch versions are ignored: 1.0.1 selects v1 output and 0.3.1 selects legacy output. Method names alone do not opt into v1 output. Unsupported major/minor versions and malformed header values return JSON-RPC error -32009. All requests accept url and raw file parts in addition to the existing inputs, independent of the response version header. This opt-in covers wire serialization, not full protocol conformance.

A2A task history scope

An A2A context can contain multiple tasks. By default, SendMessage, GetTask, and ListTasks return the full context history. Set historyScope to task to return only messages that belong to the requested task.

For SendMessage, set it in configuration:

{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "SendMessage",
  "params": {
    "message": {
      "role": "ROLE_USER",
      "parts": [{"text": "Second request"}],
      "messageId": "message-2",
      "contextId": "8b1f0e5c-9a3d-4f27-b0c8-2e6a5d4c1b7a"
    },
    "configuration": {"historyScope": "task"}
  }
}

For GetTask and ListTasks, set it directly in params. If changing the request body is not possible, send LangGraph-A2A-History-Scope: task instead. An explicit request value takes precedence over the header.

{
  "jsonrpc": "2.0",
  "id": "2",
  "method": "GetTask",
  "params": {"id": "<taskId>", "historyScope": "task"}
}
{
  "jsonrpc": "2.0",
  "id": "3",
  "method": "ListTasks",
  "params": {"contextId": "<contextId>", "historyScope": "task"}
}

The agent card advertises support through the https://langchain.com/a2a/extensions/history-scope/v1 extension.

How-To

Attaching a debugger

Debug mode lets you attach your IDE's debugger to the LangGraph API server to set breakpoints and step through your code line-by-line.

  1. Install debugpy:

    pip install debugpy
    
  2. Start the server in debug mode:

    langgraph dev --debug-port 5678
    
  3. Configure your IDE:

    • VS Code: Add this launch configuration:
      {
        "name": "Attach to LangGraph",
        "type": "debugpy",
        "request": "attach",
        "connect": {
                 "host": "0.0.0.0",
                 "port": 5678
             },
      }
      
    • PyCharm: Use "Attach to Process" and select the langgraph process
  4. Set breakpoints in your graph code and start debugging.

CLI options

langgraph dev [OPTIONS]
Options:
  --debug-port INTEGER         Enable remote debugging on specified port
  --no-browser                 Skip opening browser on startup
  --n-jobs-per-worker INTEGER  Maximum concurrent jobs per worker process
  --config PATH               Custom configuration file path
  --no-reload                 Disable code hot reloading
  --port INTEGER              HTTP server port (default: 8000)
  --host TEXT                 HTTP server host (default: localhost)

License

This project is licensed under the Elastic License 2.0 - see the LICENSE file for details.

Metadata

Release files for langgraph-api 0.19.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langgraph-api 0.19.0rc1
File Size Uploaded Provenance Actions
langgraph_api-0.19.0rc1.tar.gz 998.2 kB Without provenance Details for langgraph_api-0.19.0rc1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for langgraph-api 0.19.0rc1
File Interpreter ABI Platform Actions
langgraph_api-0.19.0rc1-py3-none-any.whl Python 3 none any Details for langgraph_api-0.19.0rc1-py3-none-any.whl

Total release size: 1.8 MB

Release files / langgraph_api-0.19.0rc1.tar.gz

Download URL langgraph_api-0.19.0rc1.tar.gz
Size 998.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9343eae612f905c6686482424fbd44c54f80d10e7d2ab6d98890710f4d142c73
BLAKE2b-256 checksum
How to use checksums
4163127285b60bed461679598f79a2320eac8618678a5d2e1e46c732080d86c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / langgraph_api-0.19.0rc1-py3-none-any.whl

Download URL langgraph_api-0.19.0rc1-py3-none-any.whl
Size 762.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d8b6bfc5cdee3d0fe0de772e52ea1389e7d0396693fdacb1cb35ac2c646633b
BLAKE2b-256 checksum
How to use checksums
9ba7d41b5c0cf7822c3ce7d30ede5be9c7e9e8a8862dac2653822c5ab92ed1ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Security for langgraph-api 0.19.0rc1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page