Progress.Memory
0.2.1
Prefix Reserved
dotnet add package Progress.Memory --version 0.2.1
NuGet\Install-Package Progress.Memory -Version 0.2.1
<PackageReference Include="Progress.Memory" Version="0.2.1" />
<PackageVersion Include="Progress.Memory" Version="0.2.1" />
<PackageReference Include="Progress.Memory" />
paket add Progress.Memory --version 0.2.1
#r "nuget: Progress.Memory, 0.2.1"
#:package Progress.Memory@0.2.1
#addin nuget:?package=Progress.Memory&version=0.2.1
#tool nuget:?package=Progress.Memory&version=0.2.1
Progress.Memory
Core .NET SDK for Progress Memory — long-term memory for AI agents.
Store, search, and delete conversation facts with semantic recall, backed by the Progress Memory service.
This package provides the IProgressMemoryClient interface and the ProgressMemoryClient HTTP client.
For framework integrations see the sibling packages:
| Package | Use when |
|---|---|
| Progress.Memory (this) | Core client only; bring your own DI or HTTP wiring |
| Progress.Memory.Extensions.AI | Microsoft.Extensions.AI pipelines |
| Progress.Memory.SemanticKernel | Semantic Kernel agents |
Requirements
- .NET 8, 9, or 10
- A running Progress Memory backend
- An SDK API key (generate one from the SDK Keys page in the Progress Memory admin UI)
Installation
dotnet add package Progress.Memory
Quick start
1. Register with dependency injection
From configuration (reads PROGRESS_MEMORY_BACKEND_URL and PROGRESS_MEMORY_SDK_API_KEY):
// Program.cs
builder.Services.AddProgressMemory(builder.Configuration);
Explicit config object:
builder.Services.AddProgressMemory(new ProgressMemoryConfig(
BackendBaseUrl: "https://memory.example.com",
SdkApiKey: "pmem_p_..."));
2. Inject and use
public class MyService(IProgressMemoryClient memory)
{
// Store facts from a conversation exchange
await memory.AddMemoryAsync(new AddMemoryRequest
{
Messages =
[
new MemoryMessage { Type = "user", Text = "I'm vegetarian and I live in Berlin." },
new MemoryMessage { Type = "assistant", Text = "Noted! I'll keep that in mind." },
],
UserId = "user-123",
AgentId = "my-agent",
});
// Retrieve relevant facts before answering
var facts = await memory.RecallMemoryAsync(new RecallMemoryRequest
{
Query = "user diet and location",
UserId = "user-123",
AgentId = "my-agent",
topK = 5,
});
foreach (var fact in facts)
Console.WriteLine($"[{fact.Score:0.##}] {fact.Text}");
// Delete a specific fact by its ID
await memory.ForgetMemoryAsync(facts[0].MemoryId, userId);
}
API reference
IProgressMemoryClient
| Method | Description |
|---|---|
AddMemoryAsync(AddMemoryRequest, ct) |
Submits text or conversation messages for fact extraction, deduplication, and storage. Returns the number of memories saved and the conversation ID. |
RecallMemoryAsync(RecallMemoryRequest, ct) |
Semantic search over stored facts scoped to a user and agent. Returns ranked RecallResult items. |
ForgetMemoryAsync(string memoryId, string userId, ct) |
Deletes a single fact by its MemoryId. userId must match the owner of the memory. |
AddMemoryRequest
| Property | Type | Description |
|---|---|---|
Messages |
List<MemoryMessage>? |
Ordered conversation turns ("user" / "assistant"). Preferred over Text. |
Text |
string |
Single-text fallback when Messages is omitted. |
ConversationId |
string? |
Existing conversation ID to continue threading. Omit to start a new conversation. |
UserId |
string |
Scopes memories to this user. |
AgentId |
string |
Identifies the agent that submitted the memory. |
RecallMemoryRequest
| Property | Type | Description |
|---|---|---|
Query |
string |
Natural-language query for semantic search. |
UserId |
string |
Limits results to this user. |
AgentId |
string |
Limits results to this agent. |
topK |
int |
Maximum results to return (default 10). |
RecallResult
| Property | Description |
|---|---|
MemoryId |
Unique fact identifier — pass to ForgetMemoryAsync. |
Text |
The stored atomic fact. |
Score |
Semantic similarity score (0–1). |
Category |
LLM-assigned category label. |
Status |
Fact lifecycle status (e.g., active, outdated). |
ConversationId |
Conversation the fact was extracted from. |
ReferenceDate |
Timestamp of the original message. |
Modified |
When the fact was last updated. |
Configuration
| Environment variable | Description |
|---|---|
PROGRESS_MEMORY_BACKEND_URL |
Base URL of the Progress Memory backend |
PROGRESS_MEMORY_SDK_API_KEY |
SDK API key (pmem_p_…) |
Both can also be set in appsettings.json under the same keys.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.18)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.18)
- Microsoft.Extensions.Http (>= 9.0.18)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.18)
-
net9.0
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.18)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.18)
- Microsoft.Extensions.Http (>= 9.0.18)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.18)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Progress.Memory:
| Package | Downloads |
|---|---|
|
Progress.Memory.Extensions.AI
Microsoft.Extensions.AI integration for Progress.Memory. Provides AIFunction tools (remember/recall/forget) and a DelegatingChatClient middleware for automatic memory injection into M.E.AI chat pipelines. |
|
|
Progress.Memory.SemanticKernel
Semantic Kernel integration for Progress.Memory. Provides a KernelPlugin (remember/recall/forget) and an IChatCompletionService middleware wrapper for automatic memory injection in SK agentic pipelines. |
GitHub repositories
This package is not used by any popular GitHub repositories.