
A hand-built multi-agent personal finance system: an extraction agent reads statements (CSV, PDF, image, or DOCX) into structured transactions, a categorizer agent uses a deterministic merchant lookup with LLM fallback and flags its own low-confidence guesses, a self-correction pass re-checks those flagged rows with a stricter prompt, and a Budget Advisor agent reviews the categorized totals against spending benchmarks to write plain-English recommendations. Built without an agent framework (no LangChain/CrewAI) specifically to learn how agent loops and multi-agent handoffs work under the hood.
Key Features
- Accepts one or more statements per upload in CSV, PDF, PNG/JPG, or DOCX format and merges them into a single transaction table
- Categorizes every transaction with a tool-calling agent that checks a deterministic known-merchant lookup first and only falls back to model judgment when needed
- Self-corrects by re-running anything the agent itself flags as low confidence through a stricter, reasoning-required second pass
- Hands the categorized summary to a second agent, a Budget Advisor, which checks category spend against budgeting benchmarks via its own tool and writes a plain-English recommendation
- Uses Claude native PDF/image input for extraction and python-docx for Word document text extraction
- Includes a hand-labeled evaluation set and script that measures categorization accuracy end-to-end
- Hand-rolled agent loop reused across four specialized agents instead of relying on an agent framework
- Deployed as a live demo on Streamlit Community Cloud
PythonStreamlitAnthropic Claude APIpandaspython-docxMulti-Agent SystemsTool Calling