Skip to content

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).

  1. List what’s waiting. list_triage returns entries pending review. Filter to focus.

    list_triage(filter?, limit=20, offset?, include_content?)
    list_triage(filter: "overdue")

    filter accepts all, mine, or overdue. 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"
    }
  2. Inspect one item. Read the full content before deciding with get_triage_item.

    get_triage_item(triage_id)
  3. 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_edits returns proposed revisions; apply_triage_suggestion commits the one you pick by message_id.

  4. 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, or tags at 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.
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.