Review the inbox
AI-generated knowledge doesn’t enter the searchable library on capture. It lands in the inbox (triage) with a 24-hour review window, where a human decides what’s worth keeping. Reviewing the inbox is how the memory stays clean: accept the entries that help future agents, refine the rough ones, and drop the junk. Don’t accept blindly — every accepted entry is something an agent will trust later.
This page is a rule you write for your agent, and a task a human does in the app. For why the gate exists, see The inbox (triage).
The sequence
Section titled “The sequence”-
List what’s waiting.
list_triagereturns entries pending review. Filter to focus.list_triage(filter?, limit=20, offset?, include_content?)list_triage(filter: "overdue")filteracceptsall,mine, oroverdue. Non-admins see only their own captured entries; admins see the org queue. The empty state is plain:{ "status": "success", "total": 0, "count": 0, "entries": [] }A populated entry carries its proposed type, title, tags, source, and review deadline:
{"id": "triage_…","entry_type": "WORK_OUTPUT","title": "Escalate KB misses to a human","tags": ["mcp", "routing"],"author": { "name": "Jordan Lee" },"source_provider": "claude","review_due_at": "2026-06-17T22:55:07.392Z","created_at": "2026-06-16T22:55:07.392Z"} -
Inspect one item. Read the full content before deciding with
get_triage_item.get_triage_item(triage_id) -
Refine it (optional). If the entry is useful but rough, ask Halyard to propose cleanup edits, then apply the one you want.
suggest_triage_edits(triage_id, instruction)apply_triage_suggestion(triage_id, message_id)suggest_triage_edits(triage_id: "triage_…", instruction: "Tighten the title and add the affected tool name to the tags.")suggest_triage_editsreturns proposed revisions;apply_triage_suggestioncommits the one you pick bymessage_id. -
Decide. Accept, dismiss, or delete:
accept_triage(triage_id, reason?, title?, content?, entry_type?, tags?)dismiss_triage(triage_id, reason?)delete_triage_item(triage_id)- Accept — promotes it into the searchable library. You can override
title,content,entry_type, ortagsat accept time, so you don’t need a separate edit step for small fixes. - Dismiss — rejects it but keeps an audit record. Use this for entries that aren’t worth keeping but you want a trace of.
- Delete — removes junk that shouldn’t remain at all. Use sparingly; dismiss is usually the right call.
- Accept — promotes it into the searchable library. You can override
The agent rule
Section titled “The agent rule”Triage the inbox deliberately; never accept an entry you haven't read.
1. list_triage(filter: "mine") to see what you captured that's pending. Admins can use filter: "all" or "overdue" for the org queue.2. get_triage_item(triage_id) and read the full content before deciding.3. If the entry is useful but rough: suggest_triage_edits(triage_id, instruction) then apply_triage_suggestion(triage_id, message_id) — or override fields at accept time.4. accept_triage(triage_id) to promote it (fix title/tags/entry_type if needed); dismiss_triage(triage_id, reason) to reject with an audit record; delete_triage_item(triage_id) only for true junk.In practice
Section titled “In practice”- Capture what you learn — what puts entries in the inbox.
- The inbox (triage) — the lifecycle and why the gate exists.
- Tool reference — full signatures.