* Enable Microsoft.Agents.AI.FoundryMemory for NuGet release - Remove IsPackable=false override from .csproj to inherit IsPackable=true from nuget-package.props - Add project to agent-framework-release.slnf for inclusion in build/sign/publish pipeline Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FoundryMemoryProvider and MemorySearch sample - StoreAIContextAsync fires UpdateMemoriesAsync immediately (non-accumulation) - WhenUpdatesCompletedAsync polls last updateId via GetUpdateResultAsync - Updated FoundryAgents_Step22_MemorySearch sample to create/destroy memory store (matching features/foundry-agent-client pattern) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FoundryAgents_Step22_MemorySearch sample - Sample now creates/destroys memory store (self-contained lifecycle) - Uses WaitForMemoriesUpdateAsync for seeding memories - Cleanup in finally block deletes both agent and memory store - Matches features/foundry-agent-client pattern Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Using Memory Search with AI Agents
This sample demonstrates how to use the Memory Search tool with AI agents. The Memory Search tool enables agents to recall information from previous conversations, supporting user profile persistence and chat summaries across sessions.
What this sample demonstrates
- Creating an agent with Memory Search tool capabilities
- Configuring memory scope for user isolation
- Having conversations where the agent remembers past information
- Inspecting memory search results from agent responses
- Managing agent lifecycle (creation and deletion)
Prerequisites
Before you begin, ensure you have the following prerequisites:
- .NET 10 SDK or later
- Azure Foundry service endpoint and deployment configured
- Azure CLI installed and authenticated (for Azure credential authentication)
- A pre-created Memory Store (see below)
Note: This demo uses Azure CLI credentials for authentication. Make sure you're logged in with az login and have access to the Azure Foundry resource. For more information, see the Azure CLI documentation.
Creating a Memory Store
Memory stores must be created before running this sample. The .NET SDK currently only supports using existing memory stores with agents. To create a memory store, use one of these methods:
Option 1: Azure Portal
- Navigate to your Azure AI Foundry project
- Go to the Memory section
- Create a new memory store with your desired settings
Option 2: Python SDK
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import MemoryStoreDefaultDefinition, MemoryStoreDefaultOptions
from azure.identity import DefaultAzureCredential
project_client = AIProjectClient(
endpoint="https://your-endpoint.openai.azure.com/",
credential=DefaultAzureCredential()
)
memory_store = await project_client.memory_stores.create(
name="my-memory-store",
description="Memory store for Agent Framework conversations",
definition=MemoryStoreDefaultDefinition(
chat_model=os.environ["AZURE_AI_CHAT_MODEL_DEPLOYMENT_NAME"],
embedding_model=os.environ["AZURE_AI_EMBEDDING_MODEL_DEPLOYMENT_NAME"],
options=MemoryStoreDefaultOptions(
user_profile_enabled=True,
chat_summary_enabled=True
)
)
)
Environment Variables
Set the following environment variables:
$env:AZURE_FOUNDRY_PROJECT_ENDPOINT="https://your-foundry-service.services.ai.azure.com/api/projects/your-foundry-project"
$env:AZURE_FOUNDRY_PROJECT_DEPLOYMENT_NAME="gpt-4o-mini" # Optional, defaults to gpt-4o-mini
$env:AZURE_AI_MEMORY_STORE_NAME="your-memory-store-name" # Required - name of pre-created memory store
Run the sample
Navigate to the FoundryAgents sample directory and run:
cd dotnet/samples/02-agents/FoundryAgents
dotnet run --project .\FoundryAgents_Step22_MemorySearch
Expected behavior
The sample will:
- Create an agent with Memory Search tool configured
- Send a message with personal information ("My name is Alice and I love programming in C#")
- Wait for memory indexing
- Ask the agent to recall the previously shared information
- Display memory search results if available in the response
- Clean up by deleting the agent (note: memory store persists)
Important notes
- Memory Store Lifecycle: Memory stores are long-lived resources and are NOT deleted when the agent is deleted. Clean them up separately via Azure Portal or Python SDK.
- Scope: The
scopeparameter isolates memories per user/context. Use unique identifiers for different users. - Update Delay: The
UpdateDelayparameter controls how quickly new memories are indexed.