Memory

Team Memory Propagation

Valuable insights from personal agent memory are automatically promoted to shared workspace memory. This allows knowledge that is relevant to the whole team — architecture decisions made in a private conversation, useful debugging patterns, recurring project facts — to surface to other agents in the workspace without requiring any manual action. Content-hash deduplication prevents redundant entries, and relevance scoring ensures only genuinely useful content is promoted.

How it works

Propagation runs a three-stage pipeline:

  1. Promotion pipeline — Scans Tier 2 (daily notes) and Tier 3 (user profile) entries created or updated since the last propagation run. Entries that are flagged as workspace-relevant (by type, tag, or explicit marking) are passed to the next stage.
  2. Relevance scoring — Each candidate entry is scored against the workspace's existing knowledge graph and workspace memory. The score reflects how informative and non-redundant the entry is. Entries below the configured relevanceThreshold are skipped.
  3. Deduplication — The content hash of each candidate is compared against existing workspace memory entries. Entries with a matching hash are skipped entirely, preventing duplicate noise in shared memory.

Promotion triggers

TriggerDescription
Automatic nightlyRuns on the schedule defined in memory.propagation.scheduleTime. Processes all users in the workspace whose personal memory has been updated since the last run.
Manual API callTriggered immediately via POST /memory/propagate. Useful after bulk imports, onboarding a new agent, or debugging the pipeline.
Threshold-basedIf a single personal memory entry receives a relevance score above 0.95, it is promoted immediately without waiting for the nightly run. Configurable via memory.propagation.immediateThreshold.

Configuration

yaml
settings:
  memory:
    propagation:
      enabled: true
      relevanceThreshold: 0.72   # Entries below this score are not promoted
      scheduleTime: "02:00"      # Nightly run time (UTC)
💡Only entries at or above the relevanceThreshold are promoted to workspace memory. Raising this value produces a smaller, higher-quality shared memory. Lowering it increases coverage at the cost of more noise.

Manual propagation

Use dryRun: true to preview what would be promoted without writing any entries. This is useful for validating your threshold configuration.

bash
POST /memory/propagate
{
  "userId": "user_abc123",
  "workspaceId": "ws_xyz789",
  "dryRun": false
}

# Response:
# {
#   "promoted": 7,
#   "skipped": 14,
#   "deduplicated": 3
# }

Retracting a propagated entry

If a propagated entry is incorrect or no longer relevant, it can be retracted from workspace memory at any time. Retraction does not remove the original entry from the source user's personal memory.

bash
DELETE /memory/workspace/entry_abc123

# Response:
# { "status": "retracted", "entryId": "entry_abc123" }