@tangle-network/agent-eval 0.123.5 → 0.123.7

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/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "@tangle-network/agent-eval — wire protocol",
5
- "version": "0.123.5",
5
+ "version": "0.123.7",
6
6
  "description": "HTTP and stdio RPC interface to agent-eval. The TypeScript runtime is the source of truth; this spec is the contract that cross-language clients (Python, Rust, Go) generate from.\n\nWire-protocol version: 1.0.0. Bumps on breaking changes to request/response schemas.",
7
7
  "contact": {
8
8
  "name": "Tangle Network",
@@ -4,7 +4,7 @@ import {
4
4
  classifyFailure,
5
5
  compareToBaseline,
6
6
  computeToolUseMetrics
7
- } from "../chunk-QBRSJK47.js";
7
+ } from "../chunk-J3LHTAAB.js";
8
8
  import {
9
9
  executionTrackByLane
10
10
  } from "../chunk-HHWE3POT.js";
@@ -92,6 +92,72 @@ const comparison = await compareOptimizationMethods<MyScenario, MyArtifact>({
92
92
 
93
93
  The runnable version is [`examples/compare-optimization-methods`](../examples/compare-optimization-methods/).
94
94
 
95
+ ## External GEPA
96
+
97
+ `gepaOptimizationMethod()` passes a text surface, such as a prompt or JSON retrieval policy, to GEPA's own `optimize_anything` API.
98
+ GEPA remains the source of truth for built-in and caller-registered engine names.
99
+ It does not edit a repository, ingest a knowledge base, or replace a retrieval engine.
100
+
101
+ Install the optional Python bridge first:
102
+
103
+ ```sh
104
+ pip install 'agent-eval-rpc[gepa]'
105
+ ```
106
+
107
+ The extra pins a GEPA source commit because the published `gepa==0.1.4` package does not contain this multi-engine API.
108
+ Update the pin only after repeating the integration smoke and comparison benchmarks.
109
+
110
+ ```ts
111
+ import { gepaOptimizationMethod } from '@tangle-network/agent-eval/campaign'
112
+
113
+ const externalGepa = gepaOptimizationMethod<MyScenario, MyArtifact>({
114
+ recipe: {
115
+ kind: 'best-of-then-continue',
116
+ explore: [
117
+ { engine: 'gepa', maxEvaluations: 6, maxProposerCostUsd: 5 },
118
+ { engine: 'autoresearch', maxEvaluations: 6, maxProposerCostUsd: 5 },
119
+ { engine: 'meta_harness', maxEvaluations: 6, maxProposerCostUsd: 5 },
120
+ ],
121
+ continueWith: { engine: 'gepa', maxEvaluations: 6, maxProposerCostUsd: 5 },
122
+ },
123
+ objective: 'Return a better retrieval policy as JSON.',
124
+ describeScenario: (scenario) => ({ id: scenario.id }),
125
+ })
126
+
127
+ const comparison = await compareOptimizationMethods({
128
+ methods: [gepaParetoMethod(methodConfig), externalGepa],
129
+ baselineSurface,
130
+ trainScenarios,
131
+ selectionScenarios,
132
+ testScenarios,
133
+ dispatchWithSurface,
134
+ judges,
135
+ runDir,
136
+ })
137
+ ```
138
+
139
+ This recipe is GEPA's published Omni shape: the bridge calls GEPA's `optimize_best_of(...)` for the parallel exploration stage, then its `optimize_anything(...)` for the fresh continuation stage.
140
+ It does not implement a local optimizer or scheduler.
141
+ GEPA reports Omni winning its matched-budget, 10-task Frontier-CS experiment, but that is not evidence that it wins your task.
142
+ Run it alongside current methods and select only on fresh final cases.
143
+
144
+ The bridge serializes only the values returned by `describeScenario()` for train and selection cases.
145
+ Final test cases remain in `compareOptimizationMethods()` and are first scored after GEPA exits.
146
+ By default, GEPA starts in its empty run directory.
147
+ Do not set `runner.cwd` to a location that contains final cases.
148
+
149
+ Each engine run declares its own `maxEvaluations` and `maxProposerCostUsd`.
150
+ The local callback enforces the sum of the recipe's evaluation limits before it runs an agent or judge.
151
+ The sum of `maxProposerCostUsd` values is a requested GEPA spend cap, but GEPA's reported cost is not an agent-eval receipt.
152
+ The comparison therefore marks that method's cost accounting incomplete and never treats a reported `$0` as confirmed spend.
153
+
154
+ Use `{ kind: 'engine', run: { ... } }` to call one GEPA engine directly.
155
+ `engineConfig` is passed directly to that GEPA engine.
156
+ The bridge accepts any trimmed engine string and GEPA validates whether it is installed or registered.
157
+
158
+ For `agent-knowledge`, use this only to compare a text retrieval policy against `runRetrievalImprovementLoop()`.
159
+ Keep source acquisition, knowledge writes, provenance, freshness, memory, and promotion in `agent-knowledge`.
160
+
95
161
  ## Data Use
96
162
 
97
163
  | Set | Who can read it | Purpose |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tangle-network/agent-eval",
3
- "version": "0.123.5",
3
+ "version": "0.123.7",
4
4
  "description": "Evaluate and improve AI agents from runs, traces, judges, and feedback. Compare candidates, cluster failures, measure lift, and gate releases.",
5
5
  "homepage": "https://github.com/tangle-network/agent-eval#readme",
6
6
  "repository": {