Area
Cross-cutting
Feature type
API capability
Problem or need
Governed Memory requires a clear separation between portable Agent policy and the concrete local store selected by an Agentstration installation.
Embedding a local provider name or endpoint directly in an Agent or Pack would make definitions non-portable. Allowing a mutable provider configuration to silently redirect existing data would make ownership and retrieval ambiguous.
Expected outcome
Administrators can configure local Memory store bindings and reusable Memory Profiles. Agents reference portable policy, while concrete provider selection is explicit, scope-aware, version-compatible, and observable.
Pack composition and installation can preserve Memory policy through logical bindings without exporting accumulated Memory records or local credentials.
Proposed solution
Add Management resources following the current provider and binding patterns:
- MemoryProvider represents a configured local store integration and references either the builtin store or an Extension Registration contribution.
- MemoryProfile contains bounded retrieval policy, default expiry behavior, and permitted Agent/shared subjects.
- Agent definitions optionally reference a MemoryProfile.
- Pack manifests express a logical memory-provider requirement that installation resolves to an authorized local provider.
- Provider identity/configuration generation used by stored data remains observable so a later configuration change cannot silently reinterpret existing records.
Use current Resource Scope, Extension Registration, immutable option-contract, ETag, reference, usage, and binding conventions rather than the typed Builtin/AEP union from historical PR #38.
Scope
- Define MemoryProvider and MemoryProfile resource contracts and supported scope kinds.
- Add CRUD, ETag validation, references, usage inspection, and deletion protection.
- Add optional Agent Memory configuration and compile it into immutable Agent revisions.
- Resolve Agent revision -> MemoryProfile -> MemoryProvider deterministically.
- Add dynamic provider configuration based on versioned option contracts where applicable.
- Add Pack binding support for Memory providers and portable Memory Profiles.
- Ensure Packs never include accumulated Memory records, credentials, local scopeRef values, or provider endpoints.
- Define explicit behavior when a profile changes provider; no implicit data migration.
- Add Management, Pack, validation, and architecture tests plus ADR documentation.
Out of scope
- Runtime context injection.
- AEP Memory store protocol implementation.
- Console UI.
- Copying or migrating records between providers.
- Making accumulated records Management resources.
- Semantic retrieval and provider-owned retrieval policy.
Dependencies
Alternatives considered
- Configure a store directly on each Agent: rejected because it duplicates local configuration and prevents reusable policy.
- Put provider endpoints in Packs: rejected because endpoints and credentials are installation-specific.
- Make Memory records Pack resources: rejected because they are accumulated runtime/user data.
- Allow transparent provider replacement: rejected because existing data provenance and location would become ambiguous.
Deployment impact
None
Acceptance criteria
Additional context
Portable policy and local integration must remain separate in the same way Agentstration separates published definitions from installation-specific bindings elsewhere.
Preliminary checks
Area
Cross-cutting
Feature type
API capability
Problem or need
Governed Memory requires a clear separation between portable Agent policy and the concrete local store selected by an Agentstration installation.
Embedding a local provider name or endpoint directly in an Agent or Pack would make definitions non-portable. Allowing a mutable provider configuration to silently redirect existing data would make ownership and retrieval ambiguous.
Expected outcome
Administrators can configure local Memory store bindings and reusable Memory Profiles. Agents reference portable policy, while concrete provider selection is explicit, scope-aware, version-compatible, and observable.
Pack composition and installation can preserve Memory policy through logical bindings without exporting accumulated Memory records or local credentials.
Proposed solution
Add Management resources following the current provider and binding patterns:
Use current Resource Scope, Extension Registration, immutable option-contract, ETag, reference, usage, and binding conventions rather than the typed Builtin/AEP union from historical PR #38.
Scope
Out of scope
Dependencies
Alternatives considered
Deployment impact
None
Acceptance criteria
Additional context
Portable policy and local integration must remain separate in the same way Agentstration separates published definitions from installation-specific bindings elsewhere.
Preliminary checks