Write candidate memories with a source and intended scope. Consolidate without losing retrieval identity or revision history, and make memory retrievable only within its declared scope.Agent-maintained memory pipelines
Update reusable task memory.
reusable_memory_updateRECORD STATUSCandidate · v0.1.0UML class view
The proposed contract drawn as participant roles, received calls, and numbered dependencies.
Object interactions
The same roles and calls as a class collaboration and a numbered message sequence.
Pointcut
Where the mechanism applies. All four dimensions belong to the proposed match, not just its vocabulary.
- Context
- The harness selects and stores knowledge across tasks or sessions.
- Trigger
- An observation, reflection, or memory write is processed.
- Structure
- Selection, consolidation, provenance, access control, retrieval, and revision.
- Effect
- Stored memory is traceable, retrievable within scope, and updateable.
Protected contract
The obligation that clients, operators, and auditors should be able to rely on.
- Requires
- Candidate memory has a source and intended scope.
- Ensures
- Retrieval identity and revision history survive consolidation.
- Invariant
- Untrusted memory cannot silently redefine instructions or permissions.
- Violation
- Stale, poisoned, or conflicting memory is quarantined or rejected.
Negative control
A chat transcript retained in memory is not an update pipeline.
Variation & lifecycle
The hot spot is admitted only where the protected semantics survive.
Permitted variation
Observational memory, vector store, summary file, scoped project memory.
Test obligation
Test source provenance, poisoning, stale update, deletion, and cross-scope read.
Evolution question
Did persistent memory add provenance and poisoning defenses?
Prompt + code design
An illustrative prompt and a small design sketch for the proposed contract. Names and APIs are invented; this is not a repository excerpt.
def consolidate(candidate, store):
existing = store.find(candidate.key, scope=candidate.scope)
if existing and existing.source == candidate.source:
return store.revise(existing.id, candidate.content)
record = MemoryRecord(
key=candidate.key,
content=candidate.content,
source=candidate.source,
scope=candidate.scope,
revision=1,
)
return store.insert(record)Illustrative design sketch. A memory without a source or scope cannot be audited or safely revoked. This example is a teaching aid, not implementation evidence or a conformance claim.
Detection & matching
The frozen rule that retrieves this record, the canonical source exemplar, and the control that should stay unmatched.
- Join point
reusable_memory_update- Source locator
- Barbaste et al., §9.6, p. 33 (“Persistent Memory Pipelines”); Table 12 “Agent-Maintained Memory”, p. 53; source label
- Lexical cue
(?i)\b(?:memory[_-]?(?:pipeline|store|update|manager)|remember|memories)\bFrozen expression, v0.1.0. A match is a retrieval cue, not a confirmed implementation.- Aliases
- None
- Canonical exemplar
- mastra-ai/mastra
packages/memory/src/processors/observational-memory/observational-memory.ts:423Support: packages/memory/src/processors/observational-memory/__tests__/observational-memory.test.ts:1 - Negative control
- A chat transcript retained in memory is not an update pipeline.
Scope-anchored review. pohe-agent analyze <repo> --pattern P28 anchors the cue to its enclosing declaration and checks a separate operational signature for all four pointcut dimensions. Missing roles and negative-control risks remain visible; a structural match is not E2/E3. Calibration report ↗
Repository files
Up to five public files retrieved by the frozen cue and pinned to the audited commit. A match is a place to inspect, not a confirmed implementation.
packages/memory/src/processors/observational-memory/observational-memory.ts:423CANONICAL SOURCE02aaif-goose/goosecrates/goose-cli/src/commands/configure.rs:1217RETRIEVAL CUE03affaan-m/ECCskills/skill-comply/scripts/spec_generator.py:39RETRIEVAL CUE04agno-agi/agnolibs/agno/agno/memory/manager.py:41RETRIEVAL CUE05anomalyco/opencodepackages/cli/src/index.ts:105RETRIEVAL CUEEvidence & provenance
Each layer answers a different question. Do not substitute retrieval for review.
Source-located exemplar
A concrete source anchor is available for this proposed record. It is one exemplar, not evidence that all repositories—or every contract field—conform.
Review boundary: this candidate and its specification come from an AI-assisted study. Independent human validation remains open.
94.4% of repository families in the frozen panel have at least one current cue, historical cue, or canonical source layer. This is not confirmed prevalence.
Current lexical-cue repositories: 38 / 41899383db98e0packages/memory/src/processors/observational-memory/observational-memory.ts:423packages/memory/src/processors/observational-memory/__tests__/observational-memory.test.ts:1Observation, reflection, and persistence pipeline.
Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:memory[_-]?(?:pipeline|store|update|manager)|remember|memories)\bThis expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.