Integrations
Every GraphMind adapter exposes the same shape, so the debugger works the same way whatever you write your agents in:
const gm = graphmind({ app: 'my-agent' });
gm.wrapClient(client); // or gm.wrapModel(model) / gm.handler() for LangChaingm.wrapTools({ ... }); // gates each tool callgm.run(name, fn); // one run, one AbortController, one agent nodeawait gm.ready(); // wait for the debugger handshake (optional, recommended)What differs is only what each framework’s extension points allow — the LangGraph page has the honest matrix for the one case where a callback-only path cannot do everything.
One integration has no code surface at all. graphmind mcp-proxy
sits between an MCP host and an MCP server and debugs the server without touching it — any
language, including servers you did not write.
Adapters are built strictly on public extension points — middleware, callback handlers, client hooks, tool decoration. No forks, no monkey-patching of module internals, nothing that breaks on your framework’s next minor release.
Pick your stack
Section titled “Pick your stack”What every adapter guarantees
Section titled “What every adapter guarantees”| Guarantee | Meaning |
|---|---|
| Never throws into your app | Internal failures degrade to a no-op plus one rate-limited warning |
| Identity when disabled | wrapClient / wrapTools return their input unchanged — zero overhead |
| Fast path when detached | Gates resolve from a shared promise; events go to the ring buffer only |
| Auto-continue on disconnect | Every held gate releases with continue |
instanceId on every event | Correct attribution when the same node runs concurrently |
| Kill switches honoured | GRAPHMIND_DISABLED=1; off under NODE_ENV=production unless GRAPHMIND=1 |
Framework not listed?
Section titled “Framework not listed?”Two paths, in increasing order of effort:
- Import a trace you already produce.
graphmind import trace.jsonaccepts OTLP/JSON and flat OpenInference-style span lists and turns them into a run you can read in the viewer — history only, no live control. See other frameworks. - Write an adapter. The wire contract is nine event types over one WebSocket, and
@graphmind-ai/clientalready owns the session, the gate engine and the fail-open logic. A working adapter is a few hundred lines. The guide walks the whole thing.