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:
- 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.
- 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
relevanceThresholdare skipped. - 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
| Trigger | Description |
|---|---|
| Automatic nightly | Runs 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 call | Triggered immediately via POST /memory/propagate. Useful after bulk imports, onboarding a new agent, or debugging the pipeline. |
| Threshold-based | If 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
settings:
memory:
propagation:
enabled: true
relevanceThreshold: 0.72 # Entries below this score are not promoted
scheduleTime: "02:00" # Nightly run time (UTC)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.
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.
DELETE /memory/workspace/entry_abc123
# Response:
# { "status": "retracted", "entryId": "entry_abc123" }