Files
waggle-os/packages/optimizer/README.md
Oleg Maslov 0c3e2ead3b
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled
moving
2026-09-02 10:10:29 +02:00

42 lines
1.9 KiB
Markdown

# @waggle/optimizer
Thin wrapper around [@ax-llm/ax](https://github.com/ax-llm/ax) that exposes a
handful of typed LLM-program primitives (`summarizer`, `classifier`,
`prompt_expander`). Consumed by the Waggle server's `optimizer-service.ts`
to run Ax programs with vault-resolved API keys.
## Why this package still exists
The Skills 2.0 verification doc asked whether this package should be archived
in favor of the evolution stack in `packages/agent/` (GEPA loop, evolve-schema,
iterative-optimizer, judge, compose-evolution). The answer is **no** — the two
systems solve different problems:
| `@waggle/optimizer` | `packages/agent/src/iterative-optimizer.ts` + friends |
|---|---|
| Runs a fixed Ax program (e.g. "summarize this text") once | Evolves a prompt across many trials by proposing mutations and scoring with a judge |
| One-shot execution | Closed loop: generate → judge → gate → deploy |
| API: `optimizer.summarize(text)` | API: `runEvolutionCycle()`, `iterateUntilBudget()` |
| 132 lines | 500+ lines across 10+ files |
The agent-side GEPA / EvolveSchema stack is the "learn to write better prompts
over time" system. This package is the "please execute this typed Ax program
now" utility. The server uses the latter for deterministic summarization,
classification, and prompt expansion tasks that do **not** need a feedback
loop.
Production consumer: `packages/server/src/local/services/optimizer-service.ts`
— see the `execute()` method.
## Programs
- **summarizer** — `textToSummarize → summaryText`
- **classifier** — `textToClassify → intentCategory`
- **prompt_expander** — `briefPrompt → expandedPrompt`
## When to extend
- **Need a new one-shot Ax program?** Add a signature in `src/signatures.ts`.
- **Need a closed-loop optimizer that evolves prompts?** That's evolution —
use `packages/agent/src/evolution-orchestrator.ts`, not this package.