Commit Graph
933 Commits
Author SHA1 Message Date
Roger BarretoandGitHub dac17a8f48 .NET: Adding Semantic Kernel - Migration Samples (#499)
* Guidance

* Guidance

* WIP Migration Preps

* Move to single file projects

* Update guidance code and final adjustments to ensure all feature compatibility

* Move from demos to samples

* Address format

* Address chat client pipeline order

* Update project naming

* Revisition on README

* Remove unused ctor

* Address feedback

* Address feedback

* Address merge conflict fix

* Address SK versioning

* Address folder naming

* Address feedback
2025-08-29 14:29:03 +00:00
westeyandGitHub ecb2989382 Add docs contribution instructions (#527)
* Add docs contribution instructions

* Add pivot example.

* Fix casing.
2025-08-29 08:07:11 +00:00
Jacob AlberandGitHub e1147273da .NET: fix: FanIn Edge does not work (#541)
* fix: FanIn Edge does not work

We were not creating the state for FanIn edge in EdgeMap correctly, leading to crashes. After fixing that, it turns out the logic in FanInEdgeRunner was only forwarding the last message, not all of them.

* fix: Remove duplicate code and fix typo
2025-08-28 22:25:57 +00:00
Dmytro StrukandGitHub 0c28935382 Python: Improved exception messages in client initialization (#539)
* Improved exception messages in client initialization

* Fixed tests
2025-08-28 20:52:59 +00:00
Dmytro StrukandGitHub f5043e4fc1 Python: Small fixes in examples (#540)
* Fixed Ruff formatting

* Added more info to chat response cancellation example

* Improved example

* Small fix
2025-08-28 20:41:18 +00:00
Dmytro StrukandGitHub 6a00c9d026 Python: Documentation updates (#538)
* Added README for each sample sub-folder

* More documentation updates
2025-08-28 18:54:06 +00:00
Jacob AlberandGitHub ea7cff16ce fix: ChatMessage Aggregation in AIAgentHostExecutor (#530)
The previous fix for the aggregation in AIAgentHostExecutor has a bug wherein we only include the first update from a ChatMessage in the outgoing "collected" message.

The fix is to ensure we put the collected updates into the message before sending it out.
2025-08-28 18:23:19 +00:00
fe1941d25f .NET: Add samples to show how to create an AIAgent for each provider. (#525)
* Add samples to show how to create an AIAgent for each provider.

* Update dotnet/samples/HowToCreateAnAIAgentByProvider/README.md

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

* Address PR comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-28 14:25:19 +00:00
westeyandGitHub 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
westeyandGitHub 6b22b6bbc7 .NET: Fixes for agent abstractions to improve MEAI static analysis compliance (#498)
* Fixes for agent abstractions to improve MEAI static analysis compliance

* Fix build error
2025-08-28 10:59:23 +00:00
westeyandGitHub 802c8e6238 Add a script to produce docs by language, and add multi-turn-conversation docs (#510)
* Add a script to produce docs by language, and add multi-turn-conversation docs.

* Fix typo.

* Remove java pivots, move source templates and update comments.

* Add links to docs from root readme
2025-08-28 10:19:24 +00:00
Evan MattsonandGitHub 529341f58b Python: Add support for the MagenticWorkflowBuilder (#496)
* magentic happy path - wip

* Support workflow high-level magentic builder API. Add tests and samples.

* Add sample docstring

* Addressing PR feedback round 1

* Fix mypy errors

* Callback improvements

* Rename to MagenticBuilder

* Improvements

* Emit function calling deltas

* PR feedback 2

* Clean up sample
2025-08-28 05:39:48 +00:00
Jacob AlberandGitHub 738866f4fe Aggregate ChatMessages from AgentRunUpdates before forwarding (#515)
The current implementation of AIAgentHostExecutor unwraps every incoming AgentRunResponseUpdate into a separate ChatMessage, amplifying the number of ChatMessages are actually generated, and yielding multiple messages with the same MessageId.

The fix is to aggregate by MesageId, with the expectation that agents do not interleave messages with differing ids, thus every new MessageId indicates a new ChatMessage and never an old one.
2025-08-27 22:32:27 +00:00
8e14dfc522 Python: Improved foundry integration tests (#514)
* improved foundry integration tests

* Update python/packages/foundry/tests/test_foundry_chat_client.py

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>

* Update python/packages/foundry/tests/test_foundry_chat_client.py

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>

---------

Co-authored-by: Giles Odigwe <gilesodigwe@microsoft.com>
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-08-27 21:54:28 +00:00
Jacob AlberandGitHub 80e89a7d87 .NET: Implement browse/clear functionality for state (#513)
* feat: Implement browse/clear functionality for state

* fix: Assertion comments in StateManagerTests
2025-08-27 21:12:21 +00:00
1134350fcf Python: Improved Azure OpenAI integration tests (#489)
* Improved Azure OpenAI integration tests

* Small fixes

* Credential fixes

* small fix

* error fix

---------

Co-authored-by: Giles Odigwe <gilesodigwe@microsoft.com>
2025-08-27 17:41:11 +00:00
westeyandGitHub 938d91d1db .NET: Fixes for ChatClientAgent to improve MEAI static analysis compliance (#502)
* Fixes for ChatClientAgent to improve MEAI static analysis compliance

* Improve instruction handling and fix unit tests.

* Address PR comments.
2025-08-27 15:27:41 +00:00
Eric ZhuandGitHub 379e3b9a00 Python: Tracing for workflows (#480)
* workflow tracing design doc

* add tracing implementation for workflow

* fix bug caused by double wrapping of sub workflow request

* add unit tests for tracing

* add documentation for workflow tracing

* remove unnecessary file

* update aspire command

* fix tests

* proper serialization of subworkflows and add workflow.definition

* add serialization test

* fix subworkflow serialization

* workflow_id --> id

* update workflow sample to address comments

* update naming; use costant

* use NoOpTracer instead of nullcontext

* use span event instead of attribtutes for status

* fix typing

* add workflow.build span

* rename methods for clarity

* ensure all source trace contexts are propagated in fan in
2025-08-27 14:09:16 +09:00
78125f019a .NET: Make WorkflowBuilder more intuititve (#503)
* feat: Make WorkflowBuilder more intutitve

Right now Executorish binding has some unintutitive behaviour. When a user adds an eecutor with an id of an executor that already exists, we silently replace it, if the user provides it inside of add_edge. When a user introduces an executor via an unbound id, the user must bind it via BindExecutor, even though the registration is created implicitly when an edge id added.

The change will remove the invisible update in favor of a "best efforts" check of type and instance equality.

* Expand errors when rebinding to disallowed

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-26 22:42:07 +00:00
1f279b01d2 Add transparency FAQ (#504)
* Add transparency FAQ

* Update TRANSPARENCY_FAQs.md

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

* Update TRANSPARENCY_FAQs.md

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

* Update TRANSPARENCY_FAQs.md

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

* Add documentation links to transparency FAQ

* Update transparency FAQ formatting

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-26 20:44:41 +00:00
Tao ChenandGitHub beb5218838 Python: Clean up and formatting (#487)
* Clean up and formatting

* Fix mypy

* Bug fix
2025-08-26 20:21:32 +00:00
e-straightandGitHub 5df0bd6cb0 Added contributing guidelines (#470)
* Added contributing guidelines

* Address PR feedback: remove TypeScript references and fix .NET build commands
2025-08-26 20:10:55 +00:00
Jacob AlberandGitHub 8544cd9b03 fix: State Updates are not published without CheckpointManager (#501) 2025-08-26 17:41:48 +00:00
Dmytro StrukandGitHub fa88641263 Python: Removed DefaultAzureCredential (#490)
* Removed DefaultAzureCredential

* Renamed ad_credential to credential
2025-08-26 15:33:17 +00:00
Mark WallaceandGitHub 20d861076a Add logging and error handling for team membership
Log team membership data and handle errors gracefully.
2025-08-26 08:15:15 +01:00
Mark WallaceandGitHub 90fb1eb78b Remove members property because it is invalid (#491) 2025-08-26 08:06:18 +01:00
Jacob AlberandGitHub d7c39d72cc .NET: feat: Implement Checkpointing API (#420)
* feat: Implement Checkpointing API

* refactor: Normalzie Namespaces and break out multi-class files

* feat: Support checkpointing in AIAgentHostExecutor

* test: Representation tests

* feat: Add Step-level Tracing and WorkflowEvents

* feat: Add Checkpointing Sample and Smoke Test

* Fixes an issue where StateManager was not properly clearing the incoming queued updates.
* Fixes order of checkpointing and in-step event publication
* Adds import of RunContext state on LoadCheckpoint
* Add re-firing of events for unserviced ExternalRequests on Checkpoint load

* docs: Add documentation to publics

* Also adds documentation to ICheckpointManager which may go public

* refactor: Fix Union Aggregators and add Tests

* fix: Fix issues raised in PR comments and remove dead code
2025-08-25 23:04:38 +00:00
westeyandGitHub 435fd14da5 Add proposed stucture for samples and user documentation (#484) 2025-08-25 17:11:09 +00:00
5284b611c2 .NET: API specification for Foundry SDK alignment (#359)
* API specification for Foundry SDK alignment

* Add descriptions to the samples

* Add descriptions to the samples

* Address some review feedback

* Remove sample

* Remove sample

* Update docs/specs/001-foundry-sdk-alignment.md

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

* Update docs/specs/001-foundry-sdk-alignment.md

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

* Update docs/specs/001-foundry-sdk-alignment.md

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

* Update docs/specs/001-foundry-sdk-alignment.md

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

* Address code review feedback

---------

Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
2025-08-25 17:04:56 +00:00
Mark WallaceandGitHub 5cae83402a Add logic to exclude labelling issues created by the development team (#468) 2025-08-25 16:58:54 +00:00
peterychangandGitHub 7942a52ca1 fix chat_options in kwargs error path in responses client (#483) 2025-08-25 16:52:42 +00:00
32c26c3c25 Adding draft version of workflows design doc. (#271)
* Adding draft version of workflows design doc.

* Adding message flow diagrams and fixing group chat sample.

* Added sequence diagram for fan_in with WhenAny

* Updating workflows design

* clean up

* Clean up request & response contents

* Add more future enhacements

* message_handler -> handler

* remove mention of visual designer

* Minor updates and rename

* Name reformat

---------

Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
Co-authored-by: Tao Chen <taochen@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-08-25 16:10:24 +00:00
Dmytro StrukandGitHub 4b9eea906f Improved exception messages (#479) 2025-08-25 14:46:48 +00:00
Korolev DmitryandGitHub e72cfa1d71 fix thread deserialization (#481) 2025-08-25 12:15:02 +00:00
6ec21859cf .NET: feat: Microsoft.Extensions.AI.Agents.Hosting.A2A package (#390)
* add timeout handling for message send

* prepare a2a proj

* fix it finally

* add a holder for selected protocol

* init types ;

* see discoveredAgentCardJson

* prettify json

* correct usage

* client setup for card

* setp?

* message:send

* init task based communication

* try call it via the agent thread

* okay i got back the message wooooow!

* nit

* fix duplicates

* yea matey!

* fix knights-knaves for A2A-Task-based communication

* fix a2a agents csproj

* AI feedback

* a2a does not support netstandard / netfx

* try fix build + refactor

* bump a2a for net9 only

* rollback System.Net.ServerSentEvents & Microsoft.Bcl.AsyncInterfaces version upgrade; override in-place and retarget to net9;net8 for A2A

* address PR comments x1

* refactor a2a interfaces

* address PR comments x2

* fix cancel usage

* separate project for A2A.AspNetCore

* simplify

* cleanup

* cleanup dependencies

* generate convertor tests / fix namespaces etc

* setup actor client!

* fix build

* backoff conversations

* fix duplicate message streaming

* address PR comments x1

* remove internalsvisibleto

* dont implement agent card query on my own: give it to the user

* nit

* rename and move projects

* fix dotnet-format

* address PR comments x1

* remove unreferenced project

* rollback

* rename

* nit

---------

Co-authored-by: Chris <66376200+crickman@users.noreply.github.com>
2025-08-25 11:14:55 +00:00
westeyandGitHub a40eda48f1 .NET: Add Approval capabilities to FunctionInvokingChatClient (#457)
* Add Approval capabilities to FunctionInvokingChatClient

* Address PR comments.

* Address PR comments.

* Address PR comments.

* Address PR feedback, add sample, and fix bug plus unit test.

* Address PR comments
2025-08-25 10:41:10 +00:00
b0b3fd151c Python: Adding support for nested workflows (#460)
* Adding design documents and data flow descriptions for sub-workflows

* Updating docs.

* Sub-workflow implementation #1. Stuck because of singleton RequestInfoExecutor, going to make a change to remove that restrivtion.

* Removed the singleton restriction on RequestInfoExecutor so enable sub-workflows.

* Scenarios seem to be working.

* Sample improved.

* going to have intern add generic response wrappers.

* Wrapped responses working.

* Non-hardcoded routing is working.

* Sample showing external approved and not approved.

* Cleaning up.

* Updating some samples and user guide.

* Removing old design doc.

* Cleaning up.

* Adding python-package-setup.md back.

* Update python/packages/workflow/agent_framework_workflow/_executor.py

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

* Update python/packages/workflow/agent_framework_workflow/_validation.py

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

* Removing prints.

* Fixing lint and type issues.

* Fixing lint and type issues.

* Update python/packages/workflow/agent_framework_workflow/_executor.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Adding type hints to intercepts decorator.

* Removing unused files.

* Fixing issue with sample 5 groupchat with hil.

* Removing redundent samples.

* Updates to ensure no conflicting request interceptors and to support a subflow with multiple requests in a single super step.

* Fixing pypi errors.

* clean up samples

* update samples to make it more clear

* warning for unhandled request info from sub workflow

* add logger info

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
dotnet-0.0.1-nightly-250825.1 dotnet-0.0.1-nightly-250824.1 dotnet-0.0.1-nightly-250823.1
2025-08-23 03:21:37 +00:00
Jacob AlberandGitHub b26d9c95fe feat: Expose wrapped Request/Response API (#471)
* Allows creation of ExternalRequest objects directly to control the requestId
* Allows receiving ExternalResponse objects rather than unwrapped Data
* Normalizing naming
2025-08-22 22:07:28 +00:00
Eric ZhuandGitHub 6e9d35830f Python: Move Workflow, Edge, EdgeGroup and Executor to AFBaseModel (#472)
* Refactor workflow to introduce EdgeRunner for edge execution.

* Fix edge cases

* Convert Workflow, Edge, EdgeGroup, and Executor into AFBaseModel to support object model serialization

* format

* remove accidental file

* fix typing

* Add type information to EdgeGroup and Executor subclasses

* fix format

* Add condition_name field to Edge

* Add new fields

* remove Optional

* Update
2025-08-22 22:02:34 +00:00
Jacob AlberandGitHub 88c51013c6 .NET: feat: Host Workflow as AIAgent (#469)
* feat: Host Workflow as AIAgent

* Also changes AIAgent-as-Executor to use streaming runs and streaming
  events
* Also enables default setting for yielding events

* fix: Infinite loop in GenerateNewId()

* docs: Spelling

* test: Add Workflow-as-Agent sample and test
2025-08-22 22:01:30 +00:00
westeyandGitHub 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
Korolev DmitryandGitHub 25291de8cb .NET: chore: support retries on Cosmos storage creation (#402)
* support retries

* tests + registration options

* fix ordering ..

* HK + update packages

* fix paths

* Update dotnet/tests/CosmosDB.IntegrationTests/Microsoft.Extensions.AI.Agents.Runtime.Storage.CosmosDB.Tests/CosmosTestFixture.cs

* re create project and fix some pk usage

* fix all tests

* try workflow?

* wip 1

* fix definition

* try with cosmos_use_emulator env?

* try ignore SSL errors?

* other cert verifications

* hardcode to 8081?

* proper valuation of ENV

* logging

* ensure db exsists for CI

* bump

* cleanup

* fix usage

* nit comment

* try only release for stability?

* try skip some flaky tests

* merge fixes + rollback container

* reimplement with iasyncdisposable pattern

* remove example doc struct
dotnet-0.0.1-nightly-250822.1
2025-08-21 18:37:12 +00:00
Eric ZhuandGitHub 1116916737 Fix URLs in in README (#467) 2025-08-21 17:18:02 +00:00
Roger BarretoandGitHub 9f934d8b55 Fix AzureOpenAI version (#466) 2025-08-21 16:37:59 +00:00
Eric ZhuandGitHub 65836ab125 Python: Use generic for WorkflowContext and use its type parameters to indicate executor's output types (#444)
* Use generic for WorkflowContext and use its type parameters to indicate executor's output types

* Update

* Fix type errors and add in-line comments

* fix test

* type

* Fix executor type issues
dotnet-0.0.1-nightly-250821.1
2025-08-21 02:40:43 +00:00
123a0bca10 Python: Improved main package test coverage (#445)
* Fixed failing foundry tests and improved main coverage

* Add back mistakenly deleted code

* Update python/packages/main/tests/openai/test_openai_assistants_client.py

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

* Update python/packages/main/tests/openai/test_openai_assistants_client.py

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>

* Small fix

---------

Co-authored-by: Giles Odigwe <gilesodigwe@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-08-20 20:18:48 +00:00
peterychangandGitHub feb4e908ae Python: Request cancellation sample (#459)
* request cancellation via tasks

* fix missing kwargs
2025-08-20 19:56:26 +00:00
011edfe420 .NET: Bring OpenAIResponsesChatClient temporarily (#449)
* copy OpenAIResponsesChatClient from meai temporarly

* Update dotnet/src/Microsoft.Extensions.AI.Agents.OpenAI/NewOpenAIResponsesChatClient.cs

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

* add AsNewIChatClient extension method

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-20 15:12:12 +00:00
0982aa9d6d .NET: Fix bugbash issues (#448)
* Fix bugbash issues

* Update dotnet/samples/GettingStarted/Providers/AIAgent_With_OpenAIResponseClient.cs

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-20 12:22:11 +00:00
Mark WallaceandGitHub 4277aa2576 Decision on where Foundry SDK extensions should live (#442)
* Decision on where Foundry SDK extensions should live

* Address code review feedback
2025-08-20 11:46:19 +00:00