Save Note
write_noteπ΄ WRITE β save a NOTE to the user's account (this PERSISTS data; it is NOT a read/lookup). Typical
flow: FIRST give the user your complete answer as usual, THEN β as the final step of the turn β call
write_note once to keep it.
π΄ IF YOUR ANSWER CONTAINED A TABLE / NUMERIC COMPARISON, keep it as a MARKDOWN table in `body` β lead with
the table, do NOT re-narrate the numbers into prose. Saving a figures answer as a wall of prose is the #1
note-quality failure; preserving structure OUTRANKS "distilling into a paragraph". (The figures are extracted
from these markdown tables later for charts β so a clean table with clear headers is what makes that possible.)
CONTENT: `subject` (short title), `body` (MARKDOWN β keep tables as tables, absolute headers like `FY2025`),
`summary` (1β2 sentences), `note_type` (reference/tracking/thesis/decision), `category`, `tags` β see each field.
ENTITY LINKS make the note findable + joinable to the graph β fill whenever the note touches specific things;
the server RESOLVES plain names for you. `stocks` (the subjects) Β· `mentioned_stocks` (referenced) Β· `gics`
(sector/theme, code or plain English) Β· `megatrend_ids` (advanced raw id) Β· `portfolio_id`.
π§ LINK THE NOTE'S HOME β the theme/sector, not just the stocks. If the note is about a TREND/tech/mechanism
("what is HBM", "solid-state batteries") or an established INDUSTRY/SECTOR ("retail", "airlines", "pharma"),
put the word(s) straight in `gics` (plain English β the server resolves each and routes a themeβmegatrend).
A note whose subject is a trend or a sector, saved with EMPTY `gics`, means you SKIPPED this. The only correct
empties: a single-stock note (stocks only) or a general concept with no home (P/E, EBITDA β don't force it;
tags/body still make it findable by semantic search).
WHEN TO SAVE β this is the investor's knowledge base; CAPTURE substantive investment content generously
(reference/understanding, a dated market-read WITH its 'why', a thesis/decision, curated research). Value
is realized on RETRIEVAL, so lean toward keeping. SKIP only the noise floor: chit-chat/thanks, trivial
lookups ("what's the ticker?"), or off-topic non-investment content (save that only if explicitly asked).
An explicit "save this / ΰΈΰΈΰΉΰΈ§ΰΉ" β always save. Otherwise, if the content is note-worthy, briefly OFFER to
keep it β don't nag on every turn, and don't save pure filler.
π·οΈ `agent` β ALWAYS set this to the app you are running in, chosen from the fixed list:
`Claude` (Claude apps / claude.ai / Desktop), `Claude Code`, `Claude Coworks`, `ChatGPT`, `Codex`,
`Gemini`, or `Other` (anything not listed). It stamps WHICH surface authored the note (provenance in
the user's knowledge base). Pick the single closest match; if genuinely unsure, use `Other`. Do not
invent values β only these are accepted.
Owner-scoped. Returns `{id, created_at, linked}` where `linked` confirms what was tied to the graph
(resolved ids + any `unresolved` names).Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"subject": "<subject>",
"body": "<body>"
},
"name": "write_note"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The note's full text in MARKDOWN β the distilled answer/observation/thesis to persist. PRESERVE the structure of your answer: any numeric / tabular data goes in a markdown TABLE (pipe syntax `| col | col |`), NEVER flattened into a paragraph of numbers; use headings (##) for sections and bullet lists for points. If you showed the user a table, the note keeps that table. | |
| gics | No | The note's INDUSTRY/SECTOR or THEME β a GICS code OR plain English ('banks', 'semiconductors', 'AI'); the server resolves each and routes a curated theme to a megatrend link. (Derived free if the note names representative stocks.) | |
| tags | No | Free-text tags for retrieval. | |
| agent | No | Which app is writing the note β EXACTLY one of: `Claude` | `Claude Code` | `Claude Coworks` | `ChatGPT` | `Codex` | `Gemini` | `Other` (case-sensitive); the server falls back to the connection's client info. | |
| stocks | No | PRIMARY stocks/assets the note is ABOUT β an exact Ava Advisor ticker OR a plain NAME the SERVER resolves (any asset class; an ambiguous name β reconfirm). β οΈ A COMMODITY discussed via the trade tools has only an HS code (riceβ1006), NOT a ticker β just put the NAME here ('rice'βresolved to RICE.COMM) so the note links to the commodity. | |
| context | No | OPTIONAL but RECOMMENDED β paste the user's FULL request VERBATIM (any language: 'ΰΈΰΈΰΈ£ΰΈ²ΰΈΰΈ²ΰΈΰΈ₯ΰΉΰΈ‘ΰΉ apple', 'compare Apple and Microsoft stock'). The server uses it to disambiguate which candidate each `ticker` entity means (the apple COMPANY vs the fruit COMMODITY; which Samsung). One context per call, shared by all tickers here. | |
| subject | Yes | Short title / subject line of the note. | |
| summary | No | One-line summary (shown when the note is collapsed). | |
| category | No | Optional free-text category. | |
| note_type | No | `reference` (concept/understanding) | `tracking` (dated market read) | `thesis` | `decision`. | |
| portfolio_id | No | Link the note to one of the user's portfolios, if relevant. | |
| megatrend_ids | No | ADVANCED β raw megatrend node id(s) if you already hold one (e.g. a theme tool's `megatrend.id`). Normally just name the theme in `gics` and the server routes it to a megatrend. | |
| mentioned_stocks | No | Secondary tickers merely referenced (a peer named in passing). |