From f693cd7599966edf484bc107b1d8de6f80342783 Mon Sep 17 00:00:00 2001 From: Jihad Khawaja Date: Thu, 20 Aug 2026 19:17:27 +0300 Subject: [PATCH 1/5] added Mem0Sharp integration for in-memory storage in agent samples. https://github.com/microsoft/agent-framework/issues/7467 --- dotnet/Directory.Packages.props | 1 + dotnet/agent-framework-dotnet.slnx | 2 +- ...hMemory_Step09_MemoryUsingMem0Sharp.csproj | 16 ++++++++ .../Mem0SharpProvider.cs | 37 +++++++++++++++++++ .../Program.cs | 32 ++++++++++++++++ .../README.md | 33 +++++++++++++++++ .../02-agents/AgentWithMemory/README.md | 1 + 7 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj create mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs create mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs create mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index 47850392d57..9343431aed1 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -109,6 +109,7 @@ + diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index e4bba4bd118..29125993efb 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -193,6 +193,7 @@ + @@ -677,4 +678,3 @@ - diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj new file mode 100644 index 00000000000..77ee1eeb51c --- /dev/null +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj @@ -0,0 +1,16 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + + + \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs new file mode 100644 index 00000000000..a08a87a2b87 --- /dev/null +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft. All rights reserved. + +using Mem0Sharp; +using Microsoft.Agents.AI; +using Microsoft.Extensions.AI; + +internal sealed class Mem0SharpProvider(MemoryService memory, string userId) : AIContextProvider +{ + protected override async ValueTask StoreAIContextAsync( + InvokedContext context, + CancellationToken cancellationToken = default) + { + foreach (ChatMessage message in context.RequestMessages.Where(message => message.Role == ChatRole.User && !string.IsNullOrWhiteSpace(message.Text))) + { + await memory.AddAsync( + message.Text!, + new MemoryAddOptions { UserId = userId, Infer = false }, + cancellationToken); + } + } + + protected override async ValueTask ProvideAIContextAsync( + InvokingContext context, + CancellationToken cancellationToken = default) + { + var memories = await memory.GetAllAsync( + new MemoryFilter(UserId: userId), + cancellationToken: cancellationToken); + + return memories.Count == 0 + ? new AIContext() + : new AIContext + { + Instructions = $"Relevant memories for this user:\n{string.Join(Environment.NewLine, memories.Select(item => $"- {item.Text}"))}", + }; + } +} \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs new file mode 100644 index 00000000000..0f3f34c4e09 --- /dev/null +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs @@ -0,0 +1,32 @@ +// Copyright (c) Microsoft. All rights reserved. + +// This sample shows how to use Mem0Sharp's in-memory store with an Agent Framework agent. + +using Azure.AI.Projects; +using Azure.Identity; +using Mem0Sharp; +using Microsoft.Agents.AI; + +var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") + ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set."); +var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini"; + +var memory = new MemoryService(); +AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential()); + +// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. +// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid +// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. +AIAgent agent = aiProjectClient + .AsAIAgent(new ChatClientAgentOptions + { + ChatOptions = new() { ModelId = deploymentName, Instructions = "You are a helpful assistant. Use remembered preferences when relevant, and do not invent memories." }, + AIContextProviders = [new Mem0SharpProvider(memory, userId: "sample-user")], + }); + +AgentSession session = await agent.CreateSessionAsync(); +Console.WriteLine(await agent.RunAsync("I prefer window seats when I fly.", session)); + +Console.WriteLine("\n>> Start a new session that shares the same Mem0Sharp memory\n"); +AgentSession newSession = await agent.CreateSessionAsync(); +Console.WriteLine(await agent.RunAsync("Which seat should I book for my next flight?", newSession)); \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md new file mode 100644 index 00000000000..67424fcd6c7 --- /dev/null +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md @@ -0,0 +1,33 @@ +# Agent with Memory Using Mem0Sharp + +This sample uses the [`Mem0Sharp`](https://www.nuget.org/packages/Mem0Sharp) NuGet package as a local, in-memory store for an Agent Framework agent. It stores a user preference and recalls it from a new agent session without requiring a memory service or database. + +## Prerequisites + +1. [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) +2. A Microsoft Foundry project with a chat model deployment +3. Azure CLI authentication (`az login`) + +## Configuration + +| Variable | Description | Default | +|---|---|---| +| `FOUNDRY_PROJECT_ENDPOINT` | Microsoft Foundry project endpoint | *(required)* | +| `FOUNDRY_MODEL` | Chat model deployment name | `gpt-5.4-mini` | + +## Run the Sample + +```bash +dotnet run +``` + +## Storage Providers + +This sample uses `MemoryService`'s default in-memory store, so memories do not survive application restarts. Mem0Sharp also supports: + +- Qdrant through `QdrantMemoryStore`, included in the core `Mem0Sharp` package +- PostgreSQL with pgvector through the [`Mem0Sharp.PostgreSQL`](https://www.nuget.org/packages/Mem0Sharp.PostgreSQL) package +- SQLite through the [`Mem0Sharp.SQLite`](https://www.nuget.org/packages/Mem0Sharp.SQLite) package +- Custom providers by implementing `IMemoryStore` and, when needed, optional interfaces such as `IVectorMemoryStore` or `IMemoryHistoryStore` + +Pass the configured store to `MemoryService` to replace the in-memory store. See the [Mem0Sharp providers and persistence guide](https://github.com/jihadkhawaja/mem0sharp/blob/main/docs/providers-and-persistence.md) for setup examples. \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/README.md b/dotnet/samples/02-agents/AgentWithMemory/README.md index 16096f44fae..9eaf4f4294f 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/README.md @@ -12,6 +12,7 @@ These samples show how to create an agent with the Agent Framework that uses Mem |[Memory Using AgentMemory](./AgentWithMemory_Step06_MemoryUsingAgentMemory/)|This sample demonstrates a retail shopping assistant built with [`AgentMemory`](https://www.nuget.org/packages/AgentMemory), an unofficial .NET port of the Neo4j Labs graph-memory provider, to learn customer preferences and recommend products via graph traversal.| |[File Based Memory](./AgentWithMemory_Step07_FileMemoryProvider/)|This sample demonstrates how to use the `FileMemoryProvider` to give an agent tools for storing and recalling memories as files, and how to configure the folder that those memory files are written to.| |[Memory with Azure Cosmos DB for NoSQL](./AgentWithMemory_Step08_MemoryUsingCosmosNoSql/)|This sample demonstrates how to persist and retrieve chat history across sessions with Azure Cosmos DB for NoSQL.| +|[Memory with Mem0Sharp](./AgentWithMemory_Step09_MemoryUsingMem0Sharp/)|This sample demonstrates how to use the `Mem0Sharp` NuGet package as an in-memory store for an agent.| > **See also**: [Memory Search with Foundry Agents](../AgentProviders/foundry/Agent_Step22_MemorySearch/) - demonstrates using the built-in Memory Search tool with Microsoft Foundry agents. From 5b8991490ed3c13419f1fae289e20e02309a8a49 Mon Sep 17 00:00:00 2001 From: Jihad Khawaja Date: Thu, 20 Aug 2026 19:31:12 +0300 Subject: [PATCH 2/5] formatting fix --- .../AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj | 2 +- .../Mem0SharpProvider.cs | 2 +- .../AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs | 2 +- .../AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj index 77ee1eeb51c..9851a888eed 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs index a08a87a2b87..ec955329a7e 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. using Mem0Sharp; using Microsoft.Agents.AI; diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs index 0f3f34c4e09..c78d5c4e7b5 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft. All rights reserved. +// Copyright (c) Microsoft. All rights reserved. // This sample shows how to use Mem0Sharp's in-memory store with an Agent Framework agent. diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md index 67424fcd6c7..8795853e1f7 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md @@ -1,4 +1,4 @@ -# Agent with Memory Using Mem0Sharp +# Agent with Memory Using Mem0Sharp This sample uses the [`Mem0Sharp`](https://www.nuget.org/packages/Mem0Sharp) NuGet package as a local, in-memory store for an Agent Framework agent. It stores a user preference and recalls it from a new agent session without requiring a memory service or database. From 3dba3984cb20f785362a000e9616476fa7f32915 Mon Sep 17 00:00:00 2001 From: Jihad Khawaja Date: Fri, 21 Aug 2026 14:43:23 +0300 Subject: [PATCH 3/5] Remove Mem0Sharp integration from agent memory samples and update README links --- dotnet/Directory.Packages.props | 1 - dotnet/agent-framework-dotnet.slnx | 1 - ...hMemory_Step09_MemoryUsingMem0Sharp.csproj | 16 -------- .../Mem0SharpProvider.cs | 37 ------------------- .../Program.cs | 32 ---------------- .../README.md | 32 ++-------------- .../02-agents/AgentWithMemory/README.md | 2 +- 7 files changed, 4 insertions(+), 117 deletions(-) delete mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj delete mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs delete mode 100644 dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index 9343431aed1..47850392d57 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -109,7 +109,6 @@ - diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 29125993efb..60a7e018a17 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -193,7 +193,6 @@ - diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj deleted file mode 100644 index 9851a888eed..00000000000 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/AgentWithMemory_Step09_MemoryUsingMem0Sharp.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - net10.0 - enable - enable - - - - - - - - - \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs deleted file mode 100644 index ec955329a7e..00000000000 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Mem0SharpProvider.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -using Mem0Sharp; -using Microsoft.Agents.AI; -using Microsoft.Extensions.AI; - -internal sealed class Mem0SharpProvider(MemoryService memory, string userId) : AIContextProvider -{ - protected override async ValueTask StoreAIContextAsync( - InvokedContext context, - CancellationToken cancellationToken = default) - { - foreach (ChatMessage message in context.RequestMessages.Where(message => message.Role == ChatRole.User && !string.IsNullOrWhiteSpace(message.Text))) - { - await memory.AddAsync( - message.Text!, - new MemoryAddOptions { UserId = userId, Infer = false }, - cancellationToken); - } - } - - protected override async ValueTask ProvideAIContextAsync( - InvokingContext context, - CancellationToken cancellationToken = default) - { - var memories = await memory.GetAllAsync( - new MemoryFilter(UserId: userId), - cancellationToken: cancellationToken); - - return memories.Count == 0 - ? new AIContext() - : new AIContext - { - Instructions = $"Relevant memories for this user:\n{string.Join(Environment.NewLine, memories.Select(item => $"- {item.Text}"))}", - }; - } -} \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs deleted file mode 100644 index c78d5c4e7b5..00000000000 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/Program.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -// This sample shows how to use Mem0Sharp's in-memory store with an Agent Framework agent. - -using Azure.AI.Projects; -using Azure.Identity; -using Mem0Sharp; -using Microsoft.Agents.AI; - -var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") - ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set."); -var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini"; - -var memory = new MemoryService(); -AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential()); - -// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production. -// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid -// latency issues, unintended credential probing, and potential security risks from fallback mechanisms. -AIAgent agent = aiProjectClient - .AsAIAgent(new ChatClientAgentOptions - { - ChatOptions = new() { ModelId = deploymentName, Instructions = "You are a helpful assistant. Use remembered preferences when relevant, and do not invent memories." }, - AIContextProviders = [new Mem0SharpProvider(memory, userId: "sample-user")], - }); - -AgentSession session = await agent.CreateSessionAsync(); -Console.WriteLine(await agent.RunAsync("I prefer window seats when I fly.", session)); - -Console.WriteLine("\n>> Start a new session that shares the same Mem0Sharp memory\n"); -AgentSession newSession = await agent.CreateSessionAsync(); -Console.WriteLine(await agent.RunAsync("Which seat should I book for my next flight?", newSession)); \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md index 8795853e1f7..edde3e1496b 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/AgentWithMemory_Step09_MemoryUsingMem0Sharp/README.md @@ -1,33 +1,7 @@ # Agent with Memory Using Mem0Sharp -This sample uses the [`Mem0Sharp`](https://www.nuget.org/packages/Mem0Sharp) NuGet package as a local, in-memory store for an Agent Framework agent. It stores a user preference and recalls it from a new agent session without requiring a memory service or database. +Mem0Sharp is an independent long-term memory library for .NET applications and agents. Its repository contains a Microsoft Agent Framework sample that demonstrates cross-session memory with an in-memory store. -## Prerequisites +In addition to in-memory storage, Mem0Sharp supports PostgreSQL with pgvector, SQLite, Qdrant, and custom storage providers. -1. [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) -2. A Microsoft Foundry project with a chat model deployment -3. Azure CLI authentication (`az login`) - -## Configuration - -| Variable | Description | Default | -|---|---|---| -| `FOUNDRY_PROJECT_ENDPOINT` | Microsoft Foundry project endpoint | *(required)* | -| `FOUNDRY_MODEL` | Chat model deployment name | `gpt-5.4-mini` | - -## Run the Sample - -```bash -dotnet run -``` - -## Storage Providers - -This sample uses `MemoryService`'s default in-memory store, so memories do not survive application restarts. Mem0Sharp also supports: - -- Qdrant through `QdrantMemoryStore`, included in the core `Mem0Sharp` package -- PostgreSQL with pgvector through the [`Mem0Sharp.PostgreSQL`](https://www.nuget.org/packages/Mem0Sharp.PostgreSQL) package -- SQLite through the [`Mem0Sharp.SQLite`](https://www.nuget.org/packages/Mem0Sharp.SQLite) package -- Custom providers by implementing `IMemoryStore` and, when needed, optional interfaces such as `IVectorMemoryStore` or `IMemoryHistoryStore` - -Pass the configured store to `MemoryService` to replace the in-memory store. See the [Mem0Sharp providers and persistence guide](https://github.com/jihadkhawaja/mem0sharp/blob/main/docs/providers-and-persistence.md) for setup examples. \ No newline at end of file +See the [Microsoft Agent Framework memory sample in the Mem0Sharp repository](https://github.com/jihadkhawaja/mem0sharp/blob/main/samples/AgentFrameworkMemory/README.md) for prerequisites, configuration, and run instructions. \ No newline at end of file diff --git a/dotnet/samples/02-agents/AgentWithMemory/README.md b/dotnet/samples/02-agents/AgentWithMemory/README.md index 9eaf4f4294f..25cc85bcba0 100644 --- a/dotnet/samples/02-agents/AgentWithMemory/README.md +++ b/dotnet/samples/02-agents/AgentWithMemory/README.md @@ -12,7 +12,7 @@ These samples show how to create an agent with the Agent Framework that uses Mem |[Memory Using AgentMemory](./AgentWithMemory_Step06_MemoryUsingAgentMemory/)|This sample demonstrates a retail shopping assistant built with [`AgentMemory`](https://www.nuget.org/packages/AgentMemory), an unofficial .NET port of the Neo4j Labs graph-memory provider, to learn customer preferences and recommend products via graph traversal.| |[File Based Memory](./AgentWithMemory_Step07_FileMemoryProvider/)|This sample demonstrates how to use the `FileMemoryProvider` to give an agent tools for storing and recalling memories as files, and how to configure the folder that those memory files are written to.| |[Memory with Azure Cosmos DB for NoSQL](./AgentWithMemory_Step08_MemoryUsingCosmosNoSql/)|This sample demonstrates how to persist and retrieve chat history across sessions with Azure Cosmos DB for NoSQL.| -|[Memory with Mem0Sharp](./AgentWithMemory_Step09_MemoryUsingMem0Sharp/)|This sample demonstrates how to use the `Mem0Sharp` NuGet package as an in-memory store for an agent.| +|[Memory with Mem0Sharp](./AgentWithMemory_Step09_MemoryUsingMem0Sharp/)|This sample links to the Mem0Sharp repository's Microsoft Agent Framework memory integration example.| > **See also**: [Memory Search with Foundry Agents](../AgentProviders/foundry/Agent_Step22_MemorySearch/) - demonstrates using the built-in Memory Search tool with Microsoft Foundry agents. From c8e070c469b7c3170e5133df16077cdd5cfbeb2c Mon Sep 17 00:00:00 2001 From: Jihad Khawaja Date: Fri, 21 Aug 2026 15:05:09 +0300 Subject: [PATCH 4/5] Fix: Add missing newline at end of solution file --- dotnet/agent-framework-dotnet.slnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index 60a7e018a17..c8c8703f258 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -676,4 +676,4 @@ - + \ No newline at end of file From 6aedd293864d6c8c95dbcf4ea5b17c6c17940a77 Mon Sep 17 00:00:00 2001 From: Jihad Khawaja Date: Fri, 21 Aug 2026 15:07:24 +0300 Subject: [PATCH 5/5] Fix: Add missing newline at end of solution file --- dotnet/agent-framework-dotnet.slnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx index c8c8703f258..60a7e018a17 100644 --- a/dotnet/agent-framework-dotnet.slnx +++ b/dotnet/agent-framework-dotnet.slnx @@ -676,4 +676,4 @@ - \ No newline at end of file +