Episodic Memory
memory
Unified episodic memory for recording decisions, failures, and patterns, then searching or browsing them later.
Absorbs: remember, recall, get_episodes.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | save, search, or list. |
agent_id | string | action=save | Agent identifier. |
decision | string | action=save | Decision or failure text. |
episode_type | string | No | decision (default), failure, pattern, rule_proposal. action=save. |
outcome | string | No | success, failure, partial, unknown (default). action=save. |
rationale | string | No | Why this decision was made. action=save. |
trigger | string | No | What prompted this episode. action=save. |
affected_files | string | No | JSON array of file paths. action=save. |
affected_nodes | string | No | JSON array of graph node IDs. action=save. |
tags | string | No | JSON array of tags (save) or comma-separated (search/list). |
project_id | string | No | Repo context filter. |
anchor_nodes | string | No | JSON array of node IDs for staleness tracking. action=save. |
memory_importance | string | No | pinned or float string. action=save. Default 1.0. |
query | string | No | Search query. Omit for chronological browse. action=search. |
outcome_filter | string | No | Filter by outcome. action=search. |
limit | number | No | Max results. Default 5 (search), 20 (list/browse). |
include_stale | boolean | No | Include invalidated memories. Default false. action=search. |
projects | string | No | Comma-separated federation aliases for cross-project search. |
as_of | string | No | Point-in-time query (RFC3339). action=search. |
since | string | No | Lower time bound (RFC3339). action=search. |
until | string | No | Upper time bound (RFC3339). action=search. |
depth | number | No | Graph traversal depth (default 2, max 4). action=search. |
since_days | number | No | Only episodes from last N days. action=list. |
Action: save
Record a decision or failure episode.
{ "tool": "memory", "arguments": { "action": "save", "agent_id": "claude-1", "decision": "Switched from mutex to channel-based synchronization", "episode_type": "decision", "outcome": "success", "rationale": "Channels are more idiomatic in Go and avoid deadlock risk", "affected_files": "[\"internal/mcp/server.go\"]", "tags": "[\"concurrency\", \"refactor\"]" }}Action: search
FTS5/semantic search across memories, or chronological browse when query is omitted.
{ "tool": "memory", "arguments": { "action": "search", "query": "authentication failures", "outcome_filter": "failure", "limit": 10 }}Action: list
Chronological episode browser with filters.
{ "tool": "memory", "arguments": { "action": "list", "since_days": 7, "tags": "refactor,performance" }}