generated from coulomb/repo-seed
Initial INTENT.md file
This commit is contained in:
270
INTENT.md
Normal file
270
INTENT.md
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
# INTENT
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
`phase-memory` exists to provide a **profile-driven memory infrastructure for
|
||||||
|
agentic systems**, spanning memory concepts from ephemeral and fluid working
|
||||||
|
context to durable, stabilized long-term memory.
|
||||||
|
|
||||||
|
The project owns the sophisticated memory runtime boundary that should not live
|
||||||
|
inside `markitect-tool`: memory graphs, event paths, stores, compaction,
|
||||||
|
retention, service profiles, operational planning, and adapters for advanced
|
||||||
|
memory backends.
|
||||||
|
|
||||||
|
The core idea is that agentic memory is not one thing. It should be organized
|
||||||
|
into phases with different speed, cost, durability, confidence, and governance
|
||||||
|
expectations.
|
||||||
|
|
||||||
|
## Primary Utility
|
||||||
|
|
||||||
|
The repository should provide infrastructure to model, instantiate, operate,
|
||||||
|
and inspect memory systems with explicit operational parameters.
|
||||||
|
|
||||||
|
Primary memory forms:
|
||||||
|
|
||||||
|
- **Reasoning memory** based on decision graphs
|
||||||
|
- **Short-term memory** based on conversational paths and event logs
|
||||||
|
- **Long-term memory** based on knowledge graphs
|
||||||
|
- **Activation memory** based on bounded context packages
|
||||||
|
- **Identity and preference memory** based on reviewed, durable records
|
||||||
|
|
||||||
|
The system should make it possible to describe a desired memory setup as a
|
||||||
|
blueprint or profile, including:
|
||||||
|
|
||||||
|
- enabled memory kinds
|
||||||
|
- backing stores and adapters
|
||||||
|
- maximum nodes, edges, events, packages, bytes, and tokens
|
||||||
|
- p50/p95 read and write latency targets
|
||||||
|
- retention, deletion, and decay rules
|
||||||
|
- compaction and summarization strategies
|
||||||
|
- freshness and refresh triggers
|
||||||
|
- merge and conflict policies
|
||||||
|
- policy reauthorization requirements
|
||||||
|
- observability events
|
||||||
|
- failure and fallback behavior
|
||||||
|
|
||||||
|
## Memory Phases
|
||||||
|
|
||||||
|
`phase-memory` should treat memory as a lifecycle, not a pile of saved text.
|
||||||
|
|
||||||
|
### Ephemeral Memory
|
||||||
|
|
||||||
|
Immediate working state used during a single task, tool call, or reasoning
|
||||||
|
step. It should be fast, cheap, discardable, and explicitly scoped.
|
||||||
|
|
||||||
|
### Fluid Memory
|
||||||
|
|
||||||
|
Short-lived conversational or task memory that may branch, merge, compact, or
|
||||||
|
be discarded. It captures paths through conversation, tool use, observations,
|
||||||
|
interruptions, plan changes, and context activations.
|
||||||
|
|
||||||
|
### Stabilized Memory
|
||||||
|
|
||||||
|
Reviewed or repeated knowledge that has earned durability. It may become part
|
||||||
|
of a project knowledge graph, a decision record, a preference record, or an
|
||||||
|
identity memory. Stabilized memory must preserve provenance, confidence,
|
||||||
|
freshness, and policy metadata.
|
||||||
|
|
||||||
|
### Rigid Long-Term Memory
|
||||||
|
|
||||||
|
Durable memory that should change only through explicit migration, review,
|
||||||
|
versioning, or policy-governed update. This includes long-lived project facts,
|
||||||
|
important decisions, trusted source relationships, stable user preferences, and
|
||||||
|
governed knowledge assets.
|
||||||
|
|
||||||
|
## Core Concepts
|
||||||
|
|
||||||
|
### Reasoning Graphs
|
||||||
|
|
||||||
|
Reasoning memory captures how an agent arrived somewhere:
|
||||||
|
|
||||||
|
- questions
|
||||||
|
- hypotheses
|
||||||
|
- claims
|
||||||
|
- assumptions
|
||||||
|
- evidence
|
||||||
|
- alternatives
|
||||||
|
- decisions
|
||||||
|
- rejected paths
|
||||||
|
- outcomes
|
||||||
|
- risks
|
||||||
|
- follow-up obligations
|
||||||
|
|
||||||
|
It should support queries such as:
|
||||||
|
|
||||||
|
- why was this decision made?
|
||||||
|
- what assumptions does it depend on?
|
||||||
|
- what evidence supports or contradicts it?
|
||||||
|
- which outcomes invalidated previous reasoning?
|
||||||
|
- which artifacts are affected by this decision?
|
||||||
|
|
||||||
|
### Conversational Paths
|
||||||
|
|
||||||
|
Short-term memory captures the navigable shape of an interaction:
|
||||||
|
|
||||||
|
- user turns
|
||||||
|
- agent turns
|
||||||
|
- plans
|
||||||
|
- tool calls
|
||||||
|
- observations
|
||||||
|
- edits
|
||||||
|
- validations
|
||||||
|
- interruptions
|
||||||
|
- branches and merges
|
||||||
|
- activations and deactivations
|
||||||
|
|
||||||
|
It should not be limited to transcript storage. It should model which path led
|
||||||
|
to current state, what branches were abandoned, which facts remain active, and
|
||||||
|
what should be compacted or discarded.
|
||||||
|
|
||||||
|
### Knowledge Graphs
|
||||||
|
|
||||||
|
Long-term memory captures stable knowledge:
|
||||||
|
|
||||||
|
- entities
|
||||||
|
- artifacts
|
||||||
|
- concepts
|
||||||
|
- capabilities
|
||||||
|
- people and roles
|
||||||
|
- decisions
|
||||||
|
- contracts
|
||||||
|
- policies
|
||||||
|
- preferences
|
||||||
|
- source-backed facts
|
||||||
|
|
||||||
|
Every node and edge should support provenance, confidence, freshness,
|
||||||
|
namespace, source spans, and policy metadata.
|
||||||
|
|
||||||
|
### Context Packages
|
||||||
|
|
||||||
|
Context packages are activation artifacts: bounded, inspectable payloads that
|
||||||
|
can be loaded into an agent's working context.
|
||||||
|
|
||||||
|
`phase-memory` should be able to compile graph neighborhoods, decision paths,
|
||||||
|
conversation episodes, and knowledge slices into activation packages. It should
|
||||||
|
also be able to consume package formats produced by adjacent tools such as
|
||||||
|
`markitect-tool`.
|
||||||
|
|
||||||
|
## Relationship To Markitect
|
||||||
|
|
||||||
|
`markitect-tool` is the markdown-facing syntax and contract layer. It should
|
||||||
|
describe, validate, and consume memory systems through markdown-friendly
|
||||||
|
profiles, manifests, provenance expectations, adapter descriptors, and
|
||||||
|
deterministic context-package compilation.
|
||||||
|
|
||||||
|
`phase-memory` is the memory operating layer. It should implement and operate
|
||||||
|
the richer runtime:
|
||||||
|
|
||||||
|
- graph and event models
|
||||||
|
- memory stores
|
||||||
|
- compaction and stabilization
|
||||||
|
- lifecycle policy
|
||||||
|
- service blueprint instantiation
|
||||||
|
- operational diagnostics
|
||||||
|
- retrieval and activation planning
|
||||||
|
- adapters to external graph, vector, LLM, policy, and audit systems
|
||||||
|
|
||||||
|
The boundary should stay clean:
|
||||||
|
|
||||||
|
- Markitect owns markdown-native interface contracts.
|
||||||
|
- `phase-memory` owns memory service behavior.
|
||||||
|
- Markitect may validate and emit memory blueprints.
|
||||||
|
- `phase-memory` may execute, store, compact, and serve them.
|
||||||
|
- Both sides should interoperate without making either repository a hidden
|
||||||
|
dependency of the other.
|
||||||
|
|
||||||
|
## Strategic Role
|
||||||
|
|
||||||
|
`phase-memory` should become the memory infrastructure layer for agentic
|
||||||
|
systems in the wider Net-Kingdom ecosystem.
|
||||||
|
|
||||||
|
It should be able to run:
|
||||||
|
|
||||||
|
- standalone for local development and testing
|
||||||
|
- embedded behind a local agent toolchain
|
||||||
|
- as a service with durable stores
|
||||||
|
- as an adapter layer over existing systems
|
||||||
|
|
||||||
|
It should integrate cleanly with:
|
||||||
|
|
||||||
|
- `markitect-tool` for markdown-native contracts and context packages
|
||||||
|
- future knowledge-system runtimes for persistence and orchestration
|
||||||
|
- policy infrastructure such as `flex-auth` where enterprise access control is
|
||||||
|
required
|
||||||
|
- graph databases, vector stores, LLM providers, and audit sinks through
|
||||||
|
optional adapters
|
||||||
|
|
||||||
|
## Strategic Boundaries
|
||||||
|
|
||||||
|
This repository is **not** intended to be:
|
||||||
|
|
||||||
|
- a generic note-taking application
|
||||||
|
- a chat transcript archive
|
||||||
|
- a markdown authoring toolkit
|
||||||
|
- a full identity or authorization platform
|
||||||
|
- a generic vector database
|
||||||
|
- a provider-specific LLM memory plugin
|
||||||
|
- a domain-specific knowledge model
|
||||||
|
|
||||||
|
It should provide the memory framework and runtime contracts that let those
|
||||||
|
systems cooperate.
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
- **Memory has phases**
|
||||||
|
Treat ephemeral, fluid, stabilized, and rigid memory differently.
|
||||||
|
|
||||||
|
- **Graphs over blobs**
|
||||||
|
Preserve relationships, provenance, and evolution instead of storing only
|
||||||
|
flattened summaries.
|
||||||
|
|
||||||
|
- **Profiles over hidden defaults**
|
||||||
|
Memory behavior should be described through explicit blueprints with size,
|
||||||
|
latency, retention, compaction, and policy parameters.
|
||||||
|
|
||||||
|
- **Local-first, service-ready**
|
||||||
|
The first useful path should work without external infrastructure, but the
|
||||||
|
architecture should support durable service deployments.
|
||||||
|
|
||||||
|
- **Inspectable activation**
|
||||||
|
Agents should know what memory was activated, why it was selected, where it
|
||||||
|
came from, and what policy checks applied.
|
||||||
|
|
||||||
|
- **Deterministic core, assisted extensions**
|
||||||
|
Graph operations, validation, retention, and package compilation should have
|
||||||
|
deterministic local behavior. LLM extraction, embeddings, and summarization
|
||||||
|
should remain optional adapters.
|
||||||
|
|
||||||
|
- **Policy-aware by design**
|
||||||
|
Memory nodes, edges, events, and activations should carry enough metadata to
|
||||||
|
support reauthorization, audit, redaction, and trust-zone boundaries.
|
||||||
|
|
||||||
|
- **Interoperability before lock-in**
|
||||||
|
The project should support external stores and engines without forcing one
|
||||||
|
canonical backend too early.
|
||||||
|
|
||||||
|
## Maturity Target
|
||||||
|
|
||||||
|
A mature `phase-memory` should provide:
|
||||||
|
|
||||||
|
- canonical memory graph and event schemas
|
||||||
|
- local durable stores for development and small deployments
|
||||||
|
- memory service blueprint/profile validation
|
||||||
|
- graph/event query and explanation APIs
|
||||||
|
- compaction and stabilization workflows
|
||||||
|
- graph-to-context-package compilers
|
||||||
|
- retention and deletion lifecycle enforcement
|
||||||
|
- observability and diagnostics for memory operations
|
||||||
|
- optional adapters for graph databases, vector stores, LLM extraction,
|
||||||
|
enterprise policy decision points, remote registries, and audit sinks
|
||||||
|
- clear interoperability contracts with `markitect-tool` and adjacent
|
||||||
|
Net-Kingdom infrastructure
|
||||||
|
|
||||||
|
## Stability Note
|
||||||
|
|
||||||
|
Changes to this file define the project boundary for `phase-memory`.
|
||||||
|
|
||||||
|
The boundary should evolve deliberately. The central commitment is that
|
||||||
|
`phase-memory` owns sophisticated agentic memory runtime concerns, while
|
||||||
|
markdown-native authoring and contract surfaces remain the responsibility of
|
||||||
|
adjacent tools such as `markitect-tool`.
|
||||||
Reference in New Issue
Block a user