記録された1回のエージェント実行は、銀行のCSVから合成3行の元帳を取り込み、検証済みの帳簿に仕上げました。期首残高は 1000 USD、明細には3行が含まれ、期待される解答はレポート実行前に算術的に導出されました:当座預金の期末は 2958.50 USD、9月の利益は 1958.50 USD です。実行はこれらの数値を正確に達成し、1回の実際の失敗を自ら診断しました。
入力
このチャレンジは /downloads/agent-accounting/ にある3つの公開ファイルで構成され、完全なシナリオは エージェント会計ガイド に記載されています。帳簿は2026-09-01にUSDで、Assets:Checkingに 1000 USD が含まれて開始します。明細には9月の3行があります:2026-09-02の 2000.00 USD の顧客支払い、2026-09-03の -29.00 USD のホスティング請求、2026-09-04の -12.50 USD のカフェ訪問です。ルールは、顧客を Income:Consulting、ホスティングを Expenses:Software、カフェを Expenses:Dining にマッピングし、ルールが命名するすべての勘定科目は、必要な日付で開始元帳に開始されています。
期待される解答は、行と開始残高から、報告出力には依存せずに導出されます:1000 + 2000 - 29 - 12.50 は 2958.50 USD の当座預金、2000 - 29 - 12.50 は 1958.50 USD の9月の利益です。入力が変更されたり、期待値が誤っていたりすると、もっともらしい報告を印刷する代わりに検証が失敗します。
方法論
2つの層に分けて分けて管理します。最初に、インストール済みCLI検証ツール(scripts/check-agent-accounting.py、bea 0.1.0 に固定)が、新規の一時ディレクトリで隔離された設定で、プレビュー、適用、再適用、チェック、残高、損益計算書クエリを実行します。プレビューが3件readyを報告し何も書き込まないこと、最初の適用で3件のエントリを書き込み、繰り返しで3件の完全な重複を持つ0件のreadyを報告し何も書き込まないこと、バイトの同一性がプレビューと拒否書き込みを維持すること、チェックがクリーンであること、両方の合計が上記の算術と一致することを検証します。また、Assets:Checking -5 USD に対して Expenses:Dining 4 USD という不均衡な取引を試み、終了コード1を要求し、元帳のバイトが変更されていないことを確認します。
第2に、ダウンロードの新しいコピーに対して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、9月の利益が 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.失敗と介入
トランスクリプトは元の順序を失敗を含めて保持します。2件の探索的な呼び出しは無害に失敗し(pip がインストールされていなかった;編集可能インストールのパス検索でsite-packages外のソースが見つかった)、エージェントは先に進みました。1件の失敗は実際のものでした:最初の --apply がワークスペース外のキャッシュロックで Operation not permitted で終了し、サンドボックスがホームキャッシュのロックファイルをブロックしたためです。エージェントはプロダクトソースを検索し、キャッシュディレクトリが XDG_CACHE_HOME を尊重することを見つけ、それをワークスペース内への設定して再実行し、プレビューで表示されたと同じ3件のエントリを書き込み、後に一時キャッシュを削除しました。元帳は手で編集されることはありませんでした。すべてのエントリは bea import --apply からのものでした。実行中の介入:なし — 承認なしのヘッドレスで、実行後だけ人がイベントログをレビューしました。
制限事項
これは、合成データに対する1つのクライアントの1実行のCLI出力検証であり、モデルのベンチマークではありません。他のクライアントや、一般的な会計の精度、監視なしでの本番使用については何も主張しません。2つの重要な区別があります。まず、カテゴリ判断と構造的バリデーション:エージェントが各行に属する勘定科目を選択し、その判断はあいまいなない3行の読み取りと同じ程度の品質です。 * bea がその後検証したすべてのもの — 残高、ゼロサムの構造、重複検出 — は構造的です:Expenses:Dining がカフェにとって正しかったと証明するものではありません。第二に、元帳はおもちゃです:3行、1通貨、カテゴリのあいまいさなく、矛盾する履歴はありません。より難しい明細は判断をテストするでしょう。このテストはループをテストします。
ダウンロード
すべてのチャレンジ入力と完全な実行記録は、すべてのロケールで共有される静的ファイルです:
- main.bean — 公開された通りに検証される開始元帳
- statement.csv — 3つの合成行
- rules.toml — 決定的なカテゴリ
- agent-run.transcript.md — 実際のプロンプト、失敗を含む完全なツールシーケンス、独立した検証
- demo-replay.sh — 動作する経路のラベル付き決定的リプレイ(PATHに
bea 0.1.0が必要) - demo-replay.txt — キャプション付きのリプレイ出力のテキスト代替
再現するには:3つの入力をダウンロードし、最初にプレビュー、適用、そして 1000 + 2000 - 29 - 12.50 に対して2つの合計をチェックしてください。 エージェントガイド は、同じプロセスを手作業で実行します。





