Skip to content

.NET: Add a file memory provider - #5315

Merged
westey (westey-m) merged 5 commits into
microsoft:feature-harnessfrom
westey-m:file-memory-provider
Apr 20, 2026
Merged

.NET: Add a file memory provider#5315
westey (westey-m) merged 5 commits into
microsoft:feature-harnessfrom
westey-m:file-memory-provider

Conversation

@westey-m

Copy link
Copy Markdown
Contributor

Motivation and Context

It's important to be able to save memories. Adding a file memory provider.

Description

  • Add a file memory provider

Contribution Checklist

  • The code builds clean without any errors or warnings
  • The PR follows the Contribution Guidelines
  • All unit tests pass, and I have added new tests where possible
  • Is this a breaking change? If yes, add "[BREAKING]" prefix to the title of the PR.

CopilotAI review requested due to automatic review settings April 16, 2026 18:43
@moonbox3Evan Mattson (moonbox3) added the .NET Usage: [Issues, PRs], Target: .Net label Apr 16, 2026
@github-actionsgithub-actionsBot changed the title Add a file memory provider.NET: Add a file memory providerApr 16, 2026

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new .NET “file-based memory” harness provider that exposes tools for saving/reading/listing/deleting/searching memory files via an AgentFileStore abstraction (with an in-memory implementation), and wires it into the harness sample plus JSON source-gen and tests.

Changes:

  • Introduces FileMemoryProvider and supporting DTOs/state, backed by an abstract AgentFileStore.
  • Adds InMemoryAgentFileStore implementation and unit tests for both store and provider behavior.
  • Updates JSON source generation, sample harness registration, tool-call formatting, and adds globbing dependency.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 9 comments.

Show a summary per file
FileDescription
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/AgentFileStore.csNew abstraction for file operations + glob matching helper.
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/InMemoryAgentFileStore.csIn-memory implementation including list/search/path normalization logic.
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.csNew AI context provider exposing FileMemory_* tools and instructions.
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryState.csProvider session state (working folder).
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileListEntry.csList-files tool response model (name + optional description).
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileSearchResult.csSearch tool response model (file + snippet + matching lines).
dotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileSearchMatch.csSearch match model (line number + line text).
dotnet/src/Microsoft.Agents.AI/Microsoft.Agents.AI.csprojAdds FileSystemGlobbing package reference.
dotnet/Directory.Packages.propsPins FileSystemGlobbing package version.
dotnet/src/Microsoft.Agents.AI/AgentJsonUtilities.csAdds JSON source-gen entries for new FileMemory models.
dotnet/tests/Microsoft.Agents.AI.UnitTests/Harness/FileMemory/InMemoryAgentFileStoreTests.csNew unit tests for the in-memory file store.
dotnet/tests/Microsoft.Agents.AI.UnitTests/Harness/FileMemory/FileMemoryProviderTests.csNew unit tests for FileMemoryProvider tool behaviors/state.
dotnet/samples/02-agents/Harness/Harness_Step01_Research/Program.csRegisters FileMemoryProvider in the research harness sample.
dotnet/samples/02-agents/Harness/Harness_Shared_Console/ToolCallFormatter.csAdds formatter support for FileMemory_* tool calls.

Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/InMemoryAgentFileStore.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/InMemoryAgentFileStore.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/FileMemoryProvider.cs Outdated
Comment threaddotnet/src/Microsoft.Agents.AI/Harness/FileMemory/InMemoryAgentFileStore.cs Outdated
@westey-m
westey (westey-m) merged commit 8dca006 into microsoft:feature-harnessApr 20, 2026
12 checks passed
pullBot pushed a commit to nagyist/ms-agent-framework that referenced this pull request May 1, 2026
* .NET: Add a TODO AIContextProvider (microsoft#5233)
* Add a TODO AIContextProvider
* Add unit tests
* Address PR comments
* Address PR comments
* Fix test after removing one tool
* .NET: Add a ModeProvider for managing agent modes (microsoft#5247)
* Add a ModeProvider for managing agent modes
* Fix typo
* Fix typo
* Fix typo
* Address PR comments
* .NET: Add sample to show how to build a harness (microsoft#5268)
* Add sample to show how to build a harness
* Improve sample
* Sample max output tokens and model
* Fix encoding
* Fix model name in readme
* Address PR comments
* .NET: Add context window size compaction strategy for harness (microsoft#5304)
* Add context window size compaction strategy for harness
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Address PR comments
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* .NET: Add a file memory provider (microsoft#5315)
* Add a file memory provider
* Address PR comments
* Fix review comments.
* Add additional unit tests
* Addressing PR comments.
* .NET: Harness: Improve prompts and add FileSystem store (microsoft#5365)
* Harness: Improve prompts and add FileSystem store
* Address PR comments
* .NET: Harness: Improve path validation (microsoft#5404)
* Harness: Improve path validation
* Address PR comments
* .NET: Add always approve helpers, improve sample and fix bug (microsoft#5451)
* Add always approve helpers, improve sample and fix bug
* Address PR comments
* .NET: Make Todo, Mode and FileMemory providers more configurable (microsoft#5477)
* Make Todo, Mode and FileMemory providers more configurable
* Address PR comments.
* .NET: Add subagents provider and sample (microsoft#5518)
* Add subagents provider and sample
* Addressing PR comments.
* .NET: Harness filememory index plus instructions consistency (microsoft#5540)
* Add FileMemoryProvider index and improve instruction consistency
* Address PR comments.
* Address PR comments
* Address PR comments.
* Apply suggestion from @rogerbarreto
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
---------
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
* .NET: Refactor harness console to be more extensible and easy to understand with better UX (microsoft#5573)
* Refactor harness console to be more extensible and easy to understand with better UX.
* Fix formatting issues.
* Allow multiple clarifications in one response
* Address PR comments
* .NET: Add FileAccessProvdider and concurrency fix for FileMemoryProvider (microsoft#5583)
* Add FileAccessProvdider and concurrency fix for FileMemoryProvider
* Address PR comments
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

.NETUsage: [Issues, PRs], Target: .Net

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@westey-m@lokitoth@SergeyMenshykh@moonbox3