Commit Graph
59 Commits
Author SHA1 Message Date
b52136952f Update to M.E.AI 10.3.0 (#3822)
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
2026-02-11 17:02:07 +00:00
3c322c91e7 .NET: Update to latest Azure.AI.*, OpenAI, and M.E.AI* (#2850)
* Update to latest Azure.AI.*, OpenAI, and M.E.AI*

Absorb breaking changes in Responses surface area

* Update dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs

* Update dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs

* Update dotnet/samples/AgentWebChat/AgentWebChat.AgentHost/Utilities/ChatClientExtensions.cs

* Update dotnet/samples/GettingStarted/AgentWithOpenAI/Agent_OpenAI_Step04_CreateFromOpenAIResponseClient/Program.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Using patch to remove the model is necessary, updated the response client to actually use the the ForAgent

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
2025-12-16 12:41:20 +00:00
Stephen ToubandGitHub b01fd23cd2 Update analyzers for .NET 10 SDK (#2611) 2025-12-10 10:34:56 +00:00
9c2e800189 Remove unnecessary PackageReferences after .NET 10 update (#2394)
Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
2025-12-04 00:09:51 +00:00
a3909b8b5b Change sample to use official Anthropic C# package (#2471)
Co-authored-by: Roger Barreto <19890735+rogerbarreto@users.noreply.github.com>
2025-11-28 19:10:54 +00:00
Stephen ToubandGitHub 66a399ee2d Update Azure.AI.OpenAI to latest release (#2501) 2025-11-27 15:28:43 +00:00
Stephen ToubandGitHub 7a4f6877c3 Use Random.GetString in hosting IdGenerator (#2427) 2025-11-25 12:01:28 +00:00
Stephen ToubandGitHub a116edaf5a Update to latest MEAI 10.0.1 and OpenAI 2.7.0 (#2392) 2025-11-24 13:51:27 +00:00
b66efcc09d remove version override for v10 packages (#2393)
Co-authored-by: SergeyMenshykh <sergemenshikh@gmail.com>
2025-11-24 13:01:07 +00:00
Stephen ToubandGitHub dc2b109b50 .NET: Upgrade to .NET 10 (#2128)
* Upgrade to .NET 10

- Require .NET 10 SDK
- Include net10.0 assets in all assemblies
- Move net9.0-only targets to net10.0
- Update LangVersion to latest
- Remove complicated distinctions between debug target TFMs and release target TFMs
- Remove unnecessary package dependencies when built into netcoreapp
- Clean up some ifdefs
- Clean up some analyzer warnings

* Fix CI
2025-11-22 04:14:15 +00:00
Stephen ToubandGitHub c8bb3d1835 Update .NET packages to 10.0.0 (#2092) 2025-11-12 11:14:53 +00:00
820c6afe09 .NET: Fix the ordering of chained resolvers in JsonSerializerOptions (#1974)
* Fix the ordering of chained resolvers in JsonSerializerOptions

We want the resolvers from AIJsonUtilities to be used before the ones from the source generator, in case the source generator emits its own copy in that assembly for the M.E.AI types.

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update dotnet/src/Microsoft.Agents.AI/AgentJsonUtilities.cs

* Update dotnet/src/Microsoft.Agents.AI.Mem0/Mem0JsonUtilities.cs

Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>

* Remove unused using directive in Mem0JsonUtilities

Removed unused using directive for Microsoft.Extensions.AI.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
2025-11-06 22:23:37 +00:00
e87eed573b .NET: Change GetAIAgentAsync to be synchronous (#1846)
* Change GetAIAgentAsync to be synchronous

* Update dotnet/tests/Microsoft.Agents.AI.A2A.UnitTests/Extensions/A2AAgentCardExtensionsTests.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-03 15:16:19 +00:00
Stephen ToubandGitHub 8408209c70 Fix gen_ai.operation.name to be invoke_agent (#1729) 2025-10-28 01:45:09 +00:00
Stephen ToubandGitHub 23bf1db623 Bump ModelContextProtocol to 0.4.0-preview.3 (#1585) 2025-10-22 19:01:45 +00:00
22d76e5780 .NET: Fix handoff function naming (#1370)
* Fix handoff function naming

We don't need the agent's name or a guid in the handoff name... we can just use simple numbering. There's a possibility that someone built an agent with a built-in function tool named "handoff_to_x"; if that turns out to be an issue, we could add back some longer bit of randomness.

* Update dotnet/src/Microsoft.Agents.AI.Workflows/Specialized/HandoffAgentExecutor.cs

---------

Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
2025-10-21 15:23:53 +00:00
Stephen ToubandGitHub 3e59ac06b4 Remove unnecessary Microsoft.Net.Compilers.Toolset package (#1448) 2025-10-16 17:10:23 +00:00
ab450078ab Update to M.E.AI 9.10 (#1461)
And other System.*/Microsoft.Extensions.* updated today

Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
2025-10-15 08:33:33 +00:00
Stephen ToubandGitHub 2c9cf6f59d Remove unused PackageVersions from Directory.Packages.props (#1334) 2025-10-09 21:28:00 +00:00
Stephen ToubandGitHub 74864f353d Update to latest OpenAI (#1286) 2025-10-08 21:09:52 +00:00
Stephen ToubandGitHub 959e5842c2 Removing duplicating update coalescing logic in AgentRunResponseExtensions (#1169) 2025-10-07 13:42:01 +00:00
cf831b0348 Update A2A library to 0.3.1-preview (#1141)
Co-authored-by: SergeyMenshykh <68852919+SergeyMenshykh@users.noreply.github.com>
2025-10-03 09:31:31 +00:00
Stephen ToubandGitHub 4daeeb0f07 Add some DebuggerDisplays / DebuggerTypeProxys to abstraction types (#1144) 2025-10-03 08:51:49 +00:00
Stephen ToubandGitHub 3ae9065b6b Tweak AgentAbstractionsJsonUtilities to better match AIJsonUtilities (#1094)
Functional change includes setting the encoder used by the options and employing JsonStringEnumConverter.
2025-10-02 05:19:27 +00:00
a414461570 .NET: Re-enable ImplicitUsings in samples and clean up NoWarns (#1060)
* Re-enable ImplicitUsings in samples and clean up NoWarns

* Fix dotnet format

* More dotnet format

* More dotnet format

---------

Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
2025-10-01 19:37:03 +00:00
Stephen ToubandGitHub 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
f21b9d14f8 .NET: Use copilot to improve XML docs for M.Agents.AI{.Abstractions} (#1042)
* Use copilot to improve XML docs for M.Agents.AI{.Abstractions}

Asked copilot to help improve some of the docs, then I reviewed them.

I also cleaned up a few things along the way, like a couple of extension method types that should be combined.

* Update dotnet/src/Microsoft.Agents.AI.Abstractions/InMemoryChatMessageStore.cs

---------

Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
2025-10-01 08:44:33 +00:00
Stephen ToubandGitHub 5c0bea12e3 Add linePragmas="false" to t4 templates (#1041) 2025-10-01 08:43:29 +00:00
Stephen ToubandGitHub 498fc06fd6 Hide/remove some JSON utility classes (#1039) 2025-10-01 05:38:46 +00:00
Stephen ToubandGitHub 9360780ce5 Remove defunct AgentExtensions.WithOpenTelemetry (#1033) 2025-10-01 00:24:13 +00:00
Stephen ToubandGitHub 2539282d30 .NET: Fix some more static analysis diagnostics (#1025)
* S1006

* S2219

* S3236

* S3260

* S1125

* IDE0063

* IDE0062

* IDE0028
2025-09-30 22:50:22 +00:00
Stephen ToubandGitHub 2d20e644df .NET: Update M.A.AI.OpenAI implementations (#1018)
* Update M.A.AI.OpenAI implementations

- There was only a ChatClient-based agent. Add a Responses one, too.
- Fix the public extension methods to create OpenAI types even when not backed by the right OpenAI client.
- Add reusable AgentRunResponse{Update} to ChatResponse{Update} conversion routines that are then used by the OpenAI agents and elsewhere

* Address feedback
2025-09-30 19:06:10 +00:00
Stephen ToubandGitHub 8dad045c9d Update to Aspire 9.5 (#1021) 2025-09-30 19:05:39 +00:00
Stephen ToubandGitHub 2d2a5bcd66 Clean up a few ifdefs (#1016) 2025-09-30 18:58:00 +00:00
Stephen ToubandGitHub 0502f3ef91 .NET: Update OpenTelemetryAgent to latest spec (#967)
* Update OpenTelemetryAgent to latest spec

It was stale. Rather than try to keep it up-to-date manually, I've changed it to piggy back on OpenTelemetryChatClient, so that it inherits everything OpenTelemetryChatClient does and then augments it just with agent-specific tags.

* Address feedback / merge
2025-09-30 13:50:01 +00:00
Stephen ToubandGitHub 4fd61924fc .NET: Clean up some CancellationToken usage (#996)
* Clean up some CancellationToken usage

* Unused usings
2025-09-30 13:44:53 +00:00
Stephen ToubandGitHub 77e5f527c4 .NET: Clean up stale mentions of M.E.AI.Agents (#997)
* Clean up stale mentions of M.E.AI.Agents

* Unused usings
2025-09-30 08:36:06 +00:00
Stephen ToubandGitHub fc4fce7973 Update M.E.AI and MCP versions (#992)
But not yet M.E.AI.OpenAI, which depends on the latest OpenAI, which conflicts with the latest Azure.AI.OpenAI.
2025-09-30 07:17:59 +00:00
Stephen ToubandGitHub ff7d301389 Update System.CommandLine dependency (#918) 2025-09-28 18:55:48 +00:00
Stephen ToubandGitHub 0d9f133e3b [BREAKING] Delete Microsoft.Agents.Orchestration (#949)
Replaced by AgentWorkflowBuilder.
2025-09-28 18:54:52 +00:00
Stephen ToubandGitHub 03ef7f054f .NET: Add AgentWorkflowBuilder group chat (#861)
* Add AgentWorkflowBuilder group chat

And fix a variety of issues along the way:
- Use DateTime{Offset}.UtcNow rather than Now
- AIAgentHostExecutor shouldn't be publishing empty messages
- Sequential workflows should be flowing all history and not just the output from the previous agent as the input into the next agent
- Renamed some of the new agent workflow methods... still not super happy with the shape, though
- Simplified handoffs builder, e.g. using a hashset with a custom comparer instead of a dictionary
- Improved multi-service use by trying to change assistant->user role for messages created by other agents
- Changed MessageMerger to rely on M.E.AI's coalescing more and to avoid empty contents / text
- Ensured that messages from ChatClientAgent include MessageId and CreatedAt timestamps
- Avoided including instructions for agents in a handoff workflow that don't have any handoffs
- Removed the unnecessary end function in handoffs
- Improved naming of executors to include agent name for debuggability
- Use "N" formatting with Guid.ToString everywhere, to avoid the unnecessary extra dash character which is also not valid in various places (like function tool names)
- Replace `params T[]` with `params IEnumerable<T>` to make public APIs more flexible in what they consume

* Address feedback

- Fix unintentional provider change in sample
2025-09-24 16:38:34 +00:00
Stephen ToubandGitHub 09bdd64dcb Add a sample using multiple services (#851) 2025-09-23 01:07:51 +00:00
Stephen ToubandGitHub c5e6735b7a Some more analyzer cleanup (#815) 2025-09-22 13:20:32 +00:00
Stephen ToubandGitHub 52790b9f6a Add AgentWorkflowBuilder with Sequential, Concurrent, Handoff (#792) 2025-09-19 19:16:07 +00:00
Stephen ToubandGitHub 5e5761b288 Enable more analyzers and various code tweaks/cleanup (#738) 2025-09-18 01:48:25 +00:00
Stephen ToubandGitHub a0664201e2 Use LangVersion 13 rather than 12 (#760) 2025-09-16 02:49:00 +00:00
Stephen ToubandGitHub f9e133237d Update M.E.AI and delete a bunch of dead code (#676) 2025-09-11 00:40:58 +00:00
Stephen ToubandGitHub 233c557173 Clean up handoff orchestration creation (#235)
- Remove Dictionary-derived types
- Add an optional name to orchestrations
- Make Handoffs based purely on AIAgent instances rather than separately provided names
2025-07-24 16:38:23 +00:00
Stephen ToubandGitHub 5472d6e996 Overhaul orchestration library with new approach (#199) 2025-07-23 16:29:37 +00:00
d964b05ae7 Add an AgentRunResponse ctor accepting a ChatResponse (#204)
* Add an AgentRunResponse ctor accepting a ChatResponse

* Update dotnet/src/Microsoft.Extensions.AI.Agents.Abstractions/AgentRunResponseUpdate.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-21 14:49:47 +00:00
Stephen ToubandGitHub 6c12b2c0f8 Round 3 of cleanup (#186)
- Enable warnings as errors
- Make the remaining src projects NativeAOT compatible
- Use Throw helpers
2025-07-20 23:07:50 -04:00
Stephen ToubandGitHub 59bf7343af Update {Azure.AI.}OpenAI package versions (#187) 2025-07-14 18:04:52 -04:00
Stephen ToubandGitHub 80c1e2ee0a Allow InProcessRuntime subscriptions to be processed concurrently (#179)
* Allow InProcessRuntime subscriptions to be processed concurrently

* Fix tests
2025-07-11 21:50:51 -04:00
18299bc701 Fix handoff function names (#178)
* Fix handoff function names

Handoffs are including the agent name in the function name. But the agent name can include characters that are invalid for a function name, which results in errors. Replace them.

* Update dotnet/src/Microsoft.Agents.Orchestration/Handoff/HandoffActor.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-11 21:35:10 -04:00
Stephen ToubandGitHub 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
Stephen ToubandGitHub 01fd74a80c Update some dependency version (#162) 2025-07-10 14:22:17 +00:00
Stephen ToubandGitHub fbf1f10a8a First round of cleanup of runtime abstractions (#156) 2025-07-10 07:57:51 -04:00
Stephen ToubandGitHub 4a0f8dcbe0 Port Agent Runtime abstractions / inprocess runtime (#149) 2025-07-09 09:08:45 -04:00
Stephen ToubandGitHub e7b559fa62 Suggested tweaks to Agent (#88)
- Id should return a stable ID, not a different value per access
- The RunAsync virtuals needn't be virtuals... a derived type can/should override just the main worker abstract method
- The protected methods should do argument validation
2025-06-24 15:57:40 +00:00