Financial Advisor
A tool, a focused assistant and a page working together.
What you'll learn
- How one tool serves the assistant and the page.
- Which actions the page may not do.
- Settings, secret keys and permissions.
What people get: a watch list of the stocks and funds they follow, with prices, charts and the news that matters. They can add what they own to see their total, their mix and how it's doing. They can ask the advisor on its own page, or just ask Tallgeese's main chat. It never tells anyone to buy or sell a particular security.
What's inside
How the tool is organised
The tool's abilities fall into groups, and each group is treated differently:
| Group | Examples | Who can use them |
|---|---|---|
| Look things up | list_portfolio, asset_mix, performance, trend, find_symbol | The assistant and the page |
| Change data | watch, unwatch, set_holding, edit_lists | The assistant and the page |
| Destructive | delete_account, delete_list | Both, but each asks first, and the page adds its own "are you sure?" |
| Consequential | record_trade | The assistant only, and it always asks. The page can't do this at all. |
| Helpers | record_quotes, save_news | The assistant, to keep what it found on the web |
The assistant's instructions
The instructions are short and show what a good specialist prompt contains:
- One job, said first. "Your only job is the person's investments."
- Which tool for which question. "Use
list_portfoliofor holdings,asset_mixfor weights,performancefor how it did. Never estimate a number yourself." - How to start from nothing. If nothing is held or watched, ask which investments they'd like to follow. Ask what they own only if they want a total, and never ask for account numbers or logins.
- What to do when it's ambiguous. If a name doesn't clearly match one company, or is listed in several markets, ask which.
- Combine with built-in abilities. "Try the price tool first. For any it couldn't price, search the web, fetch a quote page, and keep the price with its source and time. Never give a price from memory."
- Hard limits. Always say "as of" with the time and source. Don't recommend buying or selling.
Settings and permissions
[[settings]]
id = "price_service"
kind = "choice"
choices = ["tiingo", "alphaVantage"]
group = "prices"
[[settings]]
id = "price_key"
kind = "secret" # stored safely; only the tool can read it
group = "prices"
[[permissions]]
id = "trades"
default = "ask"
tools = ["record_trade"]
The key is optional. Without one, the advisor falls back to web search. The page never sees the key, only whether one is set.
Ideas to borrow
Confirm consequences in chat
Anything that matters is confirmed in the conversation, where the person sees exactly what's being asked, not behind a button.
Two answers from one tool
Plain text for the assistant, structured data for the page. The assistant never has to read the data meant for drawing.
Ask the database for pieces
Keep small tables whole, but query large ones (history, news) for just what a screen needs.
Respect the time budget
Batch web requests and use efficient parsing. A call has 30 seconds and a limited number of requests.