DEV Community

Cover image for My financial advisor doesn't know I bought NVDA yesterday. My AI agent does.
SoloCFO
SoloCFO

Posted on

My financial advisor doesn't know I bought NVDA yesterday. My AI agent does.

I tried the obvious stuff first.

Spreadsheets. Accurate, but mute. They sit there. They don't tell me when something matters. I'd open the file once a quarter, panic-update some cells, and close it again.

Robo-advisors. Generic. They don't know my retirement-account contribution caps. They don't know I have a side income I'm trying to grow. They don't know about the ticker I bought yesterday. They give me a 60/40 allocation and a polite email once a month.

AI chatbots. Every conversation starts from zero. Ten minutes of "I'm 35, I make X, I have Y in retirement, I want to retire at Z" before I get to my actual question.

What I actually wanted was a CFO who already knows my situation. Reads my portfolio. Knows my retirement target year. Remembers I'm overweight in tech and under-allocated to dividends. Surfaces the one signal that matters this week — not the seventeen that don't.

So I built it. Here's what it looks like.

ARIA rotation review

That's it. No "what's your risk profile, sir?" No "I am an AI and cannot give financial advice." It already has the context. It just answers.

Same agent, different question:

Finance retirement scenario

Two agents. One routing prefix. Backed by local JSON files I update myself. No SaaS. No my-data-on-someone's-server. Just folders.

The trick: lazy loading

The naive way to build a multi-agent system is to load every agent definition into every conversation. By turn 30 you've burned through your context window and Claude is hallucinating.

The trick is a routing table at the root. Only that table loads at startup. When I type [INVEST], the router matches the prefix and then pulls in the full ARIA agent + its knowledge files. Type [FINANCE] and it swaps to the other agent's stack instead.

Result: ~80% token reduction on long sessions, and each agent stays sharp because its context isn't polluted by the other one's history.

The routing pattern is six lines of Markdown. Claude reads it, matches my prefix, loads only what's needed. That's the whole magic.

Get it

Repo: github.com/jasonsieg22/claude-finance-agents

MIT licensed. Fork it, strip the example numbers, drop your real ones into the gitignored slots, and you have your own CFO by the end of the afternoon.

Full writeup on Substack: thesolocfo.substack.com

— solocfo

Top comments (0)