Übergeben Sie einem externen KI-Agenten zwei Buchhaltungsaufgaben und behalten Sie jede Änderung am Hauptbuch unter Ihrer Kontrolle: Import einer Bank-CSV mit einer Vorschau-Prüfung, dann Beantwortung einer Saldenfrage aus Abfrage- und Berichtsausgaben.
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 eigenen API-Schlüssel. Nur der eingebaute bea ask-Helfer benötigt gehostete Anmeldeinformationen, und diese Rezepte verwenden ihn nicht.
Was der Agent tut und was bea tut
Der Agent schlägt Kategorien vor und entwirft Abfragen. Bea validiert die Hauptbuchstruktur und berechnet die Summen. Sie führen jeden Befehl unten selbst aus. Der Agent schreibt niemals direkt in Ihr Hauptbuch.
Rezept 1: Import eines Kontoauszugs mit agentenvorgeschlagenen Kategorien
Verwandeln Sie einen Bankexport in validierte Buchungen. Der Agent schlägt die Kategorisierungsregeln vor. Vorschau- und Duplikatsprüfung entscheiden, was geschrieben wird.
Voraussetzungen
Sie benötigen bea und ein frisches Demo-Verzeichnis. Kein Konto und kein Python-Importer erforderlich.
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"Aufgabenaufforderung kopieren
Fügen Sie diese Aufforderung zusammen mit dem CSV-Inhalt in Ihren externen Agenten ein:
Schlagen Sie Beancount-Kategorisierungsregeln für meine Bank-CSV-Zeilen vor.
Schlagen Sie eine TOML-Regel pro Händler mit einem Übereinstimmungsmuster und
einem Zielausgabenkonto vor. Ändern Sie niemals Daten, Zahlungsempfänger
oder Beträge. Lassen Sie Zeilen, die Sie nicht sicher kategorisieren
können, ohne Übereinstimmung: Sie werden unter Expenses:Uncategorized
mit Flag ! für meine Überprüfung verbucht. Ich führe die bea-Importvorschau
aus und wende sie lokal an. Sie schreiben nicht in mein Hauptbuch.CLI-Äquivalente ausführen
Zuerst eine Vorschau anzeigen, 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 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 bei -9.99 USD auf. Die Saldenabfrage meldet 930.01 USD auf dem Girokonto. Ein wiederholter Anwendungsdurchlauf meldet 0 bereit, 3 exakte Duplikate und schreibt 0 Buchungen.
Überprü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 Duplikatspolitik, Konfliktbehandlung und den fortgeschrittenen Python-Pfad folgen Sie der Bank-CSV-Anleitung.
Rezept 2: Beantwortung einer Saldenfrage ohne Schreibvorgänge
Beantworten Sie eine Frage zu den Demo-Büchern: Wie viel wurde im August 2026 für Lebensmittel und Kraftstoff ausgegeben. Der Agent entwirft die Abfrage. Schreibgeschützte Befehle erzeugen die Antwort.
Voraussetzungen
Sie benötigen das Demo-Hauptbuch aus Rezept 1 oder Ihre eigenen Bücher. Jeder Befehl unten ist schreibgeschützt.
Aufgabenaufforderung kopieren
Fügen Sie diese Aufforderung in Ihren externen Agenten ein:
Entwerfen Sie eine Beancount-Abfrage (BQL), die beantwortet: Wie viel habe
ich im August 2026 für Lebensmittel und Kraftstoff ausgegeben. Verwenden
Sie meine Kontonamen genau wie von bea list open aufgelistet. Schlagen
Sie nur schreibgeschützte Befehle vor: bea query oder bea report mit
einem expliziten --file-Ziel. Schlagen Sie keine Hauptbuchbearbeitungen
vor, um eine überraschende Summe zu korrigieren. Eine überraschende
Summe bedeutet, dass die Abfrage oder die Bücher überprüft werden müssen,
nicht eine ausgleichende Buchung.CLI-Äquivalente ausführen
Führen Sie die entworfene Abfrage gegen ein explizites Hauptbuchziel aus und überprüfen Sie 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-Umschläge, Exit-Codes und die Platzierung globaler Flags folgen der CLI-Referenz. Der Leitfaden zur Abfragesprache 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 ergeben 60.00 USD. Die Gewinn- und Verlustrechnung stimmt überein: 69.99 USD Augustausgaben mit einem Nettogewinn von -69.99 USD. Die JSON-Variante gibt dieselben Zeilen in data.rows mit Spaltenmetadaten in data.columns zurück.
Überprüfen und korrigieren
Eine Abfrage gegen einen falschen Kontonamen gibt (keine Zeilen) auf stderr aus und beendet 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 es der Antwort anzupassen. Korrigieren Sie die Abfrage oder korrigieren Sie die Bücher, dann führen Sie bea check erneut aus.
Wenn aus einem Rezept eine wiederkehrende Aufgabe wird
Die obigen Aufforderungen eignen sich für einmalige, manuell gesteuerte Aufgaben. Aufgaben, die Sie wöchentlich wiederholen, eignen sich für die versionierten Fähigkeiten im Produkt-Repository. Jeder untenstehende Link öffnet die aktuelle Quelle der Fähigkeit, die ihre eigenen Einrichtungs- und Auslöseranweisungen 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 stadiert jede Zeile, schlägt Kategorien aus der Hauptbuchhistorie vor, überspringt bereits importierte Zeilen und schreibt nur nach Bestätigung. Rezept 1 oben ist die manuelle Form dieser Aufgabe.
- 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-Saldozusicherung.
- Beantworten Sie eine Frage aus den Büchern mit beancount-ask. Es führt schreibgeschützte Abfragen aus und zeigt jede Abfrage neben ihrer Zahl. Rezept 2 oben ist die manuelle Form dieser Aufgabe.
- Schließen Sie einen Monat ab mit beancount-close. Es gleicht jedes aktive Konto ab, prüft wiederkehrende Buchungen und Überprüfungsflags und zeichnet den Abschluss als Commit auf.
Die vollständige Sammlung befindet sich im kanonischen Fähigkeitenbaum.
Geben Sie einem shell-fähigen Agenten bea oder laden Sie eine Fähigkeit in einen Client
Dies sind zwei getrennte Schritte. Die Installation von bea installiert oder konfiguriert niemals Fähigkeiten.
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 überprüfen, und bea validiert.
Eine Fähigkeit wird in den Agent-Client selbst geladen, über den eigenen Fähigkeitenmechanismus dieses Clients. Das Produkt-Repository stellt beiden unterstützten Clients einen kanonischen Baum zur Verfügung: Claude Code liest ihn unter .claude/skills und Codex unter .agents/skills, als verlinkte Verzeichnisse in dieselbe Quelle. Zeigen Sie die Fähigkeitenposition des Clients auf den Fähigkeitenordner, den Sie benötigen, und lesen Sie weiterhin seine aktuelle Quelle für Auslöserphrasen und Aktualisierungen.
Fragen im Stil von „ask“ ohne bea ask
Rezept 2 beantwortet Hauptbuchfragen mit einem externen Agenten plus schreibgeschützten bea query- und bea report-Befehlen. Dieser Pfad ist lokal. Er benötigt kein Konto und keine zusätzliche Installation.
bea ask ist ein separater eingebauter Helfer. Er ist weder das obige Rezept noch die beancount-ask-Fähigkeit. Er leitet die Frage durch den gehosteten KI-Dienst, benötigt also das ask-Extra und gehostete Anmeldeinformationen, 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 Anzahlen, Salden und Meldungen sind CLI-Verifizierungen. Die Aufgabenaufforderungen wurden nicht gegen ein Modell ausgeführt. Das Modellverhalten wird separat bewertet.




