darwin-agents 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +53 -34
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.7.1] — 2026-06-20
|
|
6
|
+
|
|
7
|
+
**Documentation honesty + a reproducible evolution benchmark.** No library code
|
|
8
|
+
changed — `src/` is byte-for-byte 0.7.0, **455 tests green**, `build` clean. This
|
|
9
|
+
release makes every claim in the README survive scrutiny and ships a way to
|
|
10
|
+
reproduce the one that matters.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`benchmark/`** — a reproducible evolution benchmark (`npm run benchmark`).
|
|
15
|
+
Ships the baseline `writer` prompt and the prompt Darwin's own optimizer
|
|
16
|
+
produced from it, a frozen held-out task set, and the exact critic-scoring
|
|
17
|
+
loop, so anyone can reproduce the baseline-vs-evolved delta on their own tasks.
|
|
18
|
+
`--quick` (1 task) and `--dry` (validate wiring, zero LLM calls) flags.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **README metrics are now real and dated.** Replaced the stale "300+ runs /
|
|
23
|
+
7.2–7.8" block with actual figures from 419 runs across 19 agents
|
|
24
|
+
(Mar–Jun 2026), including the measured v1→v2 evolution lift (writer +0.23,
|
|
25
|
+
marketing +0.28).
|
|
26
|
+
- **Removed the "Darwin Pro — coming soon" tier.** PostgreSQL already ships free
|
|
27
|
+
in the open-source package; the old table implied a paywall and even listed
|
|
28
|
+
Postgres itself as a paid feature. Replaced with an honest "SQLite or
|
|
29
|
+
PostgreSQL — both free, both MIT" section + an open roadmap for the
|
|
30
|
+
genuinely-unbuilt features (pgvector semantic search, cross-agent learnings,
|
|
31
|
+
analytics, contradiction detection, data export).
|
|
32
|
+
- **Clarified the LLM-as-judge mitigation.** Critics are multi-*dimension* by
|
|
33
|
+
default; the CLI spreads them across model families (GPT + Claude) only when
|
|
34
|
+
more than one provider key is present.
|
|
35
|
+
- **Comparison table:** "MCP native" → "MCP-native memory bridge" — the specific,
|
|
36
|
+
defensible claim (other frameworks added MCP tool use during 2025).
|
|
37
|
+
- Surfaced the production safety gate, online GEPA, and always-valid sequential
|
|
38
|
+
tests in a "why this isn't a toy" callout near the top of the README.
|
|
39
|
+
|
|
5
40
|
## [0.7.0] — 2026-06-20
|
|
6
41
|
|
|
7
42
|
**Statistical rigor + coverage sampling.** Seven additive, opt-in upgrades that
|
package/README.md
CHANGED
|
@@ -79,6 +79,16 @@ Your agent got better.
|
|
|
79
79
|
You did nothing.
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
> **Why this isn't a toy.** The loop runs behind a real production **safety gate**
|
|
83
|
+
> — regression rollback to last-known-good, data-quality guards that pause
|
|
84
|
+
> evolution during a tool outage, and an alignment check on *every* mutation so a
|
|
85
|
+
> rewrite can't quietly erode a safety constraint. It can drive that mutation with
|
|
86
|
+
> a [GEPA](https://arxiv.org/abs/2507.19457) reflective optimizer running **online,
|
|
87
|
+
> inside the gate** (not as an offline batch step), and the A/B gate supports
|
|
88
|
+
> **always-valid sequential tests** (mSPRT / Hoeffding) so checking after every run
|
|
89
|
+
> doesn't inflate false positives. Details: [reflective evolution](#reflective-evolution--gepa-online-v06-opt-in)
|
|
90
|
+
> · [statistical rigor](#statistical-rigor--coverage-sampling-v07-opt-in).
|
|
91
|
+
|
|
82
92
|
## Quick Start
|
|
83
93
|
|
|
84
94
|
```bash
|
|
@@ -313,28 +323,31 @@ last run's lessons.
|
|
|
313
323
|
|
|
314
324
|
<!-- REAL_METRICS_START -->
|
|
315
325
|
|
|
316
|
-
### Real results from
|
|
326
|
+
### Real results from our own production use (Mar–Jun 2026)
|
|
317
327
|
|
|
318
|
-
|
|
328
|
+
Actual numbers from **419 runs across 19 agents** in our internal `darwin_db` —
|
|
329
|
+
not synthetic benchmarks. "Success" means the run completed and produced valid
|
|
330
|
+
output (100% across 419 runs); "quality" is the critic's separate 1–10 score.
|
|
319
331
|
|
|
320
332
|
```
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
Marketing: 7.8/10 (70 runs across LinkedIn, Instagram)
|
|
327
|
-
Researcher: 7.6/10 (50+ runs, web research with citations)
|
|
333
|
+
Agent Runs Avg quality
|
|
334
|
+
writer 172 6.94 / 10
|
|
335
|
+
marketing 70 7.74 / 10
|
|
336
|
+
investigator 28 8.33 / 10
|
|
337
|
+
blog-writer 5 8.20 / 10
|
|
328
338
|
```
|
|
329
339
|
|
|
330
|
-
|
|
340
|
+
**Evolution, measured.** When the safety gate adopted an evolved prompt, the
|
|
341
|
+
critic score rose on the runs that followed — modest, but real and directional:
|
|
331
342
|
|
|
332
343
|
```
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
conversion-intent ████████░░ 8/10
|
|
344
|
+
writer v1 6.89 (126 runs) → v2 7.12 (42 runs) +0.23
|
|
345
|
+
marketing v1 7.64 (45 runs) → v2 7.92 (25 runs) +0.28
|
|
336
346
|
```
|
|
337
347
|
|
|
348
|
+
Don't take our word for it — reproduce the v1-vs-evolved comparison on your own
|
|
349
|
+
tasks with [`npm run benchmark`](benchmark/).
|
|
350
|
+
|
|
338
351
|
<!-- REAL_METRICS_END -->
|
|
339
352
|
|
|
340
353
|
## Feature Comparison
|
|
@@ -346,7 +359,7 @@ conversion-intent ████████░░ 8/10
|
|
|
346
359
|
| Safety gate + rollback | **Yes** | No | No | No | No |
|
|
347
360
|
| TypeScript native | **Yes** | No (Python) | No (Python) | No (Python) | No (Python) |
|
|
348
361
|
| Zero-config first agent | **Yes** | No | No | No | Partial |
|
|
349
|
-
| MCP
|
|
362
|
+
| MCP-native memory bridge | **Yes** | No | No | No | No |
|
|
350
363
|
| File-based (no DB required) | **Yes** | No | No | No | No |
|
|
351
364
|
| Built-in Critic agent | **Yes** | No | No | No | No |
|
|
352
365
|
|
|
@@ -374,8 +387,10 @@ Darwin uses SQLite by default — zero config, single file, no database to insta
|
|
|
374
387
|
└── exp-researcher-2026-03-08-002.md
|
|
375
388
|
```
|
|
376
389
|
|
|
377
|
-
**Want
|
|
378
|
-
|
|
390
|
+
**Want concurrent multi-process writes and richer analytics?**
|
|
391
|
+
PostgreSQL is supported out of the box, for free — set `DARWIN_POSTGRES_URL`.
|
|
392
|
+
Semantic search (pgvector), cross-agent learnings and analytics are on the
|
|
393
|
+
[roadmap](#storage-sqlite-or-postgresql--both-free-both-mit), not gated behind a paywall.
|
|
379
394
|
|
|
380
395
|
## CLI Reference
|
|
381
396
|
|
|
@@ -393,28 +408,32 @@ darwin evolve writer --reset # Reset to v1
|
|
|
393
408
|
darwin create my-agent # Scaffold a new agent
|
|
394
409
|
```
|
|
395
410
|
|
|
396
|
-
##
|
|
397
|
-
|
|
398
|
-
The free version uses SQLite — great for getting started, handles thousands of experiments.
|
|
411
|
+
## Storage: SQLite or PostgreSQL — both free, both MIT
|
|
399
412
|
|
|
400
|
-
|
|
413
|
+
Darwin runs on SQLite by default (zero config, single file) and on PostgreSQL
|
|
414
|
+
out of the box — just set `DARWIN_POSTGRES_URL`. Both backends ship in the
|
|
415
|
+
open-source package. There is no paywall.
|
|
401
416
|
|
|
402
|
-
|
|
|
417
|
+
| Capability | SQLite | PostgreSQL |
|
|
403
418
|
|---------|:---:|:---:|
|
|
404
419
|
| Experiment tracking | ✓ | ✓ |
|
|
405
420
|
| Prompt versioning | ✓ | ✓ |
|
|
406
|
-
| A/B testing | ✓ | ✓ |
|
|
407
|
-
|
|
|
408
|
-
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
421
|
+
| A/B testing + safety gate | ✓ | ✓ |
|
|
422
|
+
| Keyword search | ✓ (FTS5) | ✓ (GIN / `ts_rank`) |
|
|
423
|
+
| Concurrent multi-process writes | — | ✓ |
|
|
424
|
+
|
|
425
|
+
### Roadmap
|
|
426
|
+
|
|
427
|
+
Not built yet — tracked in the open, PRs welcome:
|
|
428
|
+
|
|
429
|
+
- Semantic search (pgvector embeddings)
|
|
430
|
+
- Cross-agent learnings
|
|
431
|
+
- Analytics & time series
|
|
432
|
+
- Contradiction detection
|
|
433
|
+
- Data export (CSV/JSON)
|
|
434
|
+
|
|
435
|
+
The core stays MIT. If a hosted option ever ships, the self-host path keeps
|
|
436
|
+
every feature.
|
|
418
437
|
|
|
419
438
|
## FAQ
|
|
420
439
|
|
|
@@ -438,7 +457,7 @@ The safety gate prevents regressions. If a new variant scores >20% lower, Darwin
|
|
|
438
457
|
|
|
439
458
|
## Known Limitations
|
|
440
459
|
|
|
441
|
-
- **LLM-as-Judge bias**: Critics use LLMs to evaluate LLM outputs.
|
|
460
|
+
- **LLM-as-Judge bias**: Critics use LLMs to evaluate LLM outputs. Each agent is scored by a **multi-dimension critic set** (several scoring rubrics per agent type, not a single number). When more than one provider key is present, the CLI also spreads those critics across model families — e.g. GPT for one, Claude for another — to blunt single-model self-preference; with one provider they all run on it. Inherent judge bias still exists. [Research context](https://openreview.net/forum?id=Ns8zGZ0lmM).
|
|
442
461
|
- **Statistical simplicity (default)**: A/B tests use mean comparison with a 5% threshold by default, not formal significance tests. `computeDynamicMinRuns()` adjusts sample sizes based on variance. For rigor, v0.6 added an opt-in `requireConfidence` effect-size gate and **v0.7 ships proper always-valid sequential tests** — set `confidenceMethod: 'msprt'` (Mixture SPRT) or `'hoeffding'` (σ-free confidence sequence) on your `SafetyThresholds` to make the peeking-resistant gate statistically sound. The default path remains the simple threshold for zero-config use.
|
|
443
462
|
- **No human-in-the-loop approval**: Prompt mutations go directly to A/B testing. Telegram notifications inform you, but there's no approval gate before testing starts.
|
|
444
463
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "darwin-agents",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "AI agents that improve themselves. Self-evolving prompts via A/B testing, multi-model critics, safety gates, and pattern detection.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"build": "tsc",
|
|
53
53
|
"dev": "tsc --watch",
|
|
54
54
|
"darwin": "tsx src/cli/index.ts",
|
|
55
|
+
"benchmark": "tsx benchmark/evolution-benchmark.ts",
|
|
55
56
|
"test": "tsx --test tests/*.test.ts",
|
|
56
57
|
"typecheck:tests": "tsc -p tsconfig.test.json",
|
|
57
58
|
"prepublishOnly": "npm run build && npm test"
|