6d0f28eb9b
.NET Workflows - Re-enable Declarative Integration Tests ( #1080 )
...
* Investigate
* Next
* Update initialization
* Should be ok
* Agent definition dx
* Link agent definitions
* Link agent definitions
* Path resolution #2
* Fix path resolution
* Another pass
* Another
* Better
* One more
* Whoopsie
* Update dotnet/tests/Microsoft.Agents.AI.Workflows.Declarative.IntegrationTests/Framework/AgentFactory.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Namespace
* Cleanup
* Temp config for pipeline
* Another temp workaround
* Test config: Bing Grounding Tool
* Update template
* Next pass
* Ok now
* Cleanup
* Test note
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-01 22:21:45 +00:00
Stephen Toub and GitHub
0fef277c70
Remove System.Linq.Async dependency from src assemblies ( #1069 )
...
We shouldn't be shipping any more dependencies on this package, as it's becoming legacy, replaced by System.Linq.AsyncEnumerable.
We'll eventually want to replace it with System.Linq.AsyncEnumerable in all tests/samples, too, but that's hard to do until SK updates to use S.L.AsyncEnumerable once its 10.0.0 version is released. I did remove the package reference from tests/samples where it's not needed.
2025-10-01 17:17:21 +00:00
Roger Barreto and GitHub
f9a3918916
Address bug when agent rawrepresentation is a MEAI type and returns it with null RawRep ( #1054 )
2025-10-01 10:37:12 +00:00
77404d165c
.NET Workflows - Code Generation for Declarative Workflow ( #655 )
...
* Notes
* Readme typo
* Update readme
* Checkpoint
* Namespace fix
* Fix ID and namespace
* Checkpoint
* Verified
* Comments
* Isolate "Kit"
* Address note: static
* Checkpoint
* Checkpoint "Executor<>"
* Prefix and internal executors
* Test passing
* Cleanup
* Rename "session" concept
* Revert workflow debug
* Fix template base / pragma
* Tune system scope
* Update dotnet/src/Microsoft.Agents.Workflows.Declarative/CodeGen/ResetVariableTemplate.tt
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix empty template
* Add validation for codegen ut
* Fix test
* Codegen baselines
* Constant
* Prep
* Mark TODO
* Fix
* Namespace
* One more
* Update baselines
* Checkpoint
* Checkpoint
* Checkpoint
* fme
* Checkpoint
* Another step
* Fixed up
* Roslyn
* Fix
* More cleaning
* Async
* Fix
* Enum checkpoint
* Refine enum
* Checkpoint
* Sync templates
* Checkpoint
* Streamline
* Pre-merge analyzer updates
* Foreach
* Placeholders
* Checkpoint
* Clean-up
* Sample path resolution
* Checkpoint
* Checkpoint - Workflow Code Building
* Validation
* Test cleanup
* Update test basline
* Update test baseline
* Fix DefaultTemplate usage
* Validation checkpoint
* Fix break/continue edges
* Verify generated code builds
* Fix merge
* Fix build validation
* Update template handling of literal string values.
* Test for metadata case
* Update baselines
* Fix merge
* Checkpoint
* Checkpoint: Conditions
* Invoke Agent Checkpoint
* Namespace
* Address code-analysis issues
* Cross platform test support
* Invoke agent checkpoint
* Clean sample
* Checkpoint: Agent Invoke Input Messages
* Checkpoint - Passing
* Checkpoint
* Regenerate all template + port conversation fix
* Checkpoint: Tests good
* Fix test for unbuntu
* Fix build command
* Checkpoint - E2E
* Test fix
* Update integration tests
* Fix merge
* Update
* Checkpoint !!!
* Baby steps
* Checkpoint
* Checkpoint E2E !!!
* So close...
* Integrate test validation
* Fix merge
* Rebase tests
* Namespace
* Namespace
* Test cleanup
* Sample comment cleanup
* Checkpoint: List conversion
* Include these
* CheckPoint: ParseValue
* Namespace
* Fix sampel
* More namspace
* Comments
* Test updates
* Test fix
* Better build
* Shared code
* Sort solution
* Fix build
* Prune solution
* One more
* Conversion matrix
* Final table conversion
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-09-30 21:56:14 +00:00
Stephen Toub and GitHub
2d2a5bcd66
Clean up a few ifdefs ( #1016 )
2025-09-30 18:58:00 +00:00
Ben Thomas and GitHub
df3e12b2ed
.Net: Visualizing dotnet workflows ( #882 )
...
* Adding more test for workflow vizualization.
* Improving README for sample.
* More cleanup.
* Removing rendering of workflow visualization and adding basic support for mermaid format.
* Adding basic mermaid tests.
* Improving sample. Switching to another branch.
* About to merge from main.
* Formatting.
* More fromatting.
* Removng uneeded call to ToUpper.
* Adding README.
* Moving samples under workflow to workflows.
* Removing uneeded README for map-reduce sample.
2025-09-30 16:29:19 +00:00
32e054f1fe
Rename AI Agent packages to use Microsoft.Agents.AI ( #913 )
...
* Rename AI Agent packages to use Microsoft.Agents.AI
* Fix for build
* Fix formatting
* Fix formatting
* Ignore in VSTHRD200 in migration samples
* Ignore in VSTHRD200 in migration samples
* Add some missing projects and run format
* Fix build errors
* Address code review feedback
* Fix merge issues
---------
Co-authored-by: Mark Wallace <markwallace@microsoft.com >
2025-09-25 19:31:25 +00:00
Stephen Toub and GitHub
c5e6735b7a
Some more analyzer cleanup ( #815 )
2025-09-22 13:20:32 +00:00
Stephen Toub and GitHub
5e5761b288
Enable more analyzers and various code tweaks/cleanup ( #738 )
2025-09-18 01:48:25 +00:00
24ad03af6f
.NET: Add Declarative Workflow Interpreter ( #401 )
...
* test: Add Reflection/Invocation tests
* fix: Terminate on Completion event
* refactor: Update public API surface
* feat: Add support for external requests
* feat: Support hosting AIAgent instances in Workflows
* fix: Fix routing to go through Executor.ExecuteAsync
* test: Update samples for "must SendMessage" semantics
* Add invoking samples to unit tests to avoid future breaks
* fix: ExternalRequest should block Workflow completion
* feat: Normalize API surface against Python
* Also adds xmldoc to all public APIs
* refactor: Normalize UnitTest and Sample namespaces
* fix: Formatting
* refactor: Normalize project/folder names
* feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
* fix: Fix ILTrim warnings
* docs: Add missing docs and fix typos
* feat: Hosted Agents should report Run events
* fix: Fix type propagation for ILTrim changes
* refactor: Simplify DynamicallyAccessedMembers annotations
* sample: Use static-Type construction of InputPort
* feat: Support non-Streaming Run Mode
* test: Add test for non-streaming execution
* Conversion checkpoint
* Fix namespace error
* Restructure
* Completion
* Executor checkpoint
* Conditional checkpoint
* Cleanup
* Exception cleanup
* Sample cleanup
* Updates
* feat: Define Workflow and Executor APIs
* feat: Define IExecutionContext and Events
* feat: Simple Workflow Demos
* refactor: Move Workflows classes to separate assembly
* feat: Move FanOut/In to LowLevel API with new semantics
* feat: Implement Local Execution
* refactor: Assembly name .Workflow => .Workflows
* feat: Enable Default Message Handling
* also lifts Bind in MessageHandlerInfo to better be able to direclty invoke handlers (for AOT, later)
* feat: Implement StreamingHandle APIs
This allows the user to respond to WorkflowEvents with external messages, enabling HIL.
* feat: Add checks for duplicate edges and chain cycles
* feat: Add built-in WorkflowEvents
* refactor: Pull classes into own files
* refactor: Simplify Disposal pattern in Executor
* refactor: Break EdgeRunner file into per-type files
* refactor: Use Throw.IfNull()
* refactor: Remove AddLoop()
Per https://github.com/microsoft/agent-framework/pull/272#discussion_r2241739079 we decided this was not very useful.
* refactor: Normalize use of ValueTask
* fix: Build Break from removing .AddLoop
* refactor: Explicit routing and RouteBuilder
Split out reflection from MessageRouter implemention into build phase, enabling AOT compilation to drive RouteBuilding without reflection.
* test: Add Reflection/Invocation tests
* fix: Terminate on Completion event
* refactor: Update public API surface
* feat: Add support for external requests
* feat: Support hosting AIAgent instances in Workflows
* fix: Fix routing to go through Executor.ExecuteAsync
* test: Update samples for "must SendMessage" semantics
* Add invoking samples to unit tests to avoid future breaks
* fix: ExternalRequest should block Workflow completion
* feat: Normalize API surface against Python
* Also adds xmldoc to all public APIs
* refactor: Normalize UnitTest and Sample namespaces
* fix: Formatting
* refactor: Normalize project/folder names
* feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
* fix: Fix ILTrim warnings
* docs: Add missing docs and fix typos
* feat: Hosted Agents should report Run events
* fix: Fix type propagation for ILTrim changes
* refactor: Simplify DynamicallyAccessedMembers annotations
* sample: Use static-Type construction of InputPort
* feat: Support non-Streaming Run Mode
* test: Add test for non-streaming execution
* refactor: Remove unused types
* refactor: Simplify Event and EdgeData type hierarchies
* feat: Add Switch (=Conditional Edge Group) control flow
* Fix unit-tests
* Add sample
* Comment cleanup
* Fix debug output
* Formating helpers
* feat: Define Workflow and Executor APIs
* feat: Define IExecutionContext and Events
* feat: Simple Workflow Demos
* refactor: Move Workflows classes to separate assembly
* feat: Move FanOut/In to LowLevel API with new semantics
* feat: Implement Local Execution
* refactor: Assembly name .Workflow => .Workflows
* feat: Enable Default Message Handling
* also lifts Bind in MessageHandlerInfo to better be able to direclty invoke handlers (for AOT, later)
* feat: Implement StreamingHandle APIs
This allows the user to respond to WorkflowEvents with external messages, enabling HIL.
* feat: Add checks for duplicate edges and chain cycles
* feat: Add built-in WorkflowEvents
* refactor: Pull classes into own files
* refactor: Simplify Disposal pattern in Executor
* refactor: Break EdgeRunner file into per-type files
* refactor: Use Throw.IfNull()
* refactor: Remove AddLoop()
Per https://github.com/microsoft/agent-framework/pull/272#discussion_r2241739079 we decided this was not very useful.
* refactor: Normalize use of ValueTask
* fix: Build Break from removing .AddLoop
* refactor: Explicit routing and RouteBuilder
Split out reflection from MessageRouter implemention into build phase, enabling AOT compilation to drive RouteBuilding without reflection.
* test: Add Reflection/Invocation tests
* fix: Terminate on Completion event
* refactor: Update public API surface
* feat: Add support for external requests
* feat: Support hosting AIAgent instances in Workflows
* fix: Fix routing to go through Executor.ExecuteAsync
* test: Update samples for "must SendMessage" semantics
* Add invoking samples to unit tests to avoid future breaks
* fix: ExternalRequest should block Workflow completion
* feat: Normalize API surface against Python
* Also adds xmldoc to all public APIs
* refactor: Normalize UnitTest and Sample namespaces
* fix: Formatting
* refactor: Normalize project/folder names
* feat: Remove DynamicCodeExecution from ValueTaskTypeErasure
* fix: Fix ILTrim warnings
* docs: Add missing docs and fix typos
* feat: Hosted Agents should report Run events
* fix: Fix type propagation for ILTrim changes
* refactor: Simplify DynamicallyAccessedMembers annotations
* sample: Use static-Type construction of InputPort
* feat: Support non-Streaming Run Mode
* test: Add test for non-streaming execution
* refactor: Remove unused types
* refactor: Simplify Event and EdgeData type hierarchies
* feat: Add Switch (=Conditional Edge Group) control flow
* feat: Make .NET AutoSend the MessageHandler result
* feat: Implement State APIs
* Add tests
* Fix merge from main
* Test coverage
* Message event
* Comments and clean-up
* Format
* Cleanup
* Test checkpoint
* Clean-up - comments / test
* Test baseline - 100%
* More clean-up
* Comments
* Streaming...sort've...
* Fix build / test
* Stable
* Checkpoint
* Checkpoint
* Stable
* Update sample after merge
* Add "Question" workflow
* State clean-up checkpoint
* State clean-up
* Sample updated
* Expression bug fix
* Sample formatting
* Add unit test
* Comments
* Scope cleanup
* Refine cleanup
* Fill gaps
* fcs
* Finalize data-types
* Add unit-test
* Debug cleanup
* Bug fixes
* Demo progress
* Sample clean-up
* Update samples
* Sample updates
* Sync demo workflows
* Sample formatting
* Sample formatting
* Demo complete
* Workflow formatting
* Demo formatting #2
* Readme + Sample clean-up
* Scope update
* Update diagnostics
* Variable initiaization
* Rollback
* Tune research summary
* State management
* Fix merge
* Fix merge - demo
* Add readme
* Overload for workflow builder
* Fault tolerance - scope equivalency
* Fix feed
* Update sample
* Add default for "Bot"
* Nuget.config patchwork
* Scope assignment check
* Rollback nuget.config haxx
* Sample format
* Namespace
* Namespace
* Agent-Provider
* Clean-up extra files
* Renaming
* Update sample
* Prune junk files
* Clean-up
* Use transform
* agent provider fix
* Typo
* Null check fix
* Fix merge
* Checkpoint
* Cleanup
* Exception cleanup
* Exception message
* Clean-up
* Sample config update
* Update handling of "Env" scope
* Sample agent templates
* Add readme
* Event cleanup
* Rename event
* Update workflows/README.md
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com >
---------
Co-authored-by: Jacob Alber <jaalber@microsoft.com >
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com >
2025-09-03 16:32:15 +00:00
westey and GitHub
bbea3c00f8
.NET: Add more console based getting started samples ( #507 )
...
* Add more console based getting started samples
* Simplify function calling and approavls samples and some minor renaming based on PR feedback.
* Cover streaming with comments for aprovals sample.
* Remove extra line break.
* Update getting started samples list in readme.
* Address PR comments
* Address PR comments.
2025-08-28 14:14:25 +00:00
westey and GitHub
435fd14da5
Add proposed stucture for samples and user documentation ( #484 )
2025-08-25 17:11:09 +00:00
westey and GitHub
71a0bf22eb
.NET: Enhance console samples while preserving copyability ( #475 )
...
* Enhance console samples while preserving copyability
* Add readme for minimal console demo
* Suppress pre-release version warning
* Address PR comments
* Change showing settings to opt-in
* Update comment
2025-08-22 14:58:10 +00:00
9faa27b8eb
.NET: Clean / address some message warnings ( #291 )
...
* WIP
* Structured Output sample
* Update dotnet/samples/GettingStarted/Steps/Step06_ChatClientAgent_StructuredOutputs.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Address xml and comment targeting the Structured Output context
* Update with proposed fix for Persistent ChatClient
* Address PR feedback
* Address minor warnings
* Address initialization
* Address initialization
* Address PR comments, update suggestions
* Revert changes to NullableAttributese.cs
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Chris <66376200+crickman@users.noreply.github.com >
2025-08-05 12:55:44 +00:00
Stephen Toub and GitHub
456e7d1b65
Round 2 of cleanup for agent runtime and orchestrations ( #164 )
...
- Moved InProcessRuntime type into abstractions package and deleted InProcess package.
- Moved several members of IAgentRuntime to be extension methods instead, e.g. multiple GetActorAsync overloads.
- Added synchronous RegisterMessageHandler overloads and used them to avoid unnecessary async usage at call sites.
- Removed unnecessary surface area from InProcessRuntime, e.g. StopAsync, RunUntilIdleAsync, etc.
- Fixed spin loop in InProcessRuntime that would consume an entire core for the duration of the orchestration's operation.
- Removed a bunch of allocation from InProcessRuntime.
- Made a runtime optional for orchestrations, defaulting to using a temporary InProcessRuntime if none is provided.
- Removed custom delegate types from orchestrations.
- Consolidated namespaces.
- Used records to simplify message classes.
- Tweaked naming on AgentActor to make purpose of protected methods more clear.
- Removed invocation in AgentActor.InvokeAsync of empty update / isFinal parameter.
- Changed OrchestrationHandoffs to avoid needing to pass in agents duplicatively.
- Made various extension methods, such as those on OrchestrationHandoffsExtensions, into instance methods.
2025-07-11 11:12:18 -04:00
715769e649
Run Response ADR & Updates ( #104 )
...
* Add ADR for different run response options
* Add another option to the list.
* Update agno non-streaming with further clarification
* Add another option
* Adding optional includeUpdates option
* Adding Pros/Cons for each option
* Make pros/cons a list
* Add some thoughts on structured outputs and custom AIContent types
* Update design doc to clarify primary and secondary better and split out custom response types with it's own options
* Add structured outputs competitive comparison and suggestion
* Address PR comments.
* Remove AgentRunFinishReason until we can find a good use case for it.
* Add finish reason to list of excluded properties.
* Add custom agent run response types.
Usage to follow.
* Update Agent run response types
* Add additional code coverage
* Remove onIntermediateMessage since it is unecessary with the new response approach.
* Add AgentId to response.
* Rename ParseAsStructuredOutput to Deserialize
* Update decision doc.
* Fix formatting.
* Update CopilotStudio to return new response types
* Address PR comment
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com >
---------
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com >
2025-07-11 11:39:18 +00:00
7c8ec5ec19
.NET Port Agent Orchestration ( #107 )
...
* Checkpoint
* Checkpoint
* Namespaces
* Namespace
* Cleanup
* Namespace order
* Fix sync
* Formatting
* Formatting
* Namespace
* Namespace order
* Code convention
* Naming
* Naming
* Text handling
* Text handling
* Namespace
* Namespace order
* Namespace ordering
* Test
* ValueTask
* net472
* Test fix
* Fix namespace (net472)
* Namespace
* Fix conditional namespace
* Fix type expression
* Compatibility and cleanup
* Sample compatibility
* Sample compat
* Test compat
* modifier order
* Simply http-stub
* Formating fix for unit-test
* Fix test
* Real fix
* Test clean-up
* Update dotnet/src/Microsoft.Agents.Orchestration/Handoff/HandoffOrchestration.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Fix build errors after merging
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: Stephen Toub <stoub@microsoft.com >
2025-07-08 13:04:34 -04:00
Roger Barreto and GitHub
06a690685f
.Net: Add Reasoning Model Integration tests ( #100 )
...
* Add reasoning integration tests
* Adding Reasoning Model config
2025-06-25 19:50:29 +00:00
Dmytro Struk and GitHub
47dcad6b49
.Net: Added Azure AI Persistent Agents ( #81 )
...
* Added PersistentAgentsChatClient
* Added integration tests
* Small fixes
* Added sample
* Added TODO for tools
* Small rename
* Removed user-secrets id
* Renamed project
* Fixed warning
* Fixed warning
* More fixes
* More fixes
2025-06-19 14:01:26 +00:00
Roger Barreto and GitHub
14f3811648
.Net: Add Azure OpenAI Agent Model Samples ( #80 )
...
* Improved Merge logic
* Add modularization for Model Samples and Azure OpenAI
* Address PR feedback
* Warning fix
* Address PR comments
2025-06-18 12:00:38 +00:00
westey and GitHub
e6bfc51367
Add additional integration tests and add OpenAIAssistant integration tests project. ( #79 )
...
* Add additional integration tests and add OpenAIAssistant integration tests project.
* Address PR comments.
* Address PR comments.
2025-06-17 11:43:29 +00:00
2c75f13337
.Net: Add ChatClientAgent Samples - OpenAI Model Client ( #72 )
...
* Add Streaming API
* Removing InstructionsRole
* Updating thread notification strategy
* Fix net472 failing
* Small fixes
* Adding Samples for OpenAI
* WIP samples
* default runsettings for unit tests
* Adding first samples with OpenAIModelChatClientAgents
* Removing OpenAI dependency on the sample utility
* Release -> Debug update for GettingStarted project
* Fix GettingStarted.csproj failing to build in Release
* Update dotnet/src/Shared/Samples/BaseSample.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Address PR feedback
* Fix Step 1 samples
* Simplify code
* Address PR feedback
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-06-12 12:22:07 +00:00
Dmytro Struk and GitHub
41facf3a2d
.Net: Added shared classes ( #58 )
...
* Added Throw shared class
* Added Experimental attribute
* Added IsExternalInit
* Added TrimAttributes
* Small update
* Small update
* Suppress warning
* Added comment
* Updated LegacySupport.props
* Small updates
2025-06-04 08:44:12 +00:00