Silo

Silo tool

silo_remember

Save knowledge into a silo. Pass raw conversation, a note, or a summary as `content` — the ingestion pipeline distills and enriches it asynchronously. Purely additive content queues immediately; content that would REPLACE or UPDATE existing memories returns a confirmation plan first — re-call with confirmed=true to apply it.

Input

{
  "silo_id": "uuid | 'default'",
  "content": "string",
  "source_label"?: "string  (e.g. 'Cursor chat 2026-05-07')",
  "confirmed"?: true,
  "joint"?: true  (shared silos only: a decision made together)
}

Output

// Additive content — queued for async ingestion + enrichment:
{ "status": "queued", "job_id": "uuid",
  "silo_id": "uuid", "silo_title": "...", "message": "..." }

// Would replace/update existing memories — confirm with the user first:
{ "status": "requires_confirmation", "summary": "...",
  "would_replace_or_update": [
    { "existing_memory_id": "uuid", "existing_content": "...",
      "proposed_change": "update | replace", "rationale": "..." }
  ], "instructions": "..." }

// Second call with confirmed=true — applied inline:
{ "status": "applied", "added": 1, "updated": 1, "deleted": 0,
  "added_memory_ids": [...], "updated_memory_ids": [...],
  "deleted_memory_ids": [...] }

Policy

Requires read_write access on the silo. Errors return { status: "rejected", error }.

Any silo_id parameter accepts either a UUID or the reserved alias "default" see how the default alias works.