Requirements
- Node.js 20 or newer
- A JavaScript or TypeScript LangGraph agent
- macOS, Linux, or Windows
Try the complete workflow first
To see Engram’s core incident loop before instrumenting an agent:1. Install and scaffold Engram
From your agent repository:.engram/config.json: private local capture credentials.engram.config.json: checked-in framework, executor, and regression paths.engram.executor.mjs: one replay module shared by Studio and CI.regressions/: portable*.engram-test.jsonartifacts..github/workflows/engram-memory-regressions.yml: a ready CI job.
2. Instrument memory and one replay boundary
Wrap LangGraph’s cross-thread Store before compiling the graph:asNode remains required: Engram will not guess where your graph can safely
resume.
3. Wire the generated executor
Openengram.executor.mjs and implement its three marked functions:
createRuntime: construct a fresh graph, checkpointer, Store, and blocked or sandboxed tools for each baseline/treatment variant.applyIntervention: apply the proposed memory correction to that isolated state.observe: map the completed graph state to the selected memories, loaded context, and answer.
langgraph-support-agent
example. This is the only application-specific seam: Studio and CI both import
the same module.
4. Start Studio and check the integration
In one terminal:5. Capture and open the incident
Run the real reproduction command through Engram:ENGRAM_URL, ENGRAM_TOKEN, and ENGRAM_PROJECT_ID into
the child process; replay credentials stay server-side.
6. Diagnose, replay, and prove
Open the Incidents workspace and select the captured answer. Engram separates:- Memory state before the question
- Retrieval candidates and selection
- Memories loaded into active context
- The recorded answer
regressions/.
Run every configured regression through the same executor:
Run the support-agent example
See the complete graph, model, executor, and regression path.
Instrument LangGraph
Capture durable Store operations while keeping checkpoint state distinct.