Skip to main content

LangGraph Integration

Use the LangGraph adapter when you want to embed ACM tasks inside existing LangGraph flows while retaining deterministic guards and ledger capture.

Setup

pnpm add @ddse/acm-adapters @langchain/langgraph

Wrap ACM plan in LangGraph

import {asLangGraph} from '@ddse/acm-adapters';

const acmGraph = asLangGraph({
goal,
context,
plan,
capabilityRegistry,
toolRegistry,
ledger,
policy: policyEngine,
stream: streamSink
});

const result = await acmGraph.execute();

Tips

  • Provide a MemoryLedger to capture adapter events and forward them to LangGraph monitoring.
  • Use guards inside the plan rather than LangGraph branching to ensure replay bundles remain truthful.
  • When you need resumability, run the plan with the native ACM runtime before invoking LangGraph-specific post-processing.

Combining with other LangGraph nodes

  1. Execute ACM plan to obtain deterministic outputs and ledger.
  2. Feed outputs into existing LangGraph nodes (e.g., summarisation, user prompts).
  3. Optionally append ledger metadata to downstream logs for a unified timeline.

Limitations

  • Checkpoint/resume is not available through the adapter (use the ACM runtime directly when required).
  • Streamed updates follow LangGraph conventions; adjust listeners accordingly.

References