Skip to content

.NET: Add a ModeProvider for managing agent modes - #5247

Merged
westey (westey-m) merged 5 commits into
microsoft:feature-harnessfrom
westey-m:harness-mode-provider
Apr 15, 2026
Merged

.NET: Add a ModeProvider for managing agent modes#5247
westey (westey-m) merged 5 commits into
microsoft:feature-harnessfrom
westey-m:harness-mode-provider

Conversation

@westey-m

Copy link
Copy Markdown
Contributor

Motivation and Context

Description

  • Tracks agent mode, between planning and execution.
  • Allows both the caller and the agent to switch modes.

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 14, 2026 11:53
@moonbox3Evan Mattson (moonbox3) added the .NET Usage: [Issues, PRs], Target: .Net label Apr 14, 2026
@github-actionsgithub-actionsBot changed the title Add a ModeProvider for managing agent modes.NET: Add a ModeProvider for managing agent modesApr 14, 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

Introduces a new harness AIContextProvider for tracking an agent “mode” (planning vs execution) in per-session state, exposing tools and helpers to read/change that mode.

Changes:

  • Added AgentModeProvider with GetMode/SetMode helpers plus GetMode/SetMode function tools and mode-specific instructions.
  • Added AgentModeState stored in AgentSession.StateBag and registered it for source-generated JSON serialization.
  • Added unit tests covering default mode, tool behavior, helper behavior, and state persistence.

Reviewed changes

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

FileDescription
dotnet/src/Microsoft.Agents.AI/Harness/AgentMode/AgentModeProvider.csAdds the provider implementation, instructions, and mode tools backed by session state.
dotnet/src/Microsoft.Agents.AI/Harness/AgentMode/AgentModeState.csAdds the persisted session state model for current mode.
dotnet/src/Microsoft.Agents.AI/AgentJsonUtilities.csRegisters AgentModeState for JSON source generation.
dotnet/tests/Microsoft.Agents.AI.UnitTests/Harness/AgentMode/AgentModeProviderTests.csAdds unit tests validating provider/tool/helper behavior and persistence.

Comment threaddotnet/src/Microsoft.Agents.AI/AgentJsonUtilities.cs Outdated
@westey-m
westey (westey-m) merged commit b4c853e into microsoft:feature-harnessApr 15, 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@SergeyMenshykh@peibekwe@moonbox3