symfonic.memory.models¶
models ¶
Pydantic data models for the graph memory system.
Re-exports all model classes for convenient importing.
AssembledContext ¶
Bases: BaseModel
Fully assembled context ready for LLM consumption.
.. deprecated:: AssembledContext is deprecated. Hydration is handled by SymfonicAgent._hydrate() which returns HydratedMemory.
Source code in src/symfonic/memory/models/context.py
is_within_budget ¶
Check whether this context respects all budget constraints.
Returns True if all component counts are within the budget limits.
max_memory_entries was removed in v5.6.0 (v6.0 API freeze prep);
memory-entry count is no longer budget-enforced -- the live
SymfonicAgent._hydrate path uses max_tokens instead.
Source code in src/symfonic/memory/models/context.py
CandidateNode ¶
Bases: BaseModel
Intermediate model normalizing vector and graph results before scoring.
The RetrievalEngine converts all candidate results (whether from vector search or graph traversal) into CandidateNode instances. Hits without a graph node get a synthetic MemoryNode with access_count=0 and graph_proximity=0.0.
ContextBudget ¶
Bases: BaseModel
Defines the limits for context assembly.
.. deprecated:: ContextBudget is deprecated. Budget constraints are now handled internally by SymfonicAgent._hydrate() via FrameworkConfig.
Source code in src/symfonic/memory/models/context.py
MemoryEdge ¶
Bases: BaseModel
A directed edge in the tenant-scoped memory graph.
Edges represent typed relationships between MemoryNodes, such as 'KNOWS', 'USED_IN', 'TRIGGERED_BY', etc. Weight can be used to express relationship strength.
MemoryEntry ¶
Bases: BaseModel
A memory entry returned from retrieval or submitted for writing.
Represents a single piece of information from any memory layer, optionally linked to a graph node and carrying a retrieval score.
MemoryNode ¶
Bases: BaseModel
A node in the tenant-scoped memory graph.
Nodes represent facts, events, skills, triggers, or working context depending on their layer assignment. Each node carries an optional embedding vector for similarity search and tracks access frequency for retrieval scoring.
durability
property
¶
Return the node's durability marker (v7.26.2 -- Shape C1).
Reads from properties['durability']. Pre-v7.26.2 nodes (and
adopters who never set the key) get "durable" -- the safe
default that preserves byte-identical promotion behaviour. An
unknown persisted value falls back to "durable" so the
consolidation gate never silently drops a row.
This is a computed property, NOT a model Field: it does not change the serialised shape (Contract A).
is_promotable ¶
Return True when the node is eligible for consolidation promotion.
Only "durable" nodes promote. "transient" and "expired"
are gated out of Phases 10/11/12.
Source code in src/symfonic/memory/models/node.py
MemoryOperation ¶
Bases: BaseModel
A pending memory mutation to be applied by the orchestrator.
Each operation targets a specific layer and action. The node and edge fields are populated depending on the action type.
WritePolicy ¶
Bases: BaseModel
Controls which operations are applied and how many can be pending.
Operations with importance below min_importance_threshold are silently dropped during commit_pending.