یک اجرای ضبطشده عامل، یک دفتر کل مصنوعی با سه ردیف را از یک فایل CSV بانکی به حسابهای بررسیشده تبدیل کرد. موجودی افتتاحیه 1000 USD بود، صورت حساب شامل سه ردیف بود، و پاسخهای مورد انتظار قبل از اجرای هر گزارشی از محاسبات ساده استخراج شده بودند: چککردن در 2958.50 USD پایان مییابد، سود سپتامبر 1958.50 USD است. اجرا دقیقاً به آن اعداد رسید، پس از یک خطای واقعی که خودش آن را تشخیص داد.
ورودیها
این چالش شامل سه فایل منتشرشده در /downloads/agent-accounting/ است، با سناریوی کامل در راهنمای حسابداری عاملها. حسابها در 2026-09-01 به USD با 1000 USD در Assets:Checking باز میشوند. صورت حساب شامل سه ردیف سپتامبر است: پرداخت مشتری به مبلغ 2000.00 USD در 2026-09-02، قبض میزبانی به مبلغ -29.00 USD در 2026-09-03، و هزینه کافه به مبلغ -12.50 USD در 2026-09-04. قوانین، مشتری را به Income:Consulting، میزبانی را به Expenses:Software، و کافه را به Expenses:Dining نگاشت میکنند، و تمام حسابهایی که قوانین نام میبرند در دفتر کل آغازین در تاریخ لازم باز میشوند.
انتظارات از ردیفها بهعلاوه موجودی افتتاحیه، مستقل از هر خروجی گزارشی، به دست میآیند: 1000 + 2000 - 29 - 12.50 برابر 2958.50 USD از چککردن است، و 2000 - 29 - 12.50 برابر 1958.50 USD سود سپتامبر است. ورودی تغییر یافته یا انتظار اشتباه، بهجای چاپ یک گزارش ظاهراً قابل قبول، تأیید را با شکست مواجه میکند.
روششناسی
دو لایه، جدا نگهداشته شدهاند. اول، یک تأییدکنندهٔ CLI نصبشده (scripts/check-agent-accounting.py، پینشده به bea 0.1.0) پرسوجوهای پیشنمایش، اعمال، اعمال تکراری، چک، تراز و صورت سود را در یک دایرکتوری موقت جدید با پیکربندی ایزوله اجرا میکند. این تأییدکننده ادعا میکند که پیشنمایش 3 مورد آماده را گزارش میدهد و چیزی نمینویسد، اولین اعمال 3 ورودی مینویسد، اعمال تکراری 0 مورد آماده را با 3 تکرار دقیق گزارش میدهد و چیزی نمینویسد، هویت بایتی پس از پیشنمایش و نوشتنهای ردشده حفظ میشود، چک تمیز است، و هر دو مجموع با محاسبات بالا مطابقت دارند. همچنین یک تراکنش غیرموازنه (Assets:Checking -5 USD در مقابل Expenses:Dining 4 USD) را امتحان میکند، خروجی 1 را لازم میداند، و تأیید میکند که بایتهای دفتر کل تغییر نکردهاند.
دوم، یک اجرای واقعی عامل روی یک کپی تازه از دانلودها. کلاینت muse 1.1.1 (Muse Code) با مدل muse-spark-1.3-contributor بود، که بهصورت بدون سرور با ابزارهای شل و نوشتن فایل در داخل پوشهکاری، ابزارهای وب غیرفعال، و بدون مداخله انسانی در طول اجرا راهاندازی شد. نکته مهم، هیچ rules.toml ارائه نشد — عامل طبقهبندی خود را از حسابهای باز دفتر کل استخراج کرد.
نتایج مشاهدهشده
عامل 22 فراخوانی ابزار انجام داد (21 شل بهعلاوه 1 نوشتن فایل) و با کد خروجی 0 پایان یافت. آن CSV و 16 حساب باز را بررسی کرد، سطح راهنمای CLI را خواند، rules.toml خود را نوشت (تطبیقهای تحتاللفظی با حروف بزرگ، معادل الگوهای استاندارد زیرا تطبیق به بزرگی/کوچکی حروف حساس نیست)، پیشنمایش 3 مورد آماده با هیچ نوشتهای را انجام داد، 3 ورودی را اعمال کرد، و یک چک تمیز اجرا کرد. مجموعهای گزارششده آن 2958.50 USD در چککردن و 1958.50 USD سود سپتامبر بود. اپراتور پس از آن هر دو پرسوجوی فقطخواندنی را علیه دفتر کل عامل دوباره اجرا کرد و همان ارقام را در برابر مقادیر مورد انتظار مستقل تأیید کرد.
نمایش کوتاه زیر آن مسیر کاری را بهصورت قطعی از دانلودهای استاندارد بازسازی میکند. این یک بازپخش است، نه اجرای زنده:
$ 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.خطاها و مداخلات
گزارش، توالی اصلی، شامل خطاها را حفظ میکند. دو فراخوانی اکتشافی بدون ضرر شکست خوردند (pip نصب نشده بود؛ یک جستجوی مسیر نصب ویرایشی منابعی خارج از site-packages یافت) و عامل ادامه داد. یک خطا واقعی بود: اولین --apply با Operation not permitted روی یک قفل حافظه پنهان خارج از فضای کاری متوقف شد، زیرا جعبهٔ شنی فایلهای قفل را در حافظه پنهان خانه مسدود کرد. عامل منابع محصول را جستجو کرد، دریافت که دایرکتوری حافظه پنهان از XDG_CACHE_HOME پیروی میکند، آن را با اشاره به داخل پوشهکاری دوباره اجرا کرد، همان 3 ورودی را که پیشنمایش نشان داده بود نوشت، و حافظه پنهان موقت را پس از آن حذف کرد. هیچ دفتر کل هرگز با دست ویرایش نشد؛ هر ورودی از bea import --apply آمد. مداخلات در طول اجرا: هیچ — این اجرا بدون سرور با تأیید غیرفعال بود، و یک انسان فقط پس از واقع رویداد را مرور کرد.
محدودیتها
این تأیید خروجی CLI از یک اجرای یک کلاینت روی دادههای مصنوعی است — نه یک معیار مدل. این تأیید چیزی درباره سایر کلاینتها، درباره صحت حسابداری بهطور کلی، یا درباره استفاده تولیدی بدون نظارت ادعا نمیکند. دو تمایز مهم هستند. اول، قضاوت طبقهبندی در مقابل اعتبارسنجی ساختاری: عامل انتخاب کرد که هر ردیف به کدام حساب تعلق دارد، و آن قضاوت فقط به اندازه خواندن آن از سه ردیف بدون ابهام خوب است. هر چیزی که bea پس از آن تأیید کرد — تراز، ساختار جمعصفر، تشخیص تکرار — ساختاری است: یک چک موفق ثابت میکند که دفتر کل تراز است، هرگز اینکه Expenses:Dining حساب درست برای کافه بود. دوم، دفتر کل یک اسباببازی است: سه ردیف، یک ارز، بدون ابهام طبقهبندی، بدون تاریخچه متعارض. یک صورت حساب سختتر، قضاوت را آزمایش میکرد؛ این یکی حلقه را آزمایش میکند.
دانلودها
تمام ورودیهای چالش و رکورد کامل اجرا، بهعنوان فایلهای ایستا که توسط هر منطقهای به اشتراک گذاشته شدهاند:
- main.bean — دفتر کل آغازین، بهعنوان منتشرشده اعتبارسنجی میشود
- statement.csv — سه ردیف مصنوعی
- rules.toml — طبقهبندیهای قطعی
- agent-run.transcript.md — فرمان واقعی، توالی کامل ابزار با خطاهای حفظشده، و تأیید مستقل
- demo-replay.sh — بازپخش قطعی برچسبگذاریشده از مسیر کاری (نیازمند
bea 0.1.0در PATH) - demo-replay.txt — خروجی بازپخش ضبطشده با شرح، گزینه متنی به جای تماشای نمایش
آن را بازتولید کنید: سه ورودی را دانلود کنید، اول پیشنمایش، اعمال، و دو مجموع را در برابر 1000 + 2000 - 29 - 12.50 چک کنید. راهنمای عاملها همان مراحل را دستی طی میکند.
