Skip to main content

LangGraph abstractions for hierarchical multi-agent systems

Project description

langgraph-hierarchies

Decomposable agent hierarchies for LangGraph.

Documentation: https://korrino222.github.io/langgraph-hierarchies/

Status: early development (0.0.x). API and scope are not stable. v0.1 will ship the keystone slice below.

An agentic system is decomposable when it can be split into finer agentic systems — each developed, run, and evaluated in isolation, with its own context — that still achieve the goal of the whole. Decomposability in AI workflows explains why that matters: lean context per unit, benchmarkable seams, durable checkpoints, and improvements that stop colliding across stages.

langgraph-hierarchies is the library for building that on LangGraph: recursive hierarchies of real compiled subgraphs, with declarative per-subagent context isolation (SubagentPolicy), supervisor-controlled iteration budgets, and artifact handoff across boundaries — not one swelling monolith, not ephemeral task-tool isolation alone.

Flat delegation (supervisor handoffs, Deep Agents) is a good starting point. This library targets the production wall past that: invokable subagents that nest as deep as the problem needs while preserving streamability, durability, and resumability at every level.

How this relates to other libraries

langgraph-supervisor Deep Agents langgraph-hierarchies
Model Supervisor → workers (handoff tools) Harness + subagents (task / programmatic task()) Class-as-factory graphs, phased compile, SubagentPolicy
Context isolation Shared parent history Ephemeral subagent context Declarative clear/merge/discard per subagent boundary
Nesting Multi-level supervisors Fan-out / data recursion (partial); not stateful deep trees Recursive compiled subgraphs + explicit state policy
Best for Quick hierarchical routing General long-horizon agents Production decomposable hierarchies — benchmarkable units, lean checkpoints

Deep Agents already covers fan-out, parallel orchestration, and RLM-style recursion over data (programmatic subagents, June 2026). This project does not try to replace that.

See langgraph-hierarchies-examples for worked examples demonstrating the before/after decomposability arc.

Compatibility

langgraph-hierarchies langgraph
0.0.x 1.2.6 (pinned; see releases)

Regression tests gate version bumps. A pair is listed here only once the full suite is green for it.

Bumping the langgraph pin

  1. Update the langgraph constraint in pyproject.toml.
  2. Refresh the lockfile: uv sync.
  3. Run the full suite: uv run pytest.
  4. To isolate a failing story, run e.g. uv run pytest -m us04.
  5. When the suite is green, update the compatibility matrix above and cut a release.

CI runs ruff and pytest on every push/PR (Python 3.10–3.13). Tests use scripted models only — no LLM API keys required.

What's in 0.0.5

  • Parallel tool callsReactGraph dispatches multiple flat-tool calls in parallel; parallel batches that include a subagent are blocked with one error ToolMessage per tool_call_id so chat history stays valid for the next LLM turn

What's in 0.0.4

  • Breaking renameSubchainPolicySubagentPolicy, subchain_policysubagent_policy, __subchain_stack____subagent_stack__ (no aliases; update imports and checkpoint state keys)

What's in 0.0.3

  • LangSmith threads — automatic thread_id normalization into RunnableConfig metadata at invoke time (see below)

What's in 0.0.2

The mechanics behind decomposable hierarchies:

  • BaseGraph / CompiledGraph + phased compilation — each unit is a real invokable subgraph
  • SubagentPolicy — entry snapshot, clear/merge/discard, exit restore; isolate context at every seam
  • ReactGraph + iteration safety — per-agent limits, supervisor task_iterations, forced-exit report
  • Root compile (compile_as_root) and unified invocation — stream and checkpoint through the full tree
  • Compatibility harness (per-story pytest markers, CI) — benchmark units in isolation
  • TodoGraph + todo toolkit — batch processing with flat context; IRS hierarchy test fixture (tests/irs_hierarchy/)

Planner/Executor, progress tracking, HITL: follow-on after v0.1.

LangSmith threads

LangSmith groups multi-turn conversations when runs share metadata.thread_id (or session_id). The library normalizes thread IDs automatically at invoke time. Provide any one of:

  • config["configurable"]["thread_id"] — LangGraph checkpoint convention
  • config["metadata"]["thread_id"] — explicit LangSmith thread
  • context.thread_id on your context dataclass (e.g. BaseContext)

All three are backfilled when missing. Explicit metadata.thread_id is never overwritten.

from langgraph_hierarchies import BaseContext, build_invoke_config

config = build_invoke_config(thread_id="demo-run-1", recursion_limit=200)
result = root.invoke(state, config=config, context=BaseContext(model=model))

With LANGCHAIN_TRACING_V2=true, open your project → Threads tab and filter by the thread ID. Child subgraph spans inherit the same config via LangGraph propagation.

Install

pip install langgraph-hierarchies

Requires Python ≥3.10 (matches LangGraph).

Development

Uses uv (same toolchain as upstream LangGraph):

uv sync
uv run pytest
uv build   # sdist + wheel for PyPI

Disclaimer

This project is not affiliated with, endorsed by, or maintained by LangChain or the LangGraph team. “LangGraph” is a trademark of LangChain; this package name indicates compatibility with the LangGraph runtime, not official status.

Contact

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langgraph_hierarchies-0.0.5.tar.gz (57.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

langgraph_hierarchies-0.0.5-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file langgraph_hierarchies-0.0.5.tar.gz.

File metadata

  • Download URL: langgraph_hierarchies-0.0.5.tar.gz
  • Upload date:
  • Size: 57.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for langgraph_hierarchies-0.0.5.tar.gz
Algorithm Hash digest
SHA256 f454f944a93bedf10e37767a77b12cf466666fe38083760b4472397dd4dee20f
MD5 5514630179a358775173b7015872ce70
BLAKE2b-256 8a85082c3b2e4aa79105b7766ed0d5651c9a41ecad8d3662b711335da1f42de6

See more details on using hashes here.

File details

Details for the file langgraph_hierarchies-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: langgraph_hierarchies-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for langgraph_hierarchies-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0126939a4ba8a4f5f412f6716a46603223889764e80c0d11e073f7e25dde8d8a
MD5 5602a702f53ca3879262af08edd92746
BLAKE2b-256 7b7095716386f818c3ac4a0f051630a0ee8bc7f321811edf817b59c22c2b54bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page