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.
Files changed (3) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +53 -34
  3. 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 300+ production runs
326
+ ### Real results from our own production use (Mar–Jun 2026)
317
327
 
318
- These are actual metrics from our development not synthetic benchmarks.
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
- Agents: writer, researcher, marketing, blog-writer
322
- Total Runs: 300+
323
- Success Rate: 100%
324
-
325
- Writer: 7.2/10 (120 runs across tech, webdesign, market)
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
- #### Multi-Model Critics in action
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
- platform-compliance ████████░░ 8/10
334
- scroll-stopping ████████░░ 8/10
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 native | **Yes** | No | No | No | No |
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 semantic search, cross-agent learnings, and analytics?**
378
- Upgrade to [Darwin Pro](#darwin-pro) for PostgreSQL + pgvector support.
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
- ## Darwin Pro
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
- For teams and production use, Darwin Pro adds:
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
- | Feature | Free (SQLite) | Pro (PostgreSQL) |
417
+ | Capability | SQLite | PostgreSQL |
403
418
  |---------|:---:|:---:|
404
419
  | Experiment tracking | ✓ | ✓ |
405
420
  | Prompt versioning | ✓ | ✓ |
406
- | A/B testing | ✓ | ✓ |
407
- | Safety gate | ✓ | ✓ |
408
- | Keyword search | | ✓ |
409
- | **Semantic search** (pgvector) | — | ✓ |
410
- | **Cross-agent learnings** | — | ✓ |
411
- | **Analytics & time series** | — | ✓ |
412
- | **Contradiction detection** | | |
413
- | **Team support** (multi-user) | — | ✓ |
414
- | **Data export** (CSV/JSON) | — | ✓ |
415
- | **Learning decay** | — | ✓ |
416
-
417
- *Coming soon. Follow the repo for updates.*
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 yettracked 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. We mitigate this with multi-model critics (GPT + Claude), but inherent self-preference bias exists. [Research context](https://openreview.net/forum?id=Ns8zGZ0lmM).
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.0",
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"