Triage your inbox with an agent
A pile of half-written notes with no tags, no summary, no obvious home — a classic inbox problem. Solomon agents can do the triage pass for you: they read a note, decide what it needs, and propose the change for you to review. Nothing lands until you accept it.
The pieces (grounded in what actually ships)
- Agents live as files:
Agents/<name>.md, each with frontmatter (name,model,backend,tools,triggers,auto_accept) and a body that's the agent's instructions. - Triggers fire on a frontmatter key/value. An agent's
triggerslist says whichfrontmatter_key/valuepair dispatches it — e.g. addingagent: tag-suggestto a note and saving is what invokes the built-intag-suggestagent on that note. - Agents propose, they don't write directly. The
propose_changetool (available to every shipped agent) stages afrontmatter_patch(or a body edit) as a pending change — it does not touch the note until you say so. - You review in the note's right sidebar. Pending proposals show up
there with Accept/Reject buttons per change.
auto_accept: false(the default on every shipped agent) means even a well-behaved agent still waits for you.
This is the same propose-by-default discipline the MCP write tools use for external agents (Claude Code, etc.) — see the MCP docs for that side of it. Here, the "agent" is a first-party Solomon agent running against your vault.
Solomon ships three triage-shaped agents already
You don't have to write one from scratch to try this:
tag-suggest— reads a note, looks at how the rest of your vault is tagged, and proposes 2–5 tags (frontmatter_patch: { tags: [...] }). Reuses your existing tag vocabulary rather than inventing new tags.summarize— reads a note and proposes a 2–3 sentencesummaryfield capturing intent, not just the first paragraph. Leaves the body untouched.librarian— the fuller triage pass: proposestags, atopicphrase, and afolder_suggestiontogether (falls back to suggestinginbox/when nothing existing fits, rather than inventing a new folder). It suggests a folder; it doesn't move the file for you.
All three refuse to churn: if a note's frontmatter already matches what they'd propose, they propose nothing.
Running the playbook
- Pick your inbox. Any folder of under-processed notes works — a
literal
Inbox/, or just your most recently created notes. - Add the trigger to a note's frontmatter and save:
(Swap inagent: librariantag-suggestorsummarizeif you only want one of the three behaviors.) - Wait for the proposal. The agent reads the note plus a sample of your
vault (via
vault_search), then callspropose_changewith its suggested fields and a short change summary (e.g. "Categorize: tags + topic + folder suggestion"). - Review it in the right sidebar. Each pending change shows what's changing; Accept applies it, Reject discards it. Nothing is silent — you see every field the agent wants to touch before it lands.
- Batch it. To triage a whole folder at once, add the trigger to each
note in it (a quick pass with multi-select, or scripted via the CLI/MCP
note_set_propertiestool if you're comfortable driving it that way) — proposals queue up per note for you to work through.
Going further
Nothing stops you from writing your own triage agent — copy one of
Agents/librarian.md, Agents/tag-suggest.md, or Agents/summarize.md as a
starting point, change its name, triggers, and instructions, and save it
as a new Agents/<name>.md. As long as it uses propose_change for its
writes, it inherits the same review-before-apply guarantee.
See also
- Solomon's
Agents/folder in your own vault — read the shipped agents directly for the exact instructions they follow. - [[Agents and skills]] — the concept page behind agents, skills, and the propose/approve loop.
- [[MCP tool surface]] — how external agents (not first-party Solomon agents) get the equivalent propose-vs-force choice via a key's mode.
- [[Query your vault with bases]] — pair a live base view with an agent pass over the same notes.