---
title: "Darwin LangGraph · LangGraph.js adapter for darwin-agents"
description: "LangGraph.js adapter for darwin-agents. Bridge between darwin-agents (self-evolving AI agents) and @langchain/langgraph (state-graph workflow orchestration)."
canonical: "https://matthiasmeyer.tech/repos/darwin-langgraph"
language: "en"
last_updated: "2026-08-21"
markdown_versions: ["https://matthiasmeyer.tech/repos/darwin-langgraph.md", "https://matthiasmeyer.tech/de/repos/darwin-langgraph.md", "https://matthiasmeyer.tech/es/repos/darwin-langgraph.md"]
image: "https://matthiasmeyer.tech/api/og/repo/darwin-langgraph?lang=en"
publisher: "Matthias Meyer, https://matthiasmeyer.tech (llms.txt: https://matthiasmeyer.tech/llms.txt)"
---

agents alpha TypeScript

# Darwin LangGraph

LangGraph.js adapter for darwin-agents

Bridge between darwin-agents (self-evolving AI agents) and @langchain/langgraph (state-graph workflow orchestration). Zero hard deps, both upstreams as peer-dependencies. Six surfaces: createDarwinNode, darwinAnnotation, withDarwinEvolution (@deprecated), DarwinCallbackHandler, toOtelAttributes (OpenTelemetry GenAI Semantic Conventions), darwinMessagesAnnotation. v0.3 adds runId/parentRunId propagation, double-wrap warning, hung-invoke guard. 132 tests, R1+R2 review loops, MIT.

[View on GitHub →](https://github.com/studiomeyer-io/darwin-langgraph)[npm](https://www.npmjs.com/package/darwin-langgraph)

## What it solves

darwin-agents makes prompts evolve through A/B tests and safety gates. LangGraph gives you a stateful graph with checkpoints and human-in-the-loop pauses. Wanting both is obvious and gluing them together by hand is not, because each has opinions about who owns the run.

## How it works

It is a thin bridge and nothing more: it wraps a Darwin agent as a graph node so the evolving agent runs inside the graph rather than beside it. Both libraries stay peer dependencies, so there are no hard dependencies pulled in and you keep whichever versions you already had.

## When to use it

Only if you already use both. It exists to remove the adapter you would otherwise write yourself, and that is its whole job. The payoff is that the evolution loop keeps working inside the graph: the agent still A/B tests its own prompt and still rolls back through the safety gate, while the graph handles the checkpointing and the human pauses around it.

## When not to use it

If you only need one of the two, install that one. A bridge between libraries you do not use is just an extra name in your dependency list, and darwin-agents itself already has an optional LangGraph mode for the simpler cases.

Stars

★ 0

installs

↓ 2,387

Clones (14d)

⊟ 49

Language

TypeScript

Updated

2026-08-21

## Install

```
npx -y darwin-langgraph
```

## Related repos

- Polis

    ← orchestrated with

    →

    https://matthiasmeyer.tech/repos/polis-darwin

- StatePilot

    ← runtime guardrails for

    →

    https://matthiasmeyer.tech/repos/statepilot

- Darwin Agents

    → LangGraph adapter for

    →

    https://matthiasmeyer.tech/repos/darwin-agents

- Agent Fleet

    → alt. orchestration for

    →

    https://matthiasmeyer.tech/repos/agent-fleet

- Temporal Memory Workflows

    ← durable layer for in-process graphs

    →

    https://matthiasmeyer.tech/repos/temporal-memory-workflows

## Sitemap

Every page of this site as Markdown: [sitemap](https://matthiasmeyer.tech/sitemap.md). Curated entry point: [llms.txt](https://matthiasmeyer.tech/llms.txt).
