Die meisten Buchhaltungsteams gleichen Rechnungen immer noch von Hand ab — kopieren Zahlen zwischen Tabellenkalkulationen, jagen Genehmigungen per E-Mail hinterher und beheben Abweichungen Zelle für Zelle. Ein einzelner KI-Agent, gebaut mit dem Anthropic Agents SDK, kann das alles in Sekunden erledigen.
Dieser Leitfaden führt durch den Aufbau eines Rechnungsverarbeitungsagenten, der Einzelposten aus PDFs extrahiert, sie mit Ihrem Hauptbuch abgleicht und Abweichungen zur menschlichen Prüfung markiert.
Warum das Anthropic Agents SDK?
Das Anthropic Agents SDK ermöglicht es, Agenten mit Anweisungen, Werkzeugen und Übergabelogik zu definieren — und sie dann in Workflows zu orchestrieren, die von Claude angetrieben werden. Anders als starre RPA-Skripte können diese Agenten über Randfälle nachdenken und sich von unerwarteten Formaten erholen.
Wesentliche Vorteile gegenüber traditioneller Automatisierung:
- Verarbeitet unstrukturierte Daten — OCR + LLM-Parsing schlägt vorlagenbasierte Extraktion
- Selbstkorrigierend — Agenten können ein unscharfes Feld erneut lesen oder um Klärung bitten
- Komponierbar — neue Agenten hinzufügen (z.B. einen Prüfer), ohne die Pipeline umzuschreiben
Architekturübersicht
Das System verwendet drei Agenten, die sequenziell arbeiten:
- Extractor — liest PDF-Rechnungen, gibt strukturiertes JSON aus
- Matcher — vergleicht extrahierte Daten mit dem Hauptbuch mittels Fuzzy Matching
- Reporter — erstellt eine Abstimmungszusammenfassung mit markierten Positionen
Projekt einrichten
pip install anthropic-agents pandas pdfplumberDen Extractor-Agenten definieren:
from agents import Agent, Runner
extractor = Agent(
name="Invoice Extractor",
instructions="Extract line items from PDF invoices into structured data. You are an expert at reading financial documents.",
model="claude-sonnet-4-5",
tools=[pdf_reader_tool],
)Jeder Agent bekommt fokussierte Anweisungen. Der Parameter tools injiziert Fähigkeiten — hier ein PDF-Reader, der Seitentext zurückgibt.
Die Matching-Logik aufbauen
Der Matcher-Agent verwendet Pandas, um extrahierte Rechnungen mit dem Hauptbuch zu vergleichen:
import pandas as pd
def match_invoices(extracted: list[dict], ledger: pd.DataFrame) -> pd.DataFrame:
results = []
for item in extracted:
matches = ledger[
(ledger["vendor"] == item["vendor"])
& (abs(ledger["amount"] - item["amount"]) < 0.01)
]
results.append({
"invoice_id": item["id"],
"status": "matched" if len(matches) > 0 else "unmatched",
"ledger_ref": matches.iloc[0]["ref"] if len(matches) > 0 else None,
})
return pd.DataFrame(results)Für den Produktiveinsatz würden Sie Fuzzy-String-Matching bei Lieferantennamen und Datums-Toleranzen für Zahlungsbedingungen hinzufügen.
Die Agenten-Pipeline ausführen
Die Agenten in einen sequenziellen Workflow mit Übergaben verdrahten:
import asyncio
from agents import Agent, Runner
reporter = Agent(
name="Reporter",
instructions="Produce a reconciliation summary with flagged items from the matching results.",
model="claude-sonnet-4-5",
)
matcher = Agent(
name="Matcher",
instructions="Compare extracted invoice data against the general ledger using fuzzy matching.",
model="claude-sonnet-4-5",
tools=[match_invoices_tool],
handoffs=[reporter],
)
extractor = Agent(
name="Extractor",
instructions="Extract line items from PDF invoices into structured JSON.",
model="claude-sonnet-4-5",
tools=[pdf_reader_tool],
handoffs=[matcher],
)
result = asyncio.run(Runner.run(extractor, input="Process the invoices in /data/invoices/"))Der Aufruf Runner.run() startet mit dem Extractor, der an den Matcher übergibt, der an den Reporter übergibt — und dabei automatisch Kontext zwischen den Agenten weiterreicht.
Ergebnisse und nächste Schritte
In unserem Pilotprojekt mit einem mittelständischen Logistikunternehmen verarbeitete diese Pipeline 340 Rechnungen in 12 Minuten — Arbeit, für die ein Junior-Buchhalter zuvor zwei volle Tage brauchte.
Der Agent markierte 23 Abweichungen, von denen 21 echte Unstimmigkeiten waren und 2 falsch-positive Ergebnisse (eine Präzisionsrate von 91%). Mit Prompt-Tuning brachten wir die falsch-positiven Ergebnisse in der zweiten Iteration auf null.
„Wir haben nicht den Buchhalter eliminiert — wir haben die Plackerei eliminiert. Unser Team verbringt seine Zeit jetzt mit Analyse und Lieferantenverhandlungen statt mit Dateneingabe." — CFO, Logistikkunde
Wie es weitergehen kann
- Einen Genehmigungsworkflow-Agenten hinzufügen, der markierte Positionen über Slack an die richtige Person weiterleitet
- Integration mit QuickBooks oder Xero APIs für direkten Hauptbuchzugriff
- Geplante Ausführungen mit einem Cron-Job oder Airflow DAG einrichten
- Anomalieerkennung hinzufügen, um ungewöhnliche Muster über Monate von Daten zu erkennen
