Steg 9 (R4): unified migrate-corpus.mjs --write over engineering/governance/ infrastructure/security. 327 filer mutert, verified=null, prosa byte-identisk (fra første ## seksjon), advisor urørt (0 endringer). To applier-fixes oppdaget under kjøring (TDD, RED→GREEN): - insertHeaderFields: anker faller nå tilbake når en meta-linje selv passerer 500B (2 filer pakket et avsnitt i **Status:** → Type/Source landet utenfor scan-vinduet, applierens post-write-assertion fanget + restaurerte). - normalizeStaleVerified: fjerner nå ALLE stale non-date **Verified:** i 500B-vinduet, inkl. stray body-dup rett under --- (9 mlops-genaiops-filer var ellers falskt "verified"/fresh, droppet fra worklist). Operatør-godkjent utvidelse av carve-out; kun stray metadata-linjer, aldri prosa. test-transform-criterion: precondition oppdatert til post-migrasjons-sannhet (fila bærer nå Source). Suite 728/728 grønn.
535 lines
23 KiB
Markdown
535 lines
23 KiB
Markdown
# Agent Memory and Context Management Strategies
|
|
|
|
**Last updated:** 2026-06-24 | Verified: MCP 2026-06
|
|
**Status:** GA (Managed Memory in Foundry Agent Service: Preview)
|
|
**Category:** Agent Orchestration & Automation
|
|
**Type:** reference
|
|
**Source:** https://learn.microsoft.com/azure/foundry/agents/concepts/what-is-memory
|
|
|
|
---
|
|
|
|
## Innhold
|
|
|
|
- [Introduksjon](#introduksjon)
|
|
- [Kjernekomponenter](#kjernekomponenter)
|
|
- [Arkitekturmønstre](#arkitekturmønstre)
|
|
- [Beslutningsveiledning](#beslutningsveiledning)
|
|
- [Integrasjon med Microsoft-stakken](#integrasjon-med-microsoft-stakken)
|
|
- [Offentlig sektor (Norge)](#offentlig-sektor-norge)
|
|
- [Kostnad og lisensiering](#kostnad-og-lisensiering)
|
|
- [For arkitekten (Cosmo)](#for-arkitekten-cosmo)
|
|
- [Kilder og verifisering](#kilder-og-verifisering)
|
|
|
|
## Introduksjon
|
|
|
|
Agent memory og context management er grunnleggende for å bygge AI-agenter som leverer personaliserte, kontekstbevisste opplevelser over tid. Uten minnehåndtering er alle Large Language Models (LLMs) stateless — hver interaksjon starter fra blanke ark, uten kjennskap til tidligere samtaler eller brukerpreferanser.
|
|
|
|
Microsoft tilbyr et hierarkisk minnesystem for agenter i sin AI-stack, som spenner fra kortvarig session context til persistent long-term memory. Strategiene varierer fra ephemeral in-memory storage (Semantic Kernel) til managed, cloud-baserte memory stores (Foundry Agent Service). Riktig minnearkitektur er kritisk for å balansere brukerpersonalisering, ytelse, kostnad, og compliance-krav som GDPR og datasuverenitet.
|
|
|
|
Hovedutfordringen er å håndtere to typer minne: **short-term memory** (session context, chat history) og **long-term memory** (brukerpreferanser, facts på tvers av sesjoner). Microsoft-stakken tilbyr tre hovedtilnærminger: chat history management (alle agenttyper), vector-basert semantic memory (Semantic Kernel), og managed memory extraction (Foundry Agent Service preview).
|
|
|
|
---
|
|
|
|
## Kjernekomponenter
|
|
|
|
### Memory-typer i Microsoft AI-stakken
|
|
|
|
| Memory-type | Varighet | Bruksområde | Implementering | Documented |
|
|
|-------------|----------|-------------|----------------|----------|
|
|
| **Short-term (Session)** | Inneværende samtale | Opprettholde immediate context | ChatHistory, AgentThread | ✅ |
|
|
| **Working Memory** | Inneværende session | Kritiske beslutninger/krav | WhiteboardProvider (SK) | ✅ |
|
|
| **Long-term (User Profile)** | På tvers av sesjoner | Brukerpreferanser, facts | Mem0Provider (SK), Foundry Memory Store | ✅ |
|
|
| **Long-term (Chat Summary)** | På tvers av sesjoner | Tråd-kontinuitet | Foundry Memory Store (preview) | ✅ |
|
|
| **Semantic Memory (Vector)** | Persistent, søkbar | RAG-basert knowledge retrieval | Vector Store connectors | ✅ |
|
|
|
|
### Minnearkitekturer per plattform
|
|
|
|
| Plattform | Kortvarig minne | Langvarig minne | Persistence-layer | Documented |
|
|
|-----------|----------------|-----------------|-------------------|----------|
|
|
| **Semantic Kernel Agents** | ChatHistoryAgentThread | Mem0Provider, Vector Stores | Egen/ekstern (Cosmos DB, Redis, etc.) | ✅ |
|
|
| **Foundry Agent Service** | Session context (managed) | Managed Memory Store (preview) | Azure-managed (AI Search, embeddings) | ✅ |
|
|
| **Microsoft Agent Framework** | ChatHistoryProvider (in-memory/Cosmos) | ChatHistoryMemoryProvider, Mem0Provider, Redis | Cosmos DB, Redis, external | ✅ |
|
|
| **Copilot Studio** | Built-in session variables | Conversation history (opt-in Cosmos DB) | Managed eller BYOS (Cosmos DB) | ✅ |
|
|
| **M365 Copilot** | Microsoft-managed | Microsoft-managed | Microsoft-controlled | ✅ |
|
|
|
|
### Semantic Kernel Memory Providers
|
|
|
|
**Legacy Memory Stores (deprecated — bruk Vector Store abstractions):**
|
|
|
|
| Provider | Type | Documented |
|
|
|----------|------|----------|
|
|
| InMemoryMemoryStore | Prototyping, testing | ✅ |
|
|
| Azure AI Search | Production vector storage | ✅ |
|
|
| Cosmos DB (NoSQL/MongoDB) | Multi-region, low-latency | ✅ |
|
|
| PostgreSQL, SQL Server | Relational database-backed | ✅ |
|
|
|
|
**Modern Vector Store Abstractions (anbefalt):**
|
|
- Støtter custom schemas, multiple vectors per record, pre-filtering
|
|
- Mer fleksibel enn IMemoryStore (f.eks. valg av distance function, index types)
|
|
- Se `rag-architecture/vector-databases-and-indexing.md` for detaljer
|
|
|
|
**Baseline**: Microsoft migrerer bort fra IMemoryStore til Vector Store abstractions. Bruk sistnevnte for nye prosjekter.
|
|
|
|
---
|
|
|
|
## Arkitekturmønstre
|
|
|
|
### Mønster 1: Stateless Agent med manuell history management
|
|
|
|
**Bruksområde:** Enkel chatbot, transactional agents, prototyping.
|
|
|
|
```csharp
|
|
// Semantic Kernel ChatCompletionAgent
|
|
ChatHistoryAgentThread agentThread = new();
|
|
ChatMessageContent response = await agent.InvokeAsync("Hva er været i dag?", agentThread).FirstAsync();
|
|
|
|
// Session context lagres i agentThread, som lever i appens minne
|
|
// Langvarig persistence krever eksplisitt lagring (Cosmos DB, Redis, etc.)
|
|
```
|
|
|
|
**Fordeler:**
|
|
- Enkel implementering
|
|
- Lav overhead for korte sesjoner
|
|
- Full kontroll over data lifecycle
|
|
|
|
**Ulemper:**
|
|
- Ingen automatisk persistence
|
|
- Session state går tapt ved restart
|
|
- Krever manuell implementering av long-term memory
|
|
|
|
**Baseline**: Standard for Semantic Kernel. Egnet for low-stakes apps eller prototyper.
|
|
|
|
---
|
|
|
|
### Mønster 2: Managed Long-Term Memory (Foundry Agent Service)
|
|
|
|
**Bruksområde:** Personaliserte agenter med cross-session continuity.
|
|
|
|
Foundry Agent Service tilbyr **managed memory** (preview) som automatisk:
|
|
1. **Ekstraherer** key information fra samtaler (preferanser, facts)
|
|
2. **Konsoliderer** duplikater og løser konflikter
|
|
3. **Henter** relevant context ved nye sesjoner
|
|
|
|
**Memory-typer (Foundry Agent Service ekstraherer tre typer long-term memory):**
|
|
- **User profile memory**: Statisk info (allergi, språkpreferanse, navn)
|
|
- **Chat summary memory**: Distillert sammendrag av tidligere tråder
|
|
- **Procedural memory**: Gjenbrukbare how-to-rutiner og operating patterns utledet fra tidligere interaksjoner (aktivert by default)
|
|
|
|
**Retensjon/forvaltning (siste preview):** item-level memory CRUD (create/read/update/list/delete), store-nivå default TTL (`default_ttl_seconds`, `0` = ingen utløp) og direkte remember/forget-kommandoer. Styr hva som lagres via `user_profile_details` (også for å ekskludere sensitive data → styrker GDPR/«retten til å bli glemt»).
|
|
|
|
```python
|
|
# Foundry Agent Service (Python SDK)
|
|
memory_store = client.memory.create_memory_store(
|
|
memory_store_id="user-profile-store",
|
|
chat_summary_enabled=True,
|
|
user_profile_details=["dietary restrictions", "preferred name", "language"]
|
|
)
|
|
|
|
# Attach memory search tool til agent
|
|
agent_with_memory = client.agents.create_agent(
|
|
model="gpt-4o",
|
|
instructions="You are a recipe assistant. Use memory to personalize suggestions.",
|
|
tools=[{"type": "memory_search"}]
|
|
)
|
|
```
|
|
|
|
**Fordeler:**
|
|
- Automatisk extraction og consolidation (LLM-powered)
|
|
- Managed persistence (ingen egen database-oppsett)
|
|
- Konsistent cross-session experience
|
|
|
|
**Ulemper:**
|
|
- Preview-funksjonalitet (kan endre)
|
|
- Krever Azure OpenAI chat + embedding models
|
|
- Quotas: 100 scopes, 10 000 memories per scope
|
|
|
|
**Verified**: Microsoft Product Terms for Previews gjelder. Data lagres i Azure (se offentlig sektor-seksjon for compliance).
|
|
|
|
---
|
|
|
|
### Mønster 3: Hybrid Memory (Semantic Kernel Mem0 + Whiteboard)
|
|
|
|
**Bruksområde:** Agenter som trenger både long-term user memory og short-term working context.
|
|
|
|
**Mem0Provider**: Ekstern memory service for user-specific facts (cross-thread persistence).
|
|
|
|
```csharp
|
|
var mem0Provider = new Mem0Provider(httpClient, options: new()
|
|
{
|
|
UserId = "U1",
|
|
ScopeToPerOperationThreadId = true // Thread-spesifikke minner
|
|
});
|
|
```
|
|
|
|
**WhiteboardProvider**: Extracts requirements, proposals, decisions, actions fra samtalen. Beholder kritisk context selv når chat history truncates.
|
|
|
|
```csharp
|
|
var whiteboardProvider = new WhiteboardProvider(chatClient);
|
|
|
|
// Kombiner begge i samme thread
|
|
agentThread.AIContextProviders.Add(mem0Provider);
|
|
agentThread.AIContextProviders.Add(whiteboardProvider);
|
|
```
|
|
|
|
**Fordeler:**
|
|
- Best of both worlds: personalisering + session focus
|
|
- Whiteboard forhindrer kontekst-tap ved truncation
|
|
- Mem0 gir cross-session continuity
|
|
|
|
**Ulemper:**
|
|
- Ekstern avhengighet (Mem0 service)
|
|
- Mer kompleks konfigurasjon
|
|
- Kostnad for Mem0 API-kall
|
|
|
|
**Verified**: Experimental Semantic Kernel-funksjonalitet. WhiteboardProvider og Mem0Provider er subject to change.
|
|
|
|
---
|
|
|
|
### Mønster 4: Enterprise-grade Persistence (Cosmos DB Chat History)
|
|
|
|
**Bruksområde:** Multi-tenant SaaS, compliance-krevende miljøer, high-scale apps.
|
|
|
|
**Microsoft Agent Framework** tilbyr `CosmosChatHistoryProvider` for durable storage:
|
|
|
|
```csharp
|
|
// Agent Framework med Cosmos DB persistence
|
|
var cosmosProvider = new CosmosChatHistoryProvider(
|
|
cosmosClient: cosmosClient,
|
|
databaseName: "agent-db",
|
|
containerName: "chat-sessions"
|
|
);
|
|
|
|
var agent = new ChatClientAgent(
|
|
chatClient: azureOpenAIClient,
|
|
chatHistoryProvider: cosmosProvider
|
|
);
|
|
```
|
|
|
|
**Azure Copilot BYOS (Bring Your Own Storage):**
|
|
- Organisasjonen velger og administrerer sin egen Azure Cosmos DB-instans
|
|
- Full audit trail av alle Azure Copilot-samtaler (user prompts + Copilot responses) for alle tenant-brukere
|
|
- System-assigned managed identity med `Cosmos DB Built-in Data Contributor`-rollen for sikker lese-/skrivetilgang
|
|
- Aktiveres via Azure Copilot admin center → Conversation storage
|
|
- **OBS:** Hvis BYOS aktiveres, mister brukere tilgang til samtaler lagret av Microsoft foer aktivering. Bytte av Cosmos DB-instans gir tilsvarende tap av tilgang til tidligere instans.
|
|
- **OBS:** BYOS deaktiverer for oeyeblikket migration agent-kapabiliteter i Azure Copilot
|
|
|
|
**Fordeler:**
|
|
- Full data control og compliance
|
|
- Multi-region replication (global low-latency)
|
|
- Integration med existing Cosmos DB infrastruktur
|
|
|
|
**Ulemper:**
|
|
- Cosmos DB-kostnader (RU/s)
|
|
- Krever tenant isolation-strategi (partitioning)
|
|
- Mer kompleks ops (backup, scaling, monitoring)
|
|
|
|
**Verified**: GA for Cosmos DB Chat History. BYOS for Azure Copilot er GA.
|
|
|
|
---
|
|
|
|
## Beslutningsveiledning
|
|
|
|
### Når bruke hvilken memory-strategi?
|
|
|
|
| Scenario | Anbefalt løsning | Hvorfor |
|
|
|----------|------------------|---------|
|
|
| **Prototyping, demo** | InMemory (Semantic Kernel) | Rask setup, ingen persistence nødvendig |
|
|
| **Transactional agent** (single-turn) | Stateless (ingen memory) | Minimere data retention-risiko |
|
|
| **Personalisert support agent** | Foundry Managed Memory | Automatisk extraction, cross-session |
|
|
| **Enterprise SaaS (multi-tenant)** | Cosmos DB + Vector Store | Tenant isolation, compliance, scale |
|
|
| **Offentlig sektor (Norge)** | Cosmos DB i Norway East/West | Datasuverenitet, GDPR-compliance |
|
|
| **RAG-basert agent** | Vector Store (AI Search, Cosmos DB) | Semantic search over knowledge base |
|
|
| **Complex reasoning agent** | Whiteboard + Mem0/Cosmos | Bevare kritisk context + long-term facts |
|
|
|
|
### Vanlige feil
|
|
|
|
| Feil | Konsekvens | Løsning |
|
|
|------|------------|---------|
|
|
| **Deler samme ChatPrompt-instans på tvers av samtaler** | Cross-contamination av chat history | Opprett ny ChatPrompt per conversation eller bruk persistent store |
|
|
| **Ingen truncation-strategi** | Token-overflow, dyre API-kall | Implementer ChatHistoryTruncationReducer eller max message limits |
|
|
| **Lagrer secrets i chat history** | Sikkerhetshull (PII, credentials i logs) | Implementer content safety (Azure AI Content Safety) |
|
|
| **Ingen tenant isolation (multi-tenant)** | Data leakage mellom kunder | Bruk per-tenant indexes eller partition keys |
|
|
| **Automatisk memory extraction uten review** | Prompt injection → memory corruption | Adversarial testing, content safety filters |
|
|
|
|
### Røde flagg
|
|
|
|
🚩 **Agent husker feil data eller motsetninger**: Memory consolidation-logikk må håndtere conflicts. Foundry Memory gjør dette automatisk (preview), men vær oppmerksom på edge cases.
|
|
|
|
🚩 **Memory-quotas nås raskt**: 10 000 memories per scope (Foundry). Design data retention-policy.
|
|
|
|
🚩 **Session state går tapt ved restart**: In-memory providers overlever ikke restarts. Bruk persistent store for critical apps.
|
|
|
|
🚩 **Ingen audit trail**: Offentlig sektor og regulerte bransjer krever logging. BYOS Cosmos DB gir full audit.
|
|
|
|
---
|
|
|
|
## Integrasjon med Microsoft-stakken
|
|
|
|
### Semantic Kernel ↔ Vector Stores
|
|
|
|
```csharp
|
|
// Bruk Azure AI Search for semantic memory
|
|
var vectorStore = new AzureAISearchVectorStore(
|
|
searchClient: searchClient,
|
|
embeddingGenerator: embeddingGenerator
|
|
);
|
|
|
|
var textSearchStore = new TextSearchStore<string>(
|
|
vectorStore,
|
|
collectionName: "KnowledgeBase",
|
|
vectorDimensions: 1536 // text-embedding-ada-002
|
|
);
|
|
|
|
// Attach til agent som RAG-provider
|
|
var textSearchProvider = new TextSearchProvider(textSearchStore);
|
|
agentThread.AIContextProviders.Add(textSearchProvider);
|
|
```
|
|
|
|
### Foundry Agent Service ↔ Foundry IQ
|
|
|
|
**Når bruke Memory vs. Foundry IQ:**
|
|
|
|
| Feature | Memory | Foundry IQ |
|
|
|---------|--------|-----------|
|
|
| User-specific context | ✅ Memory | ❌ |
|
|
| Organizational knowledge base | ❌ | ✅ Foundry IQ |
|
|
| User-uploaded documents (session) | ❌ | ✅ File search tool |
|
|
|
|
**Baseline**: Memory for personalisering, Foundry IQ for curated enterprise content, File search for ad-hoc docs.
|
|
|
|
### Agent Framework ↔ Purview Context Provider
|
|
|
|
For compliance-tungt miljøer:
|
|
|
|
```python
|
|
# Agent Framework med Purview integration
|
|
from agent_framework_purview import PurviewContextProvider
|
|
|
|
purview_provider = PurviewContextProvider(
|
|
purview_endpoint="https://<account>.purview.azure.com"
|
|
)
|
|
agent.plugins.append(purview_provider)
|
|
```
|
|
|
|
Gir data lineage tracking og governance-enforcement.
|
|
|
|
---
|
|
|
|
## Offentlig sektor (Norge)
|
|
|
|
### GDPR og datasuverenitet
|
|
|
|
**Krav:**
|
|
- **Data residency**: Samtalehistorikk må lagres i Norge (Norway East/Norway West regions)
|
|
- **Right to be forgotten**: Implementer deletion APIs for memory/chat history
|
|
- **Data minimization**: Ikke lagre mer enn nødvendig (ephemeral memory for transactional agents)
|
|
|
|
**Løsning:**
|
|
- **Cosmos DB**: Deploy i Norway regions med geo-replication kun til EU
|
|
- **Foundry Memory Store**: Sjekk data residency-dokumentasjon (preview-funksjon, kan ha begrensninger)
|
|
- **BYOS (Bring Your Own Storage)**: Anbefalt for full kontroll (Azure Copilot, custom Cosmos DB)
|
|
|
|
### AI Act-implikasjoner
|
|
|
|
**Artikkel 13 (Transparency)**: High-risk AI må logge all aktivitet. Memory/chat history må være auditable.
|
|
|
|
**Artikkel 10 (Data Governance)**: Training data ≠ operational data, men memory extraction bruker LLMs. Vurder om memory consolidation trigger data governance-krav.
|
|
|
|
**Løsning:**
|
|
- Bruk Cosmos DB BYOS for full audit trail
|
|
- Implementer Azure Monitor + Application Insights for memory/context operations
|
|
- Document memory extraction logic i AI-dokumentasjon (jf. Utredningsinstruksen)
|
|
|
|
### Schrems II og dataoverføringer
|
|
|
|
**Status (juni 2026)**: Foundry Memory (preview) har nå en eksplisitt region-liste som **inkluderer Norway East** (+ Sweden Central, France Central m.fl.), så memory kan holdes i Norge for norske deployments. Kjent begrensning: **VNet-integrasjon støttes ikke** for memory stores.
|
|
|
|
**Løsning:**
|
|
- **Anbefalt**: Deploy memory store i Norway East (region bekreftet tilgjengelig i preview)
|
|
- **Alternativ**: Semantic Kernel + Cosmos DB i Norway regions, eller BYOS-pattern
|
|
- **NB**: Tjenesten er fortsatt preview — bekreft region-garantier mot Product Terms for Previews før produksjon med persondata
|
|
|
|
### Forvaltningsloven § 11 (internkontroll)
|
|
|
|
**Krav**: Beslutninger tatt av AI må være etterprøvbare.
|
|
|
|
**Memory/context-implikasjon**: Hvis agent bruker long-term memory til å påvirke saksbehandling, må memory-innholdet logges sammen med beslutningen.
|
|
|
|
**Løsning:**
|
|
- Export memory snapshot ved kritiske beslutninger
|
|
- Lagre memory version ID i sakssystem
|
|
- Implementer memory provenance (hvem/når/hvordan ble minnet opprettet)
|
|
|
|
---
|
|
|
|
## Kostnad og lisensiering
|
|
|
|
### Prismodeller
|
|
|
|
**Foundry Managed Memory (preview):**
|
|
- Underlying model costs (chat + embedding)
|
|
- Ingen separat memory-storage fee (preview — kan endre ved GA)
|
|
- Quotas: 1000 requests/min (search + update)
|
|
|
|
**Semantic Kernel Mem0:**
|
|
- Mem0 service subscription (external — se mem0.ai)
|
|
- API call costs per memory operation
|
|
|
|
**Cosmos DB Chat History:**
|
|
- Request Units (RU/s): ~400 RU per read, ~1000 RU per write (avhenger av størrelse)
|
|
- Storage: ~NOK 2.5/GB/måned (Norway regions)
|
|
- Global distribution: +50% for multi-region
|
|
|
|
**Azure AI Search (Vector Store):**
|
|
- Basic tier: ~NOK 600/måned (prototyping)
|
|
- Standard S1: ~NOK 2000/månd (production — 50M vectors)
|
|
- Se `cost-optimization/cost-estimation-frameworks.md` for kalkulator
|
|
|
|
### Optimaliseringstips
|
|
|
|
| Strategi | Besparelse | Trade-off |
|
|
|----------|------------|-----------|
|
|
| **Truncate chat history** (keep last 10 msgs) | 50-70% token cost | Tap av long-term context |
|
|
| **Use WhiteboardProvider** | 30-40% (bevarer kritisk context, mindre full history) | Complexity |
|
|
| **Ephemeral memory for transactional agents** | 100% memory storage cost | Ingen personalisering |
|
|
| **Batch memory consolidation** (off-peak) | 20-30% RU/s (Cosmos DB) | Eventual consistency |
|
|
| **Use Foundry Memory (preview)** over custom | Save ops cost (managed service) | Less control, preview risks |
|
|
|
|
**Baseline**: For cost-sensitive apps, prioritér chat history truncation + WhiteboardProvider over full conversation storage.
|
|
|
|
---
|
|
|
|
## For arkitekten (Cosmo)
|
|
|
|
### Spørsmål å stille klienten
|
|
|
|
1. **"Skal agenten huske brukerpreferanser på tvers av sesjoner, eller kun innenfor én samtale?"**
|
|
- Nei → Stateless eller in-memory
|
|
- Ja → Foundry Memory, Mem0, eller Cosmos DB
|
|
|
|
2. **"Hvor lenge skal samtalehistorikk bevares? (compliance-krav)"**
|
|
- < 24 timer → In-memory
|
|
- 30-90 dager → Cosmos DB med TTL
|
|
- Permanent → Cosmos DB + backup-strategi
|
|
|
|
3. **"Er det multi-tenant? Trenger vi tenant isolation?"**
|
|
- Ja → Cosmos DB med partition keys per tenant, eller per-tenant indexes i AI Search
|
|
|
|
4. **"Hvilke compliance-krav gjelder? (GDPR, AI Act, Forvaltningsloven)"**
|
|
- GDPR → BYOS (Cosmos DB i Norway), deletion APIs
|
|
- AI Act high-risk → Full audit trail, memory provenance
|
|
- Forvaltningsloven → Etterprøvbarhet av memory-påvirkning
|
|
|
|
5. **"Hva er token-budsjettet per sesjon? (context window limits)"**
|
|
- GPT-4o: 128K context → kan holde ~300 messages in-memory
|
|
- GPT-4o-mini: 128K context → samme
|
|
- Hvis > 300 msgs → Truncation eller WhiteboardProvider
|
|
|
|
6. **"Bruker agenten RAG (Retrieval-Augmented Generation)?"**
|
|
- Ja → Kombiner Vector Store (knowledge) + Memory (user context)
|
|
- Nei → Kun chat history + memory
|
|
|
|
7. **"Hvor mye kontroll trenger vi over memory consolidation logic?"**
|
|
- Full kontroll → Custom logic med Semantic Kernel + Cosmos DB
|
|
- Managed OK → Foundry Memory (preview, LLM-powered consolidation)
|
|
|
|
8. **"Hva er acceptable memory-quotas?"**
|
|
- Foundry Memory: 10 000 memories per scope
|
|
- Custom Cosmos DB: Unlimited (cost-driven limit)
|
|
|
|
### Fallgruver å unngå
|
|
|
|
❌ **Anta at Foundry Memory er GA**: Det er preview. For production, ha fallback til Cosmos DB.
|
|
|
|
❌ **Ignorer prompt injection-risiko i memory**: Malicious user → corrupt memory → påvirke andre sesjoner. Bruk Azure AI Content Safety.
|
|
|
|
❌ **Lagre secrets i chat history**: API keys, passwords, PII → bruk content filters.
|
|
|
|
❌ **Glem tenant isolation**: Multi-tenant uten partitioning → data leakage.
|
|
|
|
❌ **Overstole på automatic consolidation**: LLM-basert memory merging kan feile ved edge cases. Implementer conflict resolution-logging.
|
|
|
|
### Anbefalinger per modenhetsnivå
|
|
|
|
**Beginner (pilot/POC):**
|
|
- Semantic Kernel InMemory + ChatHistoryAgentThread
|
|
- Ingen persistence (eller manuell JSON-fil export for testing)
|
|
- Fokus: Funksjonalitet, ikke scale
|
|
|
|
**Intermediate (intern produksjon):**
|
|
- Semantic Kernel + Cosmos DB Chat History Provider
|
|
- Azure AI Search for RAG (hvis nødvendig)
|
|
- Monitoring: Application Insights for token usage
|
|
|
|
**Advanced (ekstern SaaS, offentlig sektor):**
|
|
- Foundry Agent Service + Managed Memory (preview) eller Cosmos DB BYOS
|
|
- Multi-tenant isolation (partition keys, per-tenant indexes)
|
|
- Full audit trail (Cosmos DB change feed → Azure Monitor)
|
|
- Content safety (prompt injection detection, PII filtering)
|
|
- Data residency enforcement (Norway regions, geo-replication policies)
|
|
|
|
---
|
|
|
|
## Kilder og verifisering
|
|
|
|
### Microsoft Learn-kilder (MCP-verified)
|
|
|
|
1. **Semantic Kernel Agent Memory**
|
|
https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-memory
|
|
Confidence: ✅ Documented (Mem0Provider, WhiteboardProvider documentation)
|
|
|
|
2. **Foundry Agent Service Memory (preview)**
|
|
https://learn.microsoft.com/en-us/azure/foundry/agents/concepts/what-is-memory?view=foundry
|
|
Confidence: ✅ Documented (Managed Memory Store, extraction/consolidation/retrieval phases)
|
|
|
|
3. **Agent Framework Chat History Providers**
|
|
https://learn.microsoft.com/en-us/agent-framework/integrations/overview
|
|
Confidence: ✅ Documented (CosmosChatHistoryProvider, Memory AI Context Providers)
|
|
|
|
4. **Azure Copilot BYOS (Bring Your Own Storage)**
|
|
https://learn.microsoft.com/en-us/azure/copilot/bring-your-own-storage
|
|
Confidence: ✅ Documented (Cosmos DB conversation history, managed identity)
|
|
|
|
5. **Semantic Kernel Vector Stores**
|
|
https://learn.microsoft.com/en-us/semantic-kernel/concepts/vector-store-connectors/memory-stores
|
|
Confidence: ✅ Documented (Legacy IMemoryStore deprecated, Vector Store abstractions GA)
|
|
|
|
6. **Multi-turn Conversations with Agents**
|
|
https://learn.microsoft.com/en-us/agent-framework/tutorials/agents/multi-turn-conversation
|
|
Confidence: ✅ Documented (AgentSession for state management)
|
|
|
|
7. **Foundry Agent Service Context Layer**
|
|
https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ai-agents/build-secure-process
|
|
Confidence: ✅ Documented (Hierarchical memory: knowledge, long-term, short-term)
|
|
|
|
8. **Azure OpenAI Web App Chat History (Cosmos DB)**
|
|
https://learn.microsoft.com/en-us/azure/foundry-classic/openai/how-to/use-web-app
|
|
Confidence: ✅ Documented (Cosmos DB enablement for chat history)
|
|
|
|
### Konfidensnivå per seksjon
|
|
|
|
| Seksjon | Konfidens | Kilde |
|
|
|---------|-----------|-------|
|
|
| Memory-typer | ✅ Documented | Microsoft Learn docs (Foundry, SK, Agent Framework) |
|
|
| Arkitekturmønstre | ✅ Documented | Code samples fra microsoft-learn MCP |
|
|
| Foundry Managed Memory | ✅ Documented | Microsoft Foundry Memory docs (preview disclaimer inkludert) |
|
|
| Cosmos DB Chat History | ✅ Documented | Agent Framework integrations, Azure Copilot BYOS |
|
|
| Vector Store deprecation | ✅ Documented | Semantic Kernel Memory Stores migration guide |
|
|
| Offentlig sektor compliance | 🟡 Baseline | GDPR/AI Act krav (established), Foundry Memory region-support TBD |
|
|
| Pricing | 🟡 Baseline | General Azure pricing (Cosmos DB, AI Search verified), Foundry Memory preview (TBD) |
|
|
|
|
**Overall confidence**: ✅ **Verified** (90% MCP-sourced, 10% baseline for compliance interpretation)
|
|
|
|
### Unique Microsoft Learn URLs accessed
|
|
|
|
1. `/semantic-kernel/frameworks/agent/agent-memory`
|
|
2. `/azure/foundry/agents/concepts/what-is-memory`
|
|
3. `/agent-framework/integrations/overview`
|
|
4. `/azure/copilot/bring-your-own-storage`
|
|
5. `/semantic-kernel/concepts/vector-store-connectors/memory-stores`
|
|
6. `/agent-framework/tutorials/agents/multi-turn-conversation`
|
|
7. `/azure/cloud-adoption-framework/ai-agents/build-secure-process`
|
|
8. `/azure/foundry-classic/openai/how-to/use-web-app`
|
|
|
|
**Total unique sources**: 8 Microsoft Learn URLs
|
|
**MCP calls**: 6 (3x microsoft_docs_search, 2x microsoft_docs_fetch, 1x microsoft_code_sample_search)
|