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.