Commit Graph
108 Commits
Author SHA1 Message Date
Dmytro StrukandGitHub a72245287f Python: Added fixes and more examples for OpenAI and Azure chat client agents (#232)
* Added non-streaming and streaming examples

* Updated resource management

* Added examples with thread management

* Added function tools examples

* Small rename

* Added code interpreter example

* Updated example

* Addressed PR feedback

* Added more OpenAI and Azure chat completion examples

* File renaming

* Small fix in tests

* Small revert

* More renaming

* Small fix
2025-07-24 15:31:05 +00:00
Dmytro StrukandGitHub 14efb626ab Python: Added fixes and more examples for Foundry agent (#217)
* Added non-streaming and streaming examples

* Updated resource management

* Added examples with thread management

* Added function tools examples

* Small rename

* Added code interpreter example

* Updated example

* Addressed PR feedback

* Addressed PR feedback
2025-07-24 14:47:45 +00:00
Roger BarretoandGitHub 62be887947 .Net: Add missing providers to tool samples (#211)
* Add missing providers to tool samples

* Add Options ctor and simplify samples a bit

* Remove basic
2025-07-24 09:31:24 +00:00
Eduard van ValkenburgandGitHub 517955ce66 updated builds and release pipeline setup (without pypi publish) (#219)
* updated builds and release pipeline setup (without pypi publish)

* add label prefix action

* updated uv versions

* final uv updates

* moved uv version semver into variable
2025-07-24 07:15:00 +00:00
Reuben BondandGitHub 5e9b24e532 Clean up usage of JsonSerializerContext (#229)
* Clean up usage of JsonSerializerContext

* review feedback
2025-07-23 19:34:54 +00:00
Reuben BondandGitHub e6aeb9a5db Fix and simplify build (#218) 2025-07-23 17:45:50 +00:00
Stephen ToubandGitHub 5472d6e996 Overhaul orchestration library with new approach (#199) 2025-07-23 16:29:37 +00:00
Eduard van ValkenburgandGitHub 27f7af2160 Python: moved prepare tools into class (#215)
* moved prepare tools into class

* moved test

* changed tool handling

* fix test

* second fix
2025-07-22 21:37:18 +00:00
Eduard van ValkenburgandGitHub 84e5ee97b9 fixed name in labeler (#216) 2025-07-22 22:07:13 +02:00
Reuben BondandGitHub 41d441420e Initial draft of actor runtime abstractions (#197)
* Initial draft of actor runtime abstractions
2025-07-22 16:05:58 -04:00
Eduard van ValkenburgandGitHub 8f2d3da80d add merge gatekeeper (#214)
* add merge gatekeeper

* updated labeler
2025-07-22 21:24:43 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
b83581b1a6 Bump danielpalme/ReportGenerator-GitHub-Action from 5.4.8 to 5.4.9 (#205)
Bumps [danielpalme/ReportGenerator-GitHub-Action](https://github.com/danielpalme/reportgenerator-github-action) from 5.4.8 to 5.4.9.
- [Release notes](https://github.com/danielpalme/reportgenerator-github-action/releases)
- [Commits](https://github.com/danielpalme/reportgenerator-github-action/compare/5.4.8...5.4.9)

---
updated-dependencies:
- dependency-name: danielpalme/ReportGenerator-GitHub-Action
  dependency-version: 5.4.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-22 19:07:24 +00:00
Eduard van ValkenburgandGitHub 6508f48efb Add Labeler.yaml to Actions (#213)
* move all tests under tests and initial work on int tests

* added updated tests setup and merge tests

* without failing step

* fixed upload

* updated file names for coverage

* reenable surface tests

* removed package matrix

* simplified variables

* correct path

* removed mistake

* fix mistake in path

* fix path

* windows specific env set

* updated merge tests

* slight update in marker

* added run integration tests settings

* updated setup, moved foundry int tests and updated merge test

* add labeler
2025-07-22 21:04:21 +02:00
Eduard van ValkenburgandGitHub 5c992eb7ae Python: move all tests under tests and initial work on int tests (#206)
* move all tests under tests and initial work on int tests

* added updated tests setup and merge tests

* without failing step

* fixed upload

* updated file names for coverage

* reenable surface tests

* removed package matrix

* simplified variables

* correct path

* removed mistake

* fix mistake in path

* fix path

* windows specific env set

* updated merge tests

* slight update in marker

* added run integration tests settings

* updated setup, moved foundry int tests and updated merge test
2025-07-22 15:26:00 +00:00
Dmytro StrukandGitHub f89c0be0ea Python: Added integration tests for FoundryChatClient (#207)
* Initial version of tests

* Updated the tests
2025-07-22 14:11:54 +00:00
Dmytro StrukandGitHub 160c846b39 Python: Added more examples (#208)
* Small cleanup

* Added Azure and Foundry chat client samples

* Added Azure chat client agent example
2025-07-22 14:07:12 +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
westeyandGitHub a8fadbc49c Add a minimum console demo app (#198)
* Add a minimum console demo app

* Remove hardcoded values from sample.

* Make console project .net 9.0 only.

* Move minimum console demo to demo folder.

* Fix framework issue with demo project.

* Undo unintended commit.

* Address PR comments

* Fix build issue.

* Address PR Comments

* Rename Agent to AIAgent in new console app.
2025-07-21 09: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
Dmytro StrukandGitHub ccd7a44ec7 Python: Implemented FoundryChatClient (#193)
* Initial version of FoundryChatClient

* Updates to the tool call streaming wrapper

* Small fixes

* Small updates and addressed PR feedback

* Handle automatic client creation

* Small improvement

* Added credential parameter

* Small improvements

* Made FoundryChatClient disposable

* Small fixes

* Added unit tests

* Refactored samples

* Small improvements

* Small fix

* Addressed PR feedback

* Small fixes

* Small updates

* Small fix

* Addressed PR feedback
2025-07-18 20:10:14 +00:00
Eduard van ValkenburgandGitHub 9287572b0d Python: improved loading (#202)
* improved loading

* updated openai folder imports

* fixed import
2025-07-18 19:17:30 +00:00
westeyandGitHub fc999e2be8 Rename Agent to AIAgent and instroduce DisplayName (#201) 2025-07-18 15:43:38 +00:00
6e57489a44 .Net: Add OpenTelemetry Support and Samples (#182)
* Adding sample and implementation similar to MEAI approach

* Add Telemetry UnitTests

* Fix Async suffix

* Add ADR with the proposal

* Address merge changes

* Fixing const visibility + coverage

* Increase test coverage, add metrics collection code paths

* Fix warnings

* WIp

* Convention adeherence

* Add gen-ai.system logic + UT

* Add convetion reference

* Address PR comments

* Addressing PR comments, Agent name optional

* Remove constant

* Update dotnet/src/Microsoft.Extensions.AI.Agents/ChatCompletion/ChatClientAgent.cs

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

* GetLoggingName

---------

Co-authored-by: westey <164392973+westey-m@users.noreply.github.com>
2025-07-16 17:00:24 +00:00
westeyandGitHub dd32a6d399 Add extension methods to get an AF agent from a Foundry Client (#191)
* Add helpers to go from foundry client to agent more easily.

* Fix xml docs.
2025-07-16 14:45:31 +00:00
westeyandGitHub 95a3264c8b Add ChatClientAgent constructor overload (#188)
* Add ChatClientAgent constructor overload

* Add unit tests for new constructor

* Up code coverage with extra tests

* Address PR comments.

* Address PR comment

* Add additional test to increase code coverage.
2025-07-16 13:36:17 +00:00
ChrisandGitHub e6d611abe4 Display thread type name in error message (#192) 2025-07-15 21:11:31 +00:00
f0dc661c3e Python: Azure chat client (#185)
* updated openai, fcc works, with sample

* reduced files in openai

* Add azure chat client

* fix tests

* Update python/packages/main/tests/unit/test_openai_chat_completion_base.py

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

* Update python/packages/azure/agent_framework/azure/__init__.py

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

* Update python/packages/azure/agent_framework/azure/_azure_openai_settings.py

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

* PR comments

* fix bad merge

* disable tests for now

* actually disable tests for azure

* fix tests, align test files with merge changes

* update code for new project structure

* PR comments

* add streaming integration tests. Fix flakiness

---------

Co-authored-by: eavanvalkenburg <github@vanvalkenburg.eu>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-15 18:38:09 +00:00
Dmytro StrukandGitHub fa96f74ee9 Removed Persistent SDK IChatClient implementation (#190) 2025-07-15 17:37:42 +00:00
Eduard van ValkenburgandGitHub 2e6f6a4008 small update in init (#189) 2025-07-15 15:09:32 +00:00
Mark WallaceandGitHub c30d726914 Disable some experimental features for dependabot (#170) 2025-07-15 14:08:32 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
7f08c0b8ad Bump danielpalme/ReportGenerator-GitHub-Action from 5.4.4 to 5.4.8 (#168)
Bumps [danielpalme/ReportGenerator-GitHub-Action](https://github.com/danielpalme/reportgenerator-github-action) from 5.4.4 to 5.4.8.
- [Release notes](https://github.com/danielpalme/reportgenerator-github-action/releases)
- [Commits](https://github.com/danielpalme/reportgenerator-github-action/compare/5.4.4...5.4.8)

---
updated-dependencies:
- dependency-name: danielpalme/ReportGenerator-GitHub-Action
  dependency-version: 5.4.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 14:08:10 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
4ab1f3aa9c Bump actions/github-script from 6 to 7 (#167)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 7.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 14:07:44 +00:00
Eduard van ValkenburgandGitHub 62917ee5e5 Python: simple Agent sample (#180)
* tweaks to agents and sample

* updated clients and agents

* single line run and print

* improved tool handling

* added note on setting max iterations

* fixed streaming param name

* updated tools test

* made kwargs alphabetical

* added params to run methods

* tweak to ensure right overload
2025-07-15 14:01:21 +00:00
Stephen ToubandGitHub 59bf7343af Update {Azure.AI.}OpenAI package versions (#187) 2025-07-14 18:04:52 -04:00
westeyandGitHub 55045b5c1e Basic agent invocation sample (#175)
* Basic agent invocation sample

* Simplify sample further.

* Add additional comment.

* Address code review comments.

* Suppress CA2000 and remove using from most basic sample, since the IChatClient instances involved do not do any disposal.
2025-07-14 15:15:46 +00:00
Eduard van ValkenburgandGitHub 407ed6de70 Python: follow on work on OpenAI (#169)
* updated openai, fcc works, with sample

* reduced files in openai
2025-07-12 05:15:51 +00: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
Dmytro StrukandGitHub 94e00bd49a Python: Added ChatClientAgentThread and ChatClientAgent implementations (#150)
* Added ChatClientAgentThread

* Initial version of ChatClientAgent

* Completed ChatClientAgent

* Small fixes and unit tests

* Fixes based on pre-commit

* Small fixes

* Small renaming

* Small improvement

* Small fixes

* Addressed PR feedback

* Small fix

* Added method for AgentRunResponse from streaming conversion

* Addressed PR feedback

* Addressed PR feedback

* Addressed PR feedback

* Small fix

* More fixes
2025-07-11 18:09:09 +00:00
Dmytro StrukandGitHub df84675c0f Python: Added AgentRunResponse and AgentRunResponseUpdate types (#157)
* Removed instructions property from Agent

* Added AgentRunResponse and AgentRunResponseUpdate types

* Added unit tests for agent response types

* Small fix

* Addressed PR feedback

* Small improvement

* Small fix
2025-07-11 15:13:06 +00: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
eca0eb9cd0 .Net: Introduce Dependency Injection Samples (#165)
* DI WIP

* Update dependency injection examples and Agent Creation update

* Rollback override for GettingStarted as Azure.AI.OpenAI package currentl does not support OpenAI 2.2.0 GA version

* Dropping ct

* Update dotnet/samples/GettingStarted/AgentSample.cs

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-11 13:27:07 +00: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
westeyandGitHub 33d09d263b Set CopilotStudio integration tests to manual run only. (#166) 2025-07-11 10:58:37 +00:00
Mark WallaceandGitHub 4cafe1c985 Add CodeQL and Dependabot (#159)
* Add CodeQL and Dependabot

* Address code review feedback
2025-07-11 10:34:06 +00:00
westeyandGitHub b708e2507d Add PoC CopilotStudio agent (#84)
* Add project and skeleton files.

* Add CopilotStudioAgent implementation

* Add CopilotStudio integration tests

* Fix typos and PR feedback.

* Fix .net framework build errors.

* Address PR comments

* Remove temp test.

* Add rawresponse for streaming updates and more comments.

* Add TODO to review streaming updates

* Address PR comments and fix some issues with streaming messages.

* Map additional properties to agent reponses

* Update CopilotStudio integration tests to match new approach.

* Update copilot studio namespaces/project names to match new naming

* Add todo's for AIContent types.

* Remove files from PR.

* Fix up sln file.

* Update .gitignore.

* Remove duplicate package version items.
2025-07-11 09:20:40 +00:00
Mark WallaceandGitHub b85c17c935 Run integration tests (#161) 2025-07-11 08:30:48 +00:00
b9122eccea ADR for Agent Tools (#103)
* Added ADR templates and README

* First version

* Added remaining sections and commonalities across different providers

* Small formatting update

* Small formatting fix

* Updates for code interpreter tool

* Small update

---------

Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
2025-07-11 08:12:09 +00:00
e70401e658 Python: OpenAI Connector (#144)
* Initial checkin of openai connector

* add tests

* extensions work

* chat completion client implicitly implementing ChatClient

* remove AIServiceClientBase

* remove PromptExecutionSettings

* consolidate chat completion types

* add integration test

* fix pre-commit check errors

* remove usage statistics from OpenAIHandler

* Update python/extensions/agent-framework-openai/agent_framework/openai/exceptions.py

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

* PR comments

* fix merge

* fix test import

* remove tests for now because they just fail

* Remove fixed TODO

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
2025-07-11 07:34:25 +00:00
fef4fd2c18 .Net: Update Code Interpreter Sample as a Step. (#148)
* Updating code interpreter samples

* Small adjustments to ensure it works as expected

* Update dotnet/samples/GettingStarted/Steps/Step03_ChatClientAgent_UsingCodeInterpreterTools.cs

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

* Address xmldoc

* Addressing PR coment, external implementaions + ChatClients update, removing RawRepresentationFactory requirement

* Address warnings

* Update Fix warnings

* Proposed changes for the OpenAIAssistantChatClient

* Address PR comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com>
2025-07-10 15:26:41 +00:00