Token optimization layer for multi-agent LangGraph systems — cut shared-artifact token costs via MESI cache coherence, one import change
Project description
agent-coherence
The coherence layer for multi-agent systems — vendor-neutral, framework-agnostic.
When agents share state, one of them is reading a stale copy. The next write lands on a version that has already moved — a lost write, or a divergent view two agents now disagree on, and the error propagates to every decision downstream. agent-coherence makes that moment visible and serves the current version on the next read instead of rebroadcasting the full artifact every turn. Same library, same protocol, across LangGraph, CrewAI, AutoGen, the OpenAI Agents SDK, and any custom orchestrator. Same behavior regardless of which model provider (Anthropic, OpenAI, Google, Mistral, open-source) the agents talk to.
pip install "agent-coherence[langgraph]" # LangGraph drop-in
pip install "agent-coherence[crewai]" # CrewAI adapter
pip install "agent-coherence[openai-agents]" # OpenAI Agents SDK adapter (experimental)
pip install "agent-coherence[diagnose]" # ccs-diagnose CLI
pip install "agent-coherence[all]" # everything
# Before
from langgraph.store.memory import InMemoryStore
store = InMemoryStore()
# After — one import change, no node code changes
from ccs.adapters import CCSStore
store = CCSStore(strategy="lazy")
store.get(), store.put(), store.search() keep working unchanged. Savings show up immediately on any workload where multiple agents read the same artifact more often than they write it.
agent-coherence-replay — invariant-replay for any CoherenceAdapterCore-mediated agent system. LangGraph capture verified in v1 via CCSStore.record_to(path); CrewAI / AutoGen wired through the same seam but unverified — file an issue if it breaks.
| Workload | Agents | Reads:Writes | Hit rate | Savings |
|---|---|---|---|---|
| Planning (read-heavy) | 4 | 12:1 | 75% | 69% |
| Code review (moderate) | 3 | 8:3 | 60% | 47% |
| High-churn (write-heavy) | 4 | 8:4 | 50% | 29% |
Measured on real LangGraph graphs; see docs/reproduce.md and the user guide.
- 📖 User guide — installation, namespace convention, strategies, observability, telemetry, examples, full API reference
- 🩺
ccs-diagnoseCLI — find divergent reads in your existing LangGraph graph without changing any code - 🔍 Why coherence matters — the gap across LangGraph, CrewAI, AutoGen, and Claude Agent SDK
- 🔐 Security & supply chain — kill switches, hash-pinned install, attestation verification, threat model
- 📜 Changelog — version history
- 📄 Paper on arXiv (2603.15183) — formal protocol, TLA+ verification, simulation results
How it works
Each shared artifact is cached locally per agent and reads serve from the local cache when that copy is fresh. Writes commit to a coordinator, which sends lightweight invalidation signals (~12 tokens) to peers so the next read fetches the new version instead of rebroadcasting the full artifact. Consistency is single-writer-multiple-reader per artifact with bounded staleness — peers re-fetch on next read.
Five synchronization strategies ship out of the box: lazy (default), eager, lease (TTL-based), access_count, and broadcast. Pick the one that matches your workload's read/write ratio and how aggressively cached reads should refresh.
Architecture
- Protocol (
ccs.core,ccs.strategies) — coherence state machine and synchronization strategies; no framework dependencies. - Coordinator (
ccs.coordinator) — authority service tracking directory state, publishing invalidations, and reclaiming stale grants (crash recovery). - Adapters (
ccs.adapters) — framework integrations for LangGraph, CrewAI, and AutoGen (~100 lines each), plus an experimental OpenAI Agents SDK adapter (Session-cache coherence +RunHooks). - Simulation (
ccs.simulation) — deterministic tick-driven engine for scenario benchmarks with failure injection. - Event bus (
ccs.bus) — pluggable transport for invalidation signals; in-memory by default, swap in Redis, Kafka, NATS, or gRPC streams for production.
Protocol safety properties (single-writer, monotonic versioning, crash-recovery sweep invariants) are model-checked with TLA+/TLC. The tla-check CI job runs TLC on every push and PR.
Status
v0.8.4 released — experimental OpenAI Agents SDK adapter + packaging fixes. Adds an experimental (0.x) adapter that brings coherence to the OpenAI Agents SDK Session cache (wrap_session + optional RunHooks); install with pip install "agent-coherence[openai-agents]". New openai / openai-agents / mistral extras and an offline Conversations stale-read example. Fixes: the otel extra now pulls opentelemetry-sdk so metrics actually export, and agent-coherence-status keeps the version column inline. No core-protocol changes; the v0.8.3 crash-recovery deprecation cycle and the upcoming v0.9.0 default flip are unaffected.
See CHANGELOG.md for the full version history and releases for tagged artifacts. Alpha — APIs may change before v1.0.
Paper
Token Coherence: Adapting MESI Cache Protocols to Minimize Synchronization Overhead in Multi-Agent LLM Systems arXiv:2603.15183
BibTeX
@article{parakhin2026token,
title = {Token Coherence: Adapting MESI Cache Protocols to Minimize
Synchronization Overhead in Multi-Agent LLM Systems},
author = {Parakhin, Vladyslav},
journal = {arXiv preprint arXiv:2603.15183},
year = {2026}
}
Community
Questions, war stories, and ideas welcome in Discussions. If you've hit a stale-read bug in a multi-agent workflow, open an issue — I'd like to hear about it.
License
Apache-2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_coherence-0.8.4.tar.gz.
File metadata
- Download URL: agent_coherence-0.8.4.tar.gz
- Upload date:
- Size: 466.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df0c3cb1312eb6dc894cb990e7314b4fdf0086602b0cff127e31fa6185acc624
|
|
| MD5 |
5482e1f36a114e32b23157c05933229f
|
|
| BLAKE2b-256 |
be4bb7bdec7f70f4a0226e98775ffd6770ad931b499204da7cb7620005e1391a
|
Provenance
The following attestation bundles were made for agent_coherence-0.8.4.tar.gz:
Publisher:
release.yml on hipvlady/agent-coherence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_coherence-0.8.4.tar.gz -
Subject digest:
df0c3cb1312eb6dc894cb990e7314b4fdf0086602b0cff127e31fa6185acc624 - Sigstore transparency entry: 1704711485
- Sigstore integration time:
-
Permalink:
hipvlady/agent-coherence@a9f915659fe899a4a7b63c4d00491f32c924fdf6 -
Branch / Tag:
refs/tags/v0.8.4 - Owner: https://github.com/hipvlady
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9f915659fe899a4a7b63c4d00491f32c924fdf6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agent_coherence-0.8.4-py3-none-any.whl.
File metadata
- Download URL: agent_coherence-0.8.4-py3-none-any.whl
- Upload date:
- Size: 310.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa87745565ee060f148cb6b368779c4f1ab370c01f6b3533ce227cc8b1dd0c55
|
|
| MD5 |
98f5ab8ae368563e3e824b6096572e1e
|
|
| BLAKE2b-256 |
b1e0086033d9799fc3fd20ccdd602497d11dfc6dde3e773a6328a660bf002f6e
|
Provenance
The following attestation bundles were made for agent_coherence-0.8.4-py3-none-any.whl:
Publisher:
release.yml on hipvlady/agent-coherence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_coherence-0.8.4-py3-none-any.whl -
Subject digest:
aa87745565ee060f148cb6b368779c4f1ab370c01f6b3533ce227cc8b1dd0c55 - Sigstore transparency entry: 1704711507
- Sigstore integration time:
-
Permalink:
hipvlady/agent-coherence@a9f915659fe899a4a7b63c4d00491f32c924fdf6 -
Branch / Tag:
refs/tags/v0.8.4 - Owner: https://github.com/hipvlady
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a9f915659fe899a4a7b63c4d00491f32c924fdf6 -
Trigger Event:
push
-
Statement type: