Übergeben Sie einem externen KI-Agenten zwei Buchhaltungsaufgaben und behalten Sie jede Buchungsänderung unter Ihrer Kontrolle: Import einer Bank-CSV mit Vorschau-Prüfung, dann Beantwortung einer Saldenfrage aus Abfrage- und Berichtsausgabe.
Installieren Sie bea mit dem CLI-Schnellstart. Lokale Import-, Abfrage- und Berichtsbefehle benötigen kein Beancount.io-Konto. Ihr Chat-Agent benötigt nur sein eigenes Abonnement oder seinen API-Schlüssel. Nur der integrierte bea ask-Helfer benötigt gehostete Anmeldedaten, und diese Rezepte verwenden ihn nicht.
Bei der Auswahl von Werkzeugen? Fünf Buchhaltungswerkzeuge für KI-Agenten vergleicht Beancount.io, hledger, Xero, QuickBooks Online und Puzzle anhand derselben Agenten-Workflow-Kriterien, mit datierten Quellen.
Was der Agent tut und was bea tut
Der Agent schlägt Kategorien vor und entwirft Abfragen. Bea validiert die Buchungsstruktur und berechnet die Summen. Sie führen jeden untenstehenden Befehl selbst aus. Der Agent schreibt nie direkt in Ihr Hauptbuch.
Rezept 1: Kontoauszug mit agentenvorgeschlagenen Kategorien importieren
Verwandeln Sie einen Bankexport in validierte Buchungen. Der Agent schlägt die Kategorisierungsregeln vor. Vorschau und Duplikatprüfung entscheiden, was geschrieben wird.
Voraussetzungen
Sie benötigen bea und ein frisches Demo-Verzeichnis. Kein Konto und kein Python-Importer.
Eingaben vorbereiten
Erstellen Sie das Verzeichnis und das Hauptbuch. Explizite --file-Ziele halten jeden Befehl auf die Demo-Bücher ausgerichtet.
mkdir ai-agent-demo && cd ai-agent-demo
bea --no-input init books --currency USD --date 2026-08-01 --opening-balance "Assets:Checking 1000"
bea --file books/main.bean add open --date 2026-08-01 --account Expenses:Transport:Fuel -c USDSpeichern Sie dieses Beispiel als statement.csv:
Date,Payee,Narration,Amount
2026-08-02,Whole Foods,groceries,-20.00
2026-08-03,Shell,gas,-40.00
2026-08-04,Unknown Shop,mystery,-9.99Speichern Sie diese Kategorisierungsregeln als rules.toml:
[[rule]]
match = "whole foods|trader joe|corner market"
account = "Expenses:Groceries"
[[rule]]
match = "shell|chevron|exxon"
account = "Expenses:Transport:Fuel"Aufgaben-Prompt kopieren
Fügen Sie diesen Prompt zusammen mit dem CSV-Inhalt in Ihren externen Agenten ein:
Propose Beancount categorization rules for my bank CSV rows.
Suggest one TOML rule per merchant with a match pattern and a
destination expense account. Never change dates, payees, or amounts.
Leave rows you cannot categorize confidently unmatched: they post to
Expenses:Uncategorized with flag ! for my review. I run bea import
preview and apply locally. You do not write my ledger.CLI-Entsprechungen ausführen
Zuerst die Vorschau, dann die geprüften Buchungen anwenden und das Ergebnis verifizieren:
bea --file books/main.bean import statement.csv --csv date=Date,amount=Amount,payee=Payee,narration=Narration --account Assets:Checking --rules rules.toml
bea --file books/main.bean import statement.csv --apply
bea --file books/main.bean check
bea --file books/main.bean list transaction --flag '!'
bea --file books/main.bean query "SELECT account, sum(position) WHERE account = 'Assets:Checking' GROUP BY account"Erwartete Ausgabe prüfen
Die Vorschau meldet 3 bereit, 0 exakte Duplikate, 0 mögliche Duplikate und beendet sich mit 0. Sie schreibt nichts. Der Anwendungsdurchlauf meldet 3 Buchungen geschrieben. Die Prüfung meldet keine Fehler. Die !-Warteschlange listet die eine nicht zugeordnete Zeile von Unknown Shop mit -9.99 USD. Die Saldenabfrage meldet 930.01 USD auf dem Girokonto. Das Wiederholen der Anwendung meldet 0 bereit, 3 exakte Duplikate und schreibt 0 Buchungen.
Prüfen und korrigieren
Kategorisieren Sie die !-Zeile nach dem Lesen bewusst in Ihrem Hauptbuch neu. Eine bestandene Prüfung beweist nur, dass das Hauptbuch ausgeglichen ist. Sie sagt nichts darüber aus, ob Expenses:Uncategorized das richtige Konto ist. Für Duplikatsrichtlinie, Konfliktbehandlung und den fortgeschrittenen Python-Pfad folgen Sie dem Bank-CSV-Walkthrough.
Rezept 2: Saldenfrage ohne Schreibvorgänge beantworten
Beantworten Sie eine Frage aus den Demo-Büchern: Wie viel wurde im August 2026 für Lebensmittel und Kraftstoff ausgegeben? Der Agent entwirft die Abfrage. Read-only-Befehle erzeugen die Antwort.
Voraussetzungen
Sie benötigen das Demo-Hauptbuch aus Rezept 1 oder Ihre eigenen Bücher. Jeder untenstehende Befehl ist read-only.
Aufgaben-Prompt kopieren
Fügen Sie diesen Prompt in Ihren externen Agenten ein:
Draft a Beancount query (BQL) that answers: how much did I spend on
groceries and fuel in August 2026. Use my account names exactly as
listed by bea list open. Propose read-only commands only: bea query
or bea report with an explicit --file target. Do not propose ledger
edits to fix a surprising total. A surprising total means the query
or the books need review, not a compensating entry.CLI-Entsprechungen ausführen
Führen Sie die entworfene Abfrage gegen ein explizites Hauptbuchziel aus und überprüfen Sie dann mit einem Bericht:
bea --file books/main.bean query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"
bea --file books/main.bean report income-statement --time 2026-08Maschinelle Konsumenten fügen das globale --json-Flag vor dem Unterbefehl hinzu:
bea --file books/main.bean --json query "SELECT account, sum(position) WHERE account ~ 'Expenses' GROUP BY account"JSON-Hüllen, Exit-Codes und die Platzierung globaler Flags folgen der CLI-Referenz. Der Abfragesprachen-Guide dokumentiert die vollständige BQL-Oberfläche.
Erwartete Ausgabe prüfen
Die Abfrage meldet 20.00 USD für Expenses:Groceries, 40.00 USD für Expenses:Transport:Fuel und 9.99 USD für Expenses:Uncategorized. Lebensmittel plus Kraftstoff ergibt 60.00 USD. Die Gewinn- und Verlustrechnung stimmt überein: 69.99 USD August-Ausgaben mit einem Nettogewinn von -69.99 USD. Die JSON-Variante gibt dieselben Zeilen in data.rows mit Spaltenmetadaten in data.columns zurück.
Prüfen und korrigieren
Eine Abfrage gegen einen falschen Kontonamen gibt (keine Zeilen) auf stderr aus und beendet sich trotzdem mit 0. Vergleichen Sie den Namen mit der Ausgabe von bea list open und führen Sie die Abfrage erneut aus. Korrigieren Sie niemals eine überraschende Summe, indem Sie das Hauptbuch bearbeiten, um sie an die Antwort anzupassen. Korrigieren Sie die Abfrage oder die Bücher und führen Sie dann bea check erneut aus.
Erste Herausforderung: Drei synthetische Zeilen ausgleichen
Eine portable erste Herausforderung mit expliziten Eingaben und einer unabhängig abgeleiteten Antwort. Laden Sie die drei untenstehenden Dateien herunter, führen Sie den Import aus und prüfen Sie die beiden Summen. Kein Konto und kein Produkt-Checkout.
Eröffnen Sie Bücher am 2026-09-01 in USD mit 1000 USD auf dem Girokonto. Buchen Sie drei September-Zeilen: eine 2000.00-USD-Kundenzahlung, eine 29.00-USD-Hosting-Rechnung und einen 12.50-USD-Cafébesuch. Das Girokonto endet bei 2958.50 USD, aus 1000 + 2000 - 29 - 12.50. Der September-Gewinn beträgt 1958.50 USD, aus 2000 - 29 - 12.50. Beide Erwartungen stammen aus dieser Arithmetik, nicht aus der Berichtsausgabe.
Eingaben vorbereiten
Erstellen Sie das Verzeichnis und eröffnen Sie die beiden Konten, die die Vorlage nicht enthält. Expenses:Dining stammt bereits aus der CLI-Vorlage.
mkdir agent-challenge && cd agent-challenge
bea --no-input init books --currency USD --date 2026-09-01 --opening-balance "Assets:Checking 1000"
bea --file books/main.bean add open --date 2026-09-01 --account Income:Consulting -c USD
bea --file books/main.bean add open --date 2026-09-01 --account Expenses:Software -c USDDiese drei Befehle erzeugen das untenstehende Hauptbuch. Laden Sie es als main.bean herunter, statt es zu tippen.
option "title" "Personal ledger"
option "operating_currency" "USD"
; Add more accounts with bea add open. Amounts on credit accounts are negative.
; bea import books rows it cannot categorize to Expenses:Uncategorized with flag '!'.
2026-09-01 open Assets:Checking USD
2026-09-01 open Assets:Savings USD
2026-09-01 open Assets:Cash USD
2026-09-01 open Liabilities:CreditCard USD
2026-09-01 open Income:Salary USD
2026-09-01 open Income:Interest USD
2026-09-01 open Expenses:Groceries USD
2026-09-01 open Expenses:Dining USD
2026-09-01 open Expenses:Rent USD
2026-09-01 open Expenses:Transport USD
2026-09-01 open Expenses:Utilities USD
2026-09-01 open Expenses:Fees USD
2026-09-01 open Expenses:Uncategorized USD
2026-09-01 open Equity:OpeningBalances USD
2026-09-01 * "Opening balances"
Assets:Checking 1000 USD
Equity:OpeningBalances -1000 USD
2026-09-01 open Income:Consulting USD
2026-09-01 open Expenses:Software USDSpeichern Sie diesen Kontoauszug als statement.csv oder laden Sie ihn als statement.csv herunter:
Date,Payee,Amount
2026-09-02,Client,2000.00
2026-09-03,Hosting,-29.00
2026-09-04,Cafe,-12.50Speichern Sie diese Regeln als rules.toml oder laden Sie sie als rules.toml herunter. Jede Regel benennt ein Konto, das das Start-Hauptbuch eröffnet.
[[rule]]
match = "client"
account = "Income:Consulting"
[[rule]]
match = "hosting"
account = "Expenses:Software"
[[rule]]
match = "cafe"
account = "Expenses:Dining"Herausforderung ausführen
Zuerst die Vorschau, dann anwenden und verifizieren. Beträge, Daten, Feldnamen und Kontonamen sind in jedem Gebietsschema identisch. Nur der umgebende Text ist übersetzt.
bea --file books/main.bean import statement.csv --csv date=Date,amount=Amount,payee=Payee --account Assets:Checking --rules rules.toml
bea --file books/main.bean import statement.csv --csv date=Date,amount=Amount,payee=Payee --account Assets:Checking --rules rules.toml --apply
bea --file books/main.bean check
bea --file books/main.bean query "SELECT account, sum(position) WHERE account = 'Assets:Checking' GROUP BY account"
bea --file books/main.bean report income-statement --time 2026-09Erwartete Ausgabe prüfen
Die Vorschau meldet 3 bereit, 0 exakte Duplikate, 0 mögliche Duplikate und beendet sich mit 0. Der Anwendungsdurchlauf meldet 3 Buchungen geschrieben. Die Prüfung meldet keine Fehler. Die Saldenabfrage hält 2958.50 USD auf dem Girokonto. Die Gewinn- und Verlustrechnung zeigt 2000.00 USD Beratungseinkommen gegen 41.50 USD Ausgaben, für einen Nettogewinn von 1958.50 USD. Das Wiederholen der Anwendung meldet 0 bereit, 3 exakte Duplikate und schreibt 0 Buchungen.
Wenn ein Rezept zu einem wiederkehrenden Job wird
Die obigen Prompts eignen sich für einmalige, von Hand gesteuerte Aufgaben. Jobs, die Sie wöchentlich wiederholen, eignen sich für die versionierten Skills im Produkt-Repository. Jeder untenstehende Link öffnet den aktuellen Quellcode des Skills, der seine eigenen Einrichtungs- und Trigger-Anweisungen enthält. Dieses CMS führt keine Kopien dieser Dateien.
- Starten Sie ein frisches Hauptbuch aus einem leeren Verzeichnis mit beancount-init. Es erstellt die Hauptbuchdatei, einen Fava-Runner und ein Python-Projekt.
- Verwandeln Sie einen Bankexport in kategorisierte Buchungen mit beancount-import. Es stagt jede Zeile, schlägt Kategorien aus der Hauptbuchhistorie vor, überspringt bereits importierte Zeilen und schreibt erst nach Bestätigung. Rezept 1 oben ist die manuelle Form dieses Jobs.
- Beweisen Sie, dass ein Konto mit seinem Kontoauszug übereinstimmt, mit beancount-reconcile. Es vergleicht das Hauptbuch mit dem Kontoauszug und setzt nach Bestätigung eine Periodenend-Saldenbestätigung.
- Beantworten Sie eine Frage aus den Büchern mit beancount-ask. Es führt read-only-Abfragen aus und zeigt jede Abfrage neben ihrer Zahl. Rezept 2 oben ist die manuelle Form dieses Jobs.
- Schließen Sie einen Monat ab mit beancount-close. Es gleicht jedes aktive Konto ab, prüft wiederkehrende Buchungen und Prüf-Flags und protokolliert den Abschluss als Commit.
Die vollständige Sammlung befindet sich im kanonischen Skills-Baum.
Geben Sie einem shell-fähigen Agenten bea oder laden Sie einen Skill in einen Client
Dies sind zwei getrennte Schritte. Die Installation von bea installiert oder konfiguriert niemals Skills.
Ein shell-fähiger Agent benötigt den Befehl in seinem Pfad. Installieren Sie ihn mit dem CLI-Schnellstart, dann führt der Agent dieselben bea-Befehle aus, die die Rezepte zeigen. Der Agent schlägt vor, Sie prüfen und bea validiert.
Ein Skill wird in den Agent-Client selbst geladen, über den eigenen Skill-Mechanismus des Clients. Das Produkt-Repository stellt einen kanonischen Baum für beide unterstützten Clients bereit: Claude Code liest ihn unter .claude/skills und Codex unter .agents/skills, als verlinkte Verzeichnisse in dieselbe Quelle. Zeigen Sie die Skill-Position des Clients auf den Skill-Ordner, den Sie benötigen, und lesen Sie weiterhin seine aktuelle Quelle für Trigger-Phrasen und Updates.
bea ask lädt seine eigenen Skills separat, aus einer SKILL.md neben Ihrem Hauptbuch — siehe bea ask mit Skills erweitern.
Ask-ähnliche Fragen ohne bea ask
Rezept 2 beantwortet Hauptbuchfragen mit einem externen Agenten plus den read-only-Befehlen bea query und bea report. Dieser Pfad ist lokal. Er benötigt kein Konto und keine zusätzliche Installation.
bea ask ist ein separater integrierter Helfer. Er ist weder das obige Rezept noch der Skill beancount-ask. Er leitet die Frage durch den gehosteten KI-Dienst, benötigt also das ask-Extra und gehostete Anmeldedaten, wie in der CLI-Referenz dokumentiert. Installieren Sie zuerst die Basis-CLI, dann fügen Sie das Extra nur hinzu, wenn Sie gehostete Antworten wünschen.
Zitierte Ausgaben und CLI-Verifizierung
Jeder obige Befehl wurde gegen das veröffentlichte bea 0.1.0-Paket in einem frischen Verzeichnis ausgeführt. Zitierte Zähler, Salden und Meldungen sind CLI-Verifizierungen.
Ein Client hat die erste Herausforderung auf einer frischen Kopie der Downloads ohne vorab gelieferte Regeln abgeschlossen. Muse Code 1.1.1 (Modell muse-spark-1.3-contributor) leitete seine eigene Kategorisierung ab, zeigte 3 bereit in der Vorschau ohne Schreibvorgänge, wendete 3 Buchungen an und meldete 2958.50 USD Girokonto mit 1958.50 USD September-Gewinn — was den obigen Erwartungen entspricht. Sein ein fehlgeschlagener Anwendungsversuch (eine Sandbox-Cache-Sperre, behoben über XDG_CACHE_HOME) ist im Protokoll erhalten. Lesen Sie den vollständigen Prompt, die Werkzeugsequenz und die Verifizierung im Lauf-Transkript oder spielen Sie den funktionierenden Pfad mit dem Demo-Skript und seiner aufgezeichneten Ausgabe ab.
Dieser Lauf ist eine CLI-Ausgabe-Verifizierung einer einzelnen Ausführung, kein Modell-Benchmark. Er behauptet nichts über andere Clients, allgemeine Buchhaltungsgenauigkeit oder unbeaufsichtigten Produktionseinsatz.
Die vollständige Beweisgeschichte — Eingaben, Methodik, beobachtete Ergebnisse, Fehlschläge, Einschränkungen und Downloads — ist veröffentlicht als Kann Ihr Agent diese Bücher ausgleichen?.
Entdecken Sie die breitere Forschung hinter diesen Workflows bei Bean Labs, dem Buchhaltungsautomatisierungs-Forschungshub von Beancount.io.