====== pi-autoresearch ====== //Vytvořeno: **25.4.2026** | Aktualizováno: **~~LASTMOD~~**// [[https://github.com/davebcn87/pi-autoresearch|pi-autoresearch]] je rozšíření a sada skills pro [[ai:platformy:agenti-a-orchestrace:pi-coding-agent|Pi Coding Agent]]. Přidává do Pi autonomní experimentální smyčku: agent navrhne změnu, spustí benchmark, změří metriku, ponechá zlepšení, zahodí regresi a pokračuje další iterací. ===== Rychlé shrnutí ===== * Projekt není samostatný coding agent, ale **pi package** pro [[https://pi.dev/|Pi]]. * Hlavní přínos je automatizace měřitelných optimalizačních experimentů. * Hodí se pro test speed, build speed, velikost bundlu, LLM training, Lighthouse score nebo jakýkoli jiný cíl s jasnou metrikou. * Je inspirovaný projektem [[https://github.com/karpathy/autoresearch|karpathy/autoresearch]], ale je obecnější: není omezený na ML trénování. * Podle ''package.json'' jde o balíček ''pi-autoresearch'' verze 1.1.0 s licencí MIT. ===== K čemu je dobrý ===== pi-autoresearch je vhodný tam, kde existuje opakovatelný příkaz a objektivní metrika. Agent pak může dlouho běžet sám a zkoušet varianty, které by člověk ručně testoval pomalu nebo vůbec. Typické cíle: * zrychlení testů, * zrychlení buildu, * zmenšení výsledného bundlu, * optimalizace krátkých ML experimentů, * ladění Lighthouse skóre, * hledání výkonových zlepšení v konkrétním skriptu nebo knihovně. Základní pattern je: 1. definuj cíl a metriku 2. změř baseline 3. uprav kód nebo konfiguraci 4. spusť benchmark 5. výsledek zapiš do logu 6. zlepšení ponech, regresi revertuj 7. opakuj ===== Přidaná hodnota ===== ==== 1. Hotová experimentální infrastruktura pro Pi ==== Pi je záměrně minimalistický agentický harness. pi-autoresearch do něj doplňuje konkrétní workflow pro autonomní optimalizační smyčky. Balíček obsahuje dvě části: * **extension** — nástroje, live widget a dashboard, * **skills** — instrukce pro založení, běh, finalizaci a rozšíření experimentální session. Tím se odděluje obecná infrastruktura od doménového know-how. Extension řeší běh experimentů, logování a UI. Skill určuje, co se optimalizuje, jaký příkaz se spouští a jak se výsledek vyhodnocuje. ==== 2. Agentická smyčka s keep/revert logikou ==== Hlavní smyčka podle README běží autonomně: edit → commit → run_experiment → log_experiment → keep/revert → repeat Zlepšení se ponechá a typicky se commitne. Horší výsledek, crash nebo selhané kontrolní testy se zahodí a změny se revertují. To je praktické hlavně pro optimalizace, kde vzniká hodně slepých uliček. ==== 3. Persistentní kontext přes soubory ==== Projekt používá soubory v repozitáři, takže session přežije restart nebo vyčerpání kontextového okna. Důležité soubory: * ''autoresearch.md'' — živý dokument se zadáním, metrikami, scope, omezeními a tím, co už bylo zkuseno. * ''autoresearch.sh'' — benchmark skript; má vypisovat řádky ve formátu ''METRIC name=value''. * ''autoresearch.jsonl'' — append-only log všech běhů, metrik, statusů, commitů a poznámek. * ''autoresearch.checks.sh'' — volitelné correctness checks po úspěšném benchmarku. * ''autoresearch.hooks/'' — volitelné hooky před a po iteraci. Díky tomu může nový agent bez původní konverzační historie přečíst ''autoresearch.md'' a ''autoresearch.jsonl'' a pokračovat. ==== 4. Dashboard a confidence score ==== Extension přidává stavový widget, rozšířený dashboard a fullscreen overlay. Widget ukazuje počet běhů, počet ponechaných změn, nejlepší metriku a confidence score. Confidence score se počítá po třech a více bězích. Používá Median Absolute Deviation jako robustní odhad šumu a porovnává nejlepší zlepšení proti noise flooru. Výklad podle README: * **≥ 2.0×** — zlepšení je pravděpodobně reálné, * **1.0–2.0×** — zlepšení je nad šumem, ale marginální, * **< 1.0×** — výsledek je pravděpodobně v rámci šumu a stojí za opakované ověření. Důležité je, že score je jen poradní. Nástroj podle dokumentace sám nic automaticky nezahazuje jen kvůli nízké confidence. ==== 5. Finalizace do reviewovatelných větví ==== Skill ''autoresearch-finalize'' řeší praktický problém: dlouhá experimentální větev bývá špinavá, plná pokusů a revertů. Finalizační skill přečte ''autoresearch.jsonl'', najde ponechané experimenty, navrhne logické skupiny a po schválení vytvoří samostatné větve od merge-base. Cíl je, aby každá větev obsahovala jednu reviewovatelnou změnu. Skupiny nesmí sdílet soubory, protože mají být aplikovatelné nezávisle. ===== Instalace ===== Rychlá instalace přes Pi package manager: pi install https://github.com/davebcn87/pi-autoresearch Ruční instalace podle README kopíruje extension a skill do uživatelské konfigurace Pi: cp -r extensions/pi-autoresearch ~/.pi/agent/extensions/ cp -r skills/autoresearch-create ~/.pi/agent/skills/ Po ruční instalaci je potřeba v Pi použít ''/reload''. ===== Použití ===== ==== Založení experimentální session ==== Základní start probíhá přes skill: /skill:autoresearch-create Skill se zeptá nebo si odvodí: * cíl optimalizace, * příkaz, který se má spouštět, * primární metriku a směr optimalizace, * soubory v rozsahu, * omezení a pravidla. Potom vytvoří větev, zapíše ''autoresearch.md'' a ''autoresearch.sh'', změří baseline a začne iterovat. ==== Přímý autoresearch režim ==== Extension přidává i příkaz ''/autoresearch'': /autoresearch optimize unit test runtime, monitor correctness /autoresearch model training, run 5 minutes of train.py and note the loss ratio as optimization target /autoresearch export /autoresearch off /autoresearch clear Význam: * ''/autoresearch '' — zapne autoresearch režim; pokud existuje ''autoresearch.md'', naváže na existující session. * ''/autoresearch off'' — vypne auto-resume a runtime stav, ale nechá ''autoresearch.jsonl''. * ''/autoresearch clear'' — smaže ''autoresearch.jsonl'' a resetuje stav. * ''/autoresearch export'' — otevře live dashboard v prohlížeči. ==== Finalizace výsledků ==== Po doběhu nebo přerušení experimentů se dá použít: /skill:autoresearch-finalize Skill připraví změny do samostatných větví pro review. Podle instrukcí ve skillu nejprve navrhne grouping a čeká na schválení. ===== Konfigurace ===== Volitelný soubor ''autoresearch.config.json'' umožňuje nastavit například pracovní adresář a maximální počet iterací: { "workingDir": "/path/to/project", "maxIterations": 50 } ''maxIterations'' je důležité bezpečnostní a nákladové omezení. Autonomní smyčka může jinak běžet dlouho a spotřebovávat tokeny i výpočetní prostředky. ===== Backpressure checks ===== Pokud existuje ''autoresearch.checks.sh'', spustí se po každém benchmarku, který skončí úspěšně. Typicky sem patří testy, typecheck nebo lint. Příklad: #!/bin/bash set -euo pipefail pnpm test --run pnpm typecheck Čas těchto kontrol se nezapočítává do primární metriky. Pokud kontroly selžou, experiment se zaloguje jako ''checks_failed'' a změnu nelze ponechat. ===== Hooks ===== Verze 1.1.0 přidala lifecycle hooks: * ''autoresearch.hooks/before.sh'' — běží před každou iterací, * ''autoresearch.hooks/after.sh'' — běží po každém ''log_experiment''. Hooky dostávají na stdin JSON s kontextem a stdout se doručí agentovi jako steer message. To umožňuje doplňkové automatizace, například: * načtení externí rešerše před dalším pokusem, * zápis poznatků do persistentního journalu, * nativní notifikace, * anti-thrash pravidla, * rotaci nápadů nebo hypotéz. README zdůrazňuje, že core autoresearch loop nemá o hookách přímé povědomí. Hooky běží vedle něj a jejich výstup se agentovi předá jako další signál. ===== Kdy dává smysl ===== pi-autoresearch dává smysl, když jsou splněné tři podmínky: * existuje opakovatelný benchmark nebo měření, * výsledek jde převést na jednu hlavní metriku, * změny lze bezpečně ponechat nebo revertovat. Dobré scénáře: * výkonové optimalizace s jasným benchmarkem, * refaktoring, kde se hlídá rychlost a testy, * build/test pipeline s měřitelným časem, * experimenty s ML trénováním v krátkých bězích, * web performance měřená Lighthousem. Slabší scénáře: * úlohy bez objektivní metriky, * velmi pomalé feedback loopy, * změny s velkým rizikem poškození dat, * oblasti, kde nestačí automatické testy a je nutný lidský úsudek. ===== Limity a rizika ===== * **Náklady:** autonomní loop může spotřebovat hodně tokenů a výpočetního času. README doporučuje limity na API klíči a ''maxIterations''. * **Šum v metrice:** u rychlých nebo kolísavých benchmarků je potřeba měřit vícekrát a používat medián. * **Riziko lokálních změn:** nástroj pracuje s git větvemi, commity a reverty; před použitím je potřeba čistý pracovní strom a dobré zálohování. * **Bezpečnost:** jde o Pi package s extension kódem, tedy o kód běžící s přístupem k lokálnímu systému. * **Neřeší doménu za uživatele:** kvalita výsledků závisí na dobře napsaném ''autoresearch.md'', dobrém benchmarku a správně zvolené metrice. ===== Vztah k původnímu autoresearch ===== Původní [[ai:platformy:agenti-a-orchestrace:autoresearch|autoresearch]] od Andreje Karpathyho je konkrétní ML experiment loop nad trénovacím skriptem a metrikou ''val_bpb''. pi-autoresearch převádí stejný princip do Pi ekosystému a dělá z něj obecný nástroj pro libovolné optimalizační cíle. Stručně: * **karpathy/autoresearch** — konkrétní experimentální repo pro ML trénování. * **pi-autoresearch** — Pi extension + skills pro obecné autonomní experimenty. ===== Závěr ===== pi-autoresearch je praktické rozšíření pro případy, kdy má agent optimalizovat něco měřitelného bez průběžného dohledu. Největší hodnota není v jedné konkrétní optimalizační technice, ale v infrastruktuře: benchmark skript, persistentní log, keep/revert workflow, dashboard, confidence score, backpressure checks a finalizace do čistých větví. Nejlépe funguje tam, kde je metrika rychlá, objektivní a dostatečně stabilní. ===== Zdroje ===== * [[https://github.com/davebcn87/pi-autoresearch|pi-autoresearch – GitHub]] * [[https://raw.githubusercontent.com/davebcn87/pi-autoresearch/main/README.md|pi-autoresearch – README]] * [[https://raw.githubusercontent.com/davebcn87/pi-autoresearch/main/package.json|pi-autoresearch – package.json]] * [[https://raw.githubusercontent.com/davebcn87/pi-autoresearch/main/CHANGELOG.md|pi-autoresearch – changelog]] * [[https://raw.githubusercontent.com/davebcn87/pi-autoresearch/main/skills/autoresearch-create/SKILL.md|Skill autoresearch-create]] * [[https://raw.githubusercontent.com/davebcn87/pi-autoresearch/main/skills/autoresearch-finalize/SKILL.md|Skill autoresearch-finalize]] * [[https://pi.dev/|Pi – homepage]] * [[https://github.com/karpathy/autoresearch|karpathy/autoresearch]]