Catalog/P family/P28
Proposed specificationSource-located exemplarH3

Agent-maintained memory pipelines

Update reusable task memory.

JOIN POINTreusable_memory_updateRECORD STATUSCandidate · v0.1.0
UML class view for Agent-maintained memory pipelines, showing participant roles, received calls, and analytical dependencies
FIG. P28 / UML CLASS VIEW
Object interaction diagram for Agent-maintained memory pipelines, showing role collaboration and a numbered message sequence
FIG. P28 / OBJECT INTERACTIONS
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.
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.

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 SKETCH
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.
CODE DESIGN / PYTHON
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.

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/mastrapackages/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 ↗

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.

ANY-EVIDENCE FAMILY COVERAGE34/36

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 / 41
Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:memory[_-]?(?:pipeline|store|update|manager)|remember|memories)\b

This expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.