Preskočiť na hlavný obsah

Dokáže váš agent vyrovnať tieto knihy?

Publikované 5 minút čítaniaMike ThriftMike Thrift
Dokáže váš agent vyrovnať tieto knihy?

Jeden zaznamenaný beh agenta previedol syntetický trojriadkový ledger z bankového CSV na skontrolované knihy. Počiatočný zostatok bol 1000 USD, výpis obsahoval tri riadky a očakávané odpovede boli odvodené aritmeticky pred spustením akéhokoľvek reportu: kontrola končí na 2958.50 USD, septembrový zisk je 1958.50 USD. Beh dosiahol tieto čísla presne, po jednom skutočnom zlyhaní, ktoré sám diagnostikoval.

Vstupy

Výzva pozostáva z troch zverejnených súborov v /downloads/agent-accounting/, s úplným scenárom v príručke pre agentov na účtovníctvo. Knihy sa otvárajú 2026-09-01 v USD s 1000 USD na Assets:Checking. Výpis obsahuje tri septembrové riadky: platba klienta 2000.00 USD z 2026-09-02, účet za hosting -29.00 USD z 2026-09-03 a návšteva kaviarne -12.50 USD z 2026-09-04. Pravidlá priraďujú klienta k Income:Consulting, hosting k Expenses:Software a kaviareň k Expenses:Dining a každý účet, ktorý pravidlá uvádzajú, je otvorený v počiatočnom ledgeri k požadovanému dátumu.

Očakávania vychádzajú z riadkov plus počiatočného zostatku, nezávisle od akéhokoľvek výstupu reportu: 1000 + 2000 - 29 - 12.50 je 2958.50 USD na kontrole a 2000 - 29 - 12.50 je 1958.50 USD septembrového zisku. Zmenený vstup alebo nesprávne očakávanie spôsobí zlyhanie overenia namiesto vytlačenia vierohodne vyzerajúceho reportu.

Metodika

Dve vrstvy, oddelené. Po prvé, overovač nainštalovaný ako CLI (scripts/check-agent-accounting.py, pripnutý na bea 0.1.0) spúšťa príkazy preview, apply, opakovaný apply, check, balance a income-statement v čerstvom dočasnom adresári s izolovanou konfiguráciou. Overuje, že preview hlási 3 pripravené a nič nezapisuje, prvý apply zapíše 3 záznamy, opakovaný apply hlási 0 pripravených s 3 presnými duplicitami a nič nezapisuje, bitová identita prežije preview a zamietnuté zápisy, check je čistý a oba súčty zodpovedajú vyššie uvedenej aritmetike. Taktiež sa pokúsi o nevyrovnanú transakciu (Assets:Checking -5 USD proti Expenses:Dining 4 USD), vyžaduje exit 1 a overí, že bajty ledgeru sú nezmenené.

Po druhé, jeden skutočný beh agenta na čerstvej kópii súborov na stiahnutie. Klient bol muse 1.1.1 (Muse Code) s modelom muse-spark-1.3-contributor, spustený headless s nástrojmi shell a zápis súborov v rámci pracovného adresára, webové nástroje vypnuté a počas behu žiadne ľudské zásahy. Kľúčové je, že rules.toml nebol dodaný — agent si odvodil vlastnú kategorizáciu z otvorených účtov v ledgeri.

Pozorované výsledky

Agent vykonal 22 volaní nástrojov (21 shell plus 1 zápis súboru) a ukončil sa s kódom 0. Preskúmal CSV a 16 otvorených účtov, prečítal CLI help, napísal vlastný rules.toml (doslovné zhody s veľkými písmenami, ekvivalentné kanonickým vzorom, pretože porovnávanie nerozlišuje veľkosť písmen), zobrazil náhľad 3 pripravených bez zápisu, aplikoval 3 záznamy a spustil čistý check. Jeho hlásené súčty boli 2958.50 USD na kontrole a 1958.50 USD septembrového zisku. Operátor následne znovu spustil oba read-only dotazy proti ledgeru agenta a potvrdil rovnaké čísla voči nezávislým očakávaným hodnotám.

Krátka ukážka nižšie deterministicky znovu prehráva túto fungujúcu cestu z kanonických súborov na stiahnutie. Je to prehratie, nie živý beh:

$ bea --version
bea 0.1.0
$ bea import (preview)
csv → Assets:Checking: 3 ready, 0 exact duplicates, 0 possible duplicates
$ bea import --apply
Wrote 3 entries to $WORK/books/main.bean.
$ bea check
$WORK/books/main.bean: no errors
$ bea balance Assets:Checking
    Checking                                      2,958.50 USD
$ bea report income-statement -t 2026-09
Net Profit: 1,958.50 USD
checking: 2958.50 USD (expected)
profit: 1958.50 USD (expected)
REPLAY OK: preview 3/0, applied 3, check clean, 2958.50 / 1958.50 USD.

Zlyhania a zásahy

Prepisy zachováva pôvodné poradie vrátane zlyhaní. Dve prieskumné volania zlyhali neškodne (pip nebol nainštalovaný; prieskum cesty pre editable install našiel zdroje mimo site-packages) a agent pokračoval. Jedno zlyhanie bolo skutočné: prvý --apply skončil s Operation not permitted na zámku cache mimo pracovného priestoru, pretože sandbox blokoval súbory zámkov v domovskej cache. Agent prehľadal zdrojové kódy produktu, zistil, že adresár cache rešpektuje XDG_CACHE_HOME, znovu spustil s jeho nasmerovaním do pracovného adresára, zapísal rovnaké 3 záznamy, ktoré ukázal náhľad, a dočasnú cache potom odstránil. Žiadny ledger nebol nikdy upravený ručne; každý záznam pochádzal z bea import --apply. Zásahy počas behu: žiadne — bol headless s vypnutým schvaľovaním a človek skontroloval log udalostí až dodatočne.

Obmedzenia

Toto je overenie CLI výstupu jedného behu jedného klienta na syntetických dátach — nie benchmark modelu. Nič netvrdí o iných klientoch, o všeobecnej účtovnej presnosti ani o bezobslužnom produkčnom použití. Dôležité sú dva rozdiely. Po prvé, úsudok o kategórii versus štrukturálna validácia: agent si vybral, do ktorého účtu patrí každý riadok, a tento úsudok je len taký dobrý, ako jeho prečítanie troch jednoznačných riadkov. Všetko, čo bea následne overil — zostatok, štruktúra nulového súčtu, detekcia duplicít — je štrukturálne: úspešný check dokazuje, že sa ledger vyrovnáva, nikdy nie, že Expenses:Dining bol správny účet pre kaviareň. Po druhé, ledger je hračka: tri riadky, jedna mena, žiadna nejednoznačnosť kategorizácie, žiadna konfliktná história. Náročnejší výpis by testoval úsudok; tento testuje slučku.

Súbory na stiahnutie

Všetky vstupy výzvy a úplný záznam behu, ako statické súbory spoločné pre všetky jazykové verzie:

  • main.bean — počiatočný ledger, validuje sa ako publikovaný
  • statement.csv — tri syntetické riadky
  • rules.toml — deterministické kategórie
  • agent-run.transcript.md — skutočný prompt, úplná sekvencia nástrojov so zachovanými zlyhaniami a nezávislé overenie
  • demo-replay.sh — označené deterministické prehratie fungujúcej cesty (vyžaduje bea 0.1.0 v PATH)
  • demo-replay.txt — zachytený výstup prehratia s popisom, textová alternatíva k sledovaniu ukážky

Reprodukujte to: stiahnite tri vstupy, najprv preview, potom apply, a skontrolujte dva súčty proti 1000 + 2000 - 29 - 12.50. Príručka pre agentov prechádza rovnakými krokmi ručne.

Zdieľať tento článok

Zdroj: https://beancount.io/sk/bean-labs/research-logs/2026/09/10/can-your-agent-balance-these-books

Publikované: 10. septembra 2026