docs(examples): correct self-improve.ts header — it is the scoring loop, not self-evolution (#49)

This commit is contained in:
Zhang Jason
2026-07-23 22:20:34 +08:00
committed by GitHub
parent f3217dca4b
commit d163cf058a
+17 -12
View File
@@ -1,22 +1,27 @@
/**
* Example: an Agent that improves itself — one turn of the self-improvement loop, in code.
* Example: the SCORING LOOP in miniature — evaluate → edit → re-evaluate → keep-or-roll-back.
*
* This is the "Recursive Self-Improvement" pillar made runnable. It runs entirely on a local
* open-weight model (Ollama serving qwen3.6:35b) — see README.md for the one-time setup.
* This is the simplest of the three scripts here, and it is deliberately NOT self-evolution: the
* EDIT step is hardcoded by this script (`fs.writeFile(agentsMd, DISCIPLINE)`), i.e. the HUMAN
* writes the fix and the agent just benefits. It demonstrates the measurement machinery — a
* deterministic rubric, averaging over runs, and the strict keep-or-roll-back rule — not an agent
* improving itself. For GENUINE self-evolution, where the agent diagnoses its own failure and
* writes its own AGENTS.md, see `self-evolve.ts` (single round) and `self-evolve-recursive.ts`.
*
* The loop, exactly as the docs describe it:
* 1. EVALUATE — run the agent on a constrained task, score it against a rubric.
* 2. DIAGNOSE — read the result to see which rubric points were lost.
* 3. EDIT — rewrite the agent's own AGENTS.md to address the failure (version N+1).
* 4. RE-EVALUATE — run the same task again; keep the change only if the score improved.
* The loop this script runs:
* 1. EVALUATE — run the agent on a constrained task, score it against a rubric.
* 2. EDIT (by us) — the script writes a fixed "working discipline" into the agent's AGENTS.md.
* 3. RE-EVALUATE — run the same task again.
* 4. KEEP / ROLL BACK — keep the edit only if the mean score improved.
*
* The rubric here is a *deterministic, transparent* scorer (plain code you can read below), so the
* before/after numbers are objective and reproducible — no hidden judge. In the full product the
* Evaluator is driven by the `agent-evaluation` skill against a private rubric; this example
* distills that idea to its runnable core.
* distills that scoring idea to its runnable core.
*
* It uses a dedicated agent id (`self-improve-demo`) created on the fly, so your existing agents
* are never touched.
* It runs entirely on a local open-weight model (Ollama serving qwen3.6:35b) — see README.md for
* the one-time setup. It uses a dedicated agent id (`self-improve-demo`) created on the fly, so
* your existing agents are never touched.
*
* Run: pnpm --dir examples/self-improving-agent start
* or: npx tsx examples/self-improving-agent/self-improve.ts
@@ -176,7 +181,7 @@ async function main(): Promise<void> {
const improved = await evaluate("N+1 (with working discipline)");
// --- Keep-or-roll-back: the loop's decision rule ------------------------------------
console.log("\n=== Self-improvement result ===");
console.log("\n=== Scoring-loop result (edit was hardcoded, not self-authored) ===");
console.log(` baseline: ${baseline.toFixed(2)}/5 → N+1: ${improved.toFixed(2)}/5`);
if (improved > baseline) {
console.log(" Mean score improved — keep version N+1. ✔");