Write memory

Three ways in. Pick the one that matches what you already have.

You have triples

Use remember for one fact. Use remember_many for a batch (1–100). Prefer the batch.

Both exist on REST and MCP.

{
  "facts": [
    { "subject": "user:maya", "predicate": "display_name", "object": "Maya" },
    { "subject": "user:maya", "predicate": "has_skill", "object": "TypeScript" }
  ],
  "source": "onboarding"
}

source is a label for you. It is not searched as a triple.

You have prose

Use feed on REST. Send raw content or a messages array. Gomind extracts triples and stores them.

Pass reason: true when you want the ingest to look at existing memory first: keep only durable facts, namespace type:id, normalize, and skip duplicates. Default feed is a single extraction pass.

Feed is not an MCP tool. If the agent already has triples, call remember / remember_many instead.

You need to undo

POST /v1/forget (MCP forget) removes one triple. POST /v1/forget_entity (MCP forget_entity) removes every fact about an entity. Same type:id you stored.

REST-only agent loop

POST /v1/mind runs a server-side agent that may call remember and recall for you. Use it when the prompt is the work. Do not use it for deterministic ingestion.