Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
283 commits
Select commit Hold shift + click to select a range
32bd884
Python: Add concrete AGUIChatClient (#2072)
moonbox3 Nov 11, 2025
04b6625
.NET: Move catalog samples to the HostedAgents folder (#2090)
SergeyMenshykh Nov 11, 2025
cf7c9fc
Bump OpenTelemetry.Instrumentation.Runtime from 1.12.0 to 1.13.0 (#1856)
dependabot[bot] Nov 11, 2025
69dd532
.NET: Bump Microsoft.SemanticKernel.Agents.Abstractions from 1.66.0 t…
dependabot[bot] Nov 11, 2025
a39e656
.NET: fix: WorkflowAsAgent Sample (#1787)
lokitoth Nov 11, 2025
ad2ebfc
Updated (#2076)
crickman Nov 11, 2025
24298cd
Bump vite in /python/samples/demos/chatkit-integration/frontend (#1918)
dependabot[bot] Nov 11, 2025
b565b25
Bump Roslynator.Analyzers from 4.14.0 to 4.14.1 (#1857)
dependabot[bot] Nov 11, 2025
5fd2a0c
Bump MishaKav/pytest-coverage-comment from 1.1.57 to 1.1.59 (#2034)
dependabot[bot] Nov 11, 2025
cd9073a
Python: Handle agent user input request in AgentExecutor (#2022)
TaoChenOSU Nov 11, 2025
1d7292f
Python: OpenAI Responses Image Generation Stream Support, Sample and …
giles17 Nov 11, 2025
d59bd20
Python: Fix MCP Tool Parameter Descriptions Not Propagated to LLMs (#…
giles17 Nov 11, 2025
180f823
.NET: Allow extending agent run options via additional properties (#1…
kzu Nov 11, 2025
8d8c94b
Python: Use the last entry in the task history to avoid empty respons…
markwallace-microsoft Nov 11, 2025
863a632
Updated package versions (#2104)
dmytrostruk Nov 11, 2025
caf3c4b
.NET: Move deep research sample (#2094)
SergeyMenshykh Nov 12, 2025
c8bb3d1
Update .NET packages to 10.0.0 (#2092)
stephentoub Nov 12, 2025
ef60f38
Python: fixed image handling in anthropic and added convenience metho…
eavanvalkenburg Nov 12, 2025
c1830c2
.NET: Add hosting capabilities to hosted agents (#2124)
SergeyMenshykh Nov 12, 2025
406a856
.NET: Add AgentWithHostedMCP sample (#2129)
SergeyMenshykh Nov 12, 2025
4bffe1e
update openai samples to use agents (#2012)
giles17 Nov 12, 2025
edb367a
Python: Azure AI client based on new azure-ai-projects package (#1910)
dmytrostruk Nov 12, 2025
4b0f724
.NET: Expose more agent metadata through DevUI discovery endpoint (#2…
ReubenBond Nov 12, 2025
e8243b7
Updated package versions (#2154)
dmytrostruk Nov 12, 2025
348ac76
Add samples for web search and image gen tools (#2155)
TaoChenOSU Nov 12, 2025
5537b1d
Python: Fix ag-ui regressions (#2114)
moonbox3 Nov 13, 2025
67a8147
.NET: Python: Azure Functions feature branch (#1916)
dmytrostruk Nov 13, 2025
a4e82f4
Updated package version (#2164)
dmytrostruk Nov 13, 2025
665aacf
Fix chat middleware: add streaming support, terminate flag, and check…
t-anjan Nov 13, 2025
3c874d0
Python: Updated package versions (#2165)
dmytrostruk Nov 13, 2025
e92dcb3
Python: fix tool call id mismatch in ag-ui (#2166)
moonbox3 Nov 13, 2025
7e5de8f
Python: Fix HIL regression (#2167)
victordibia Nov 13, 2025
f273ca7
Fix InMemoryChatMessageStore serialization bug. (#2185)
westey-m Nov 13, 2025
de2abdf
Updated the Azure Functions samples to use the latest stable Azure Fu…
kshyju Nov 13, 2025
6d890e4
suppress the MEAI001 and OPENAI001 errors that appear when building t…
SergeyMenshykh Nov 13, 2025
21dceca
Python: Enhance Azure AI Search Citations with Complete URL Informati…
giles17 Nov 13, 2025
f04f5ef
Python: Added Samples for Bing Grounding and Custom Search (#2200)
giles17 Nov 13, 2025
15d0bda
Python: Added an Azure OpenAI Responses API Hosted MCP sample (#2108)
guygregory Nov 13, 2025
a75590e
Python: ChatKit sample fixes (#2174)
moonbox3 Nov 13, 2025
b19860b
.NET: Implement Purview middleware in dotnet (#1949)
eoindoherty1 Nov 14, 2025
e516322
Python: Fix Readme and samples for AzureFunctions (#2197)
larohra Nov 14, 2025
8458b4a
Agent name as required for AzureAIClient (#2198)
dmytrostruk Nov 14, 2025
aba3076
Updated package versions (#2208)
dmytrostruk Nov 14, 2025
a2a9922
Add hosted agent samples (#2205)
TaoChenOSU Nov 14, 2025
36c1217
Python: Fix: Prevent duplicate MCP tools and prompts (#1876) (#1890)
ishanrajsingh Nov 14, 2025
37e7c84
Use uv build (#2161)
moonbox3 Nov 14, 2025
8d7e01e
fix auth issue + extra tags (#2218)
SergeyMenshykh Nov 14, 2025
9e69e66
Python: pre-commit improvements (#2222)
eavanvalkenburg Nov 14, 2025
8b37327
Python: Added Fabric and Browser Automation Samples (#2207)
giles17 Nov 14, 2025
c1786b3
Python: Added Bing Custom Search Sample using HostedWebSearchTool (#2…
giles17 Nov 14, 2025
939c2d6
.NET: Friendly error message when durable agent isn't registered (#2214)
cgillum Nov 14, 2025
c7e7020
Python: Updated package versions (#2238)
dmytrostruk Nov 15, 2025
580a0c4
Python: Update hosted agent samples with agent manifests (#2240)
TaoChenOSU Nov 15, 2025
e706f07
.NET: Add Microsoft.Agents.AI.AzureAI (Azure.AI.Project 1.2) Support …
rogerbarreto Nov 15, 2025
45dba6b
Version bump prep for release 251114.1 (#2239)
rogerbarreto Nov 15, 2025
fcc3f1b
Python: fix anthropic code interpreter tool repr (#2244)
eavanvalkenburg Nov 17, 2025
e32f93d
Bump Azure.AI.Projects from 1.2.0-beta.1 to 1.2.0-beta.3 (#2252)
dependabot[bot] Nov 17, 2025
57ca139
update to dependabot config for python and removed no longer supporte…
eavanvalkenburg Nov 17, 2025
e7ac655
Add missing README.md (#2278)
rogerbarreto Nov 17, 2025
1325979
Bump CommunityToolkit.Aspire.OllamaSharp from 13.0.0-beta.435 to 13.0…
dependabot[bot] Nov 17, 2025
c361ad8
Python: Add checkpoint save and restore hooks to executor (#2097)
TaoChenOSU Nov 17, 2025
ea06677
Python: Updated documentation for Azure AI (#2280)
dmytrostruk Nov 17, 2025
e413c5a
.NET: Add M365 Agent SDK Hosting sample (#2221)
westey-m Nov 17, 2025
77247a3
.NET: Change thread_id from entity ID to GUID (#2260)
cgillum Nov 17, 2025
d503717
Clarify exception handling in ConversationId property (#1457)
kzu Nov 17, 2025
1f0ffc1
Python: Fix ag-ui state handling issues (#2289)
moonbox3 Nov 18, 2025
f6cd329
.NET: Post bugbash updates (#2279)
rogerbarreto Nov 18, 2025
03b74bf
Bump js-yaml from 4.1.0 to 4.1.1 in /python/packages/devui/frontend (…
dependabot[bot] Nov 18, 2025
1da9107
.NET: Improve `AIAgent` and `Workflow` registrations for DevUI integr…
DeagleGross Nov 18, 2025
8a72601
Python: Anthropic foundry (#2302)
eavanvalkenburg Nov 18, 2025
e2d2299
Python: Improve WorkflowBuilder doc strings with code samples (#1960)
moonbox3 Nov 18, 2025
293abf5
Python: fix for Incomplete URL substring sanitization (#2274)
eavanvalkenburg Nov 18, 2025
037349f
Python: fix Langfuse observability to capture ChatAgent system instru…
claude89757 Nov 19, 2025
f83c39f
Python: fix: resolve string annotations in FunctionExecutor (#2308)
madebygps Nov 19, 2025
d5165e2
Python: Added Foundry Sample for A2A + SharePoint Samples (#2313)
giles17 Nov 19, 2025
34a00f1
Python: fix: @ai_function doesn't properly handle 'self' param (#2266)
eavanvalkenburg Nov 19, 2025
4e339f8
added test to validate status set (#2265)
eavanvalkenburg Nov 19, 2025
84e2c0c
Python: Added M365 Agent SDK Hosting sample (#2292)
dmytrostruk Nov 19, 2025
d2d0f46
Python: fix all to include the latest and made that single source of …
eavanvalkenburg Nov 19, 2025
92df9e1
Python: Introducing support for declarative yaml spec (#2002)
eavanvalkenburg Nov 19, 2025
b3e96b8
Python: Use AI Foundry evaluators for self-reflection (#2250)
YusakuNo1 Nov 19, 2025
79bb870
Python: Clean up imports (#2318)
brandonmcconnell Nov 19, 2025
4fcc5a4
Python: propagate `as_tool()` kwargs. Add sample for runtime context …
moonbox3 Nov 20, 2025
99689ad
Python: clean up exception (#2319)
moonbox3 Nov 20, 2025
d714b91
Python: Fix tool execution bleed-over in aiohttp/Bot Framework scenar…
moonbox3 Nov 20, 2025
c7a8c12
Python: Move red teaming files to its own folder (#2333)
YusakuNo1 Nov 20, 2025
61dbacd
Improve exception handling (#2337)
moonbox3 Nov 20, 2025
039e49f
Python: small fix for logging in declarative (#2341)
eavanvalkenburg Nov 20, 2025
6ae32f0
[BREAKING] Python: Schema changes for azure functions package (#2151)
gavin-aguiar Nov 20, 2025
f99dca0
fix(observability): handle datetime serialization in tool results (#2…
hayato-kishikawa Nov 20, 2025
ce738cc
.NET: Add sample to show how to do RAG using Foundry's built-in servi…
westey-m Nov 20, 2025
b575b63
Python: Fix for Azure AI client (#2358)
dmytrostruk Nov 20, 2025
e5b63a1
Python: Move evaluation folders to under evaluations (#2355)
YusakuNo1 Nov 20, 2025
02af2bc
Python: Remove duplicated workflow observability sample (#2357)
TaoChenOSU Nov 20, 2025
ab3d898
.NET: Add unit tests for RetrieveConversationMessageExecutor executor…
peibekwe Nov 20, 2025
04e711c
Python: Feature/azure ai search agentic rag (search as separate packa…
farzad528 Nov 20, 2025
5353b9a
Update Workflow Viz sample comments (#2361)
TaoChenOSU Nov 20, 2025
cf13e35
Updated package versions (#2360)
dmytrostruk Nov 21, 2025
5bdf8a7
Sample to show passing in JSON schema for structured outputs (#2362)
moonbox3 Nov 21, 2025
0781d4b
Python: Add Handoff + tool approval + checkpointing sample (#2346)
moonbox3 Nov 21, 2025
a7a0660
removed additional properties from messages sent to OAI responses and…
eavanvalkenburg Nov 21, 2025
d18ce24
Python: feat(mcp): add full _meta field support for CallToolResult ob…
bostdiek Nov 21, 2025
1bf926b
Python: Fix the example of multi-tier handoff workflow with specialis…
tsuting Nov 21, 2025
4c52903
Python: Use Foundry evaluators to evaluate agent workflows (#2322)
salma-elshafey Nov 21, 2025
7148718
Redacting log data unless opting out. (#2372)
westey-m Nov 21, 2025
02b8ac2
.NET: sanitize redirectUrl for logs (#2356)
DeagleGross Nov 21, 2025
b7a19b0
Added unit test for RetrieveConversationMessagesExecutor (#2388)
peibekwe Nov 21, 2025
ee8936d
Python: Integration tests for Azure AI client and fixes in samples (#…
dmytrostruk Nov 22, 2025
dc2b109
.NET: Upgrade to .NET 10 (#2128)
stephentoub Nov 22, 2025
f0f1051
Python: make tool call view optional in DevUI + other link fixes (#2243)
victordibia Nov 24, 2025
f9a94ce
Bug fix for Redis TypeError (#2411)
moonbox3 Nov 24, 2025
ec08ee5
a2a sample update (#2391)
giles17 Nov 24, 2025
b66efcc
remove version override for v10 packages (#2393)
stephentoub Nov 24, 2025
a116eda
Update to latest MEAI 10.0.1 and OpenAI 2.7.0 (#2392)
stephentoub Nov 24, 2025
c692821
Address IT failure for V2 (#2421)
rogerbarreto Nov 24, 2025
db424d5
Update to latest dotnet devcontainer and add docker in docker. (#2426)
westey-m Nov 24, 2025
9f43108
Python: renamed ai search and cleanup of samples and unified import l…
eavanvalkenburg Nov 24, 2025
bcbf1b3
Python: Preserve MCP array items schema in Pydantic field generation …
giles17 Nov 24, 2025
a610a47
.NET: Add support for background responses to A2A agent (#2381)
SergeyMenshykh Nov 24, 2025
c78edda
fix: always include output in function call result message (#2414)
Hedrekao Nov 25, 2025
e303cc9
Python: AzureAI OpenAPI + Memory Search Samples (#2390)
giles17 Nov 25, 2025
2a4802e
Python: Fix runtime response format for responses client (#2440)
moonbox3 Nov 25, 2025
1b4103d
Python: fix for logging setup (#2371)
eavanvalkenburg Nov 25, 2025
27b3a51
[BREAKING] Python: Adjust magentic event types raised. No need for cu…
moonbox3 Nov 25, 2025
a89c15d
.NET: Change type of props representing continuation token (#2430)
SergeyMenshykh Nov 25, 2025
112410e
.NET: [BREAKING] Add GetNewThread overload for taking a ChatMessageSt…
westey-m Nov 25, 2025
1dde579
.NET: Add Anthropic Agent Package (#2359)
rogerbarreto Nov 25, 2025
b6c3b8d
[BREAKING] Remove NotifyThreadOfNewMessagesAsync AIAgent helper (#2450)
westey-m Nov 25, 2025
7a4f687
Use Random.GetString in hosting IdGenerator (#2427)
stephentoub Nov 25, 2025
d302bff
Updated package versions (#2455)
dmytrostruk Nov 25, 2025
b8260ae
Python: [BREAKING] Removed default "store" value (#2443)
dmytrostruk Nov 25, 2025
b1c210c
Python: Added MCP tool support for azure functions package. (#2385)
gavin-aguiar Nov 25, 2025
0c1d12f
Suppressed CS8002 for Anthropic package (#2461)
dmytrostruk Nov 25, 2025
5d8be58
Python: Added support for application endpoints in Azure AI client (#…
dmytrostruk Nov 25, 2025
ed53ba1
Temporarily suppress CS8002 error (#2462)
dmytrostruk Nov 26, 2025
907d79a
[BREAKING] Python: Standardize orchestration outputs as list of ChatM…
moonbox3 Nov 26, 2025
a57b37d
.NET: Add Cosmos DB implementations for ChatMessageStore and Checkpoi…
TheovanKraay Nov 26, 2025
0723f1d
.NET: Foundry V2 - Update Sample and Docs for clear distinction betwe…
rogerbarreto Nov 26, 2025
486b781
Bump danielpalme/ReportGenerator-GitHub-Action from 5.4.18 to 5.5.0 (…
dependabot[bot] Nov 26, 2025
17b4dfa
.NET: Add orchestration ID to durable agent entity state (#2137)
philliphoff Nov 26, 2025
0f2c5e6
Add office hours call to action to readme.me (#2480)
westey-m Nov 26, 2025
306c81a
Python: [Breaking] Python: Respond with `AgentRunResponse` with seria…
larohra Nov 26, 2025
6c62431
Python: docs: Update Python orchestration documentation (#2087)
hayato-kishikawa Nov 27, 2025
8cf8b0f
Python: Refactor ag-ui to clean up some patterns (#2363)
moonbox3 Nov 27, 2025
66a399e
Update Azure.AI.OpenAI to latest release (#2501)
stephentoub Nov 27, 2025
257e717
Bump Anthropic from 10.2.1 to 10.4.0 (#2492)
dependabot[bot] Nov 27, 2025
e769256
.NET: Require thread for background responses (#2498)
SergeyMenshykh Nov 27, 2025
67de7bc
.NET: Prevent streamed updates loss when resuming streaming (#2516)
SergeyMenshykh Nov 28, 2025
a3909b8
Change sample to use official Anthropic C# package (#2471)
stephentoub Nov 28, 2025
b261089
.NET: Declarative Agents (#2476)
markwallace-microsoft Dec 1, 2025
139c292
.NET: Add Google ChatClientAgent provider sample using with Gemini mo…
rogerbarreto Dec 1, 2025
b457d3c
Bump Aspire.Hosting.Azure.CognitiveServices from 13.0.0 to 13.0.1 (#2…
dependabot[bot] Dec 1, 2025
bf326e7
Bump actions/setup-dotnet from 5.0.0 to 5.0.1 (#2530)
dependabot[bot] Dec 1, 2025
8ae33d3
Address gap IServiceProvider options (#2551)
rogerbarreto Dec 1, 2025
e3b700a
Python: Add sample to show handoff as agent with HITL (#2534)
moonbox3 Dec 2, 2025
0d5d10d
Python: Emit ExecutorFailedEvent before WorkflowFailedEvent when exec…
moonbox3 Dec 2, 2025
cb343dd
Python: Add orchestration ID to durable agent entity state and code r…
Copilot Dec 2, 2025
c2d285e
Fix MangenticAgentExecutor producing repr str for tool call content (…
moonbox3 Dec 2, 2025
5c70e14
.NET: Fix samples for hosted agents (#2550)
SergeyMenshykh Dec 2, 2025
1edd28b
feat: pass agent run kwargs through to context providers (#1681)
DJ2695 Dec 2, 2025
ceaea46
.NET: Change Anthropic Azure sample to use Athropic.Foundry package +…
rogerbarreto Dec 2, 2025
b69f994
.NET: Fix AG-UI forwardedProps JSON property name (#2543)
javiercn Dec 2, 2025
e9ab514
Python: Replace Eval SDK with AI Projects SDK in evaluation sample (#…
YusakuNo1 Dec 2, 2025
6232dd8
.NET [Breaking] Simplify and Refactor ChatclientAgentOptions Ctor + I…
rogerbarreto Dec 3, 2025
b5595f6
Python: Enable Agentic Mode to Use Existing Knowledge Bases Without i…
farzad528 Dec 3, 2025
d57303c
Bump Persistent V1 package with bugfixes (#2602)
rogerbarreto Dec 3, 2025
931197b
Bump Aspire.Hosting.AppHost from 13.0.0 to 13.0.1 (#2493)
dependabot[bot] Dec 3, 2025
a81279d
Python: Pin meta core (#2597)
eavanvalkenburg Dec 3, 2025
3cfd348
Python: Update _provider.py (#2548)
zackobied Dec 3, 2025
6835161
.NET: Fix flaky vector store integration tests - race condition on in…
Copilot Dec 3, 2025
411ee7a
Python: DevUI fixes : Add multimodal input support for workflows and …
victordibia Dec 3, 2025
a26e9d6
.NET: Add Unit test for declarative object model AddConversationMessa…
peibekwe Dec 3, 2025
9c2e800
Remove unnecessary PackageReferences after .NET 10 update (#2394)
stephentoub Dec 4, 2025
a597a92
Python: Add type annotations for AgentRunEvent and AgentRunUpdateEven…
moonbox3 Dec 4, 2025
a683c0e
Python: Use executor_id and edge_group_id as span names for meaningfu…
moonbox3 Dec 4, 2025
42ffe59
Python: Document ChatKit frontend requirements and air-gapped limitat…
victordibia Dec 4, 2025
d774b64
Python: added inline yaml sample (#2582)
eavanvalkenburg Dec 4, 2025
b86c130
Python: Fixed empty text content pydantic validation failure (#2539)
howlowck Dec 4, 2025
f7a9005
Python: Add executor I/O data to ExecutorInvokedEvent and ExecutorCom…
moonbox3 Dec 4, 2025
ae06c9e
Add support for Pydantic BaseModel as function call result (#2606)
Copilot Dec 4, 2025
292a207
Python: Fix: AgentRunResponse.created_at returns local datetime label…
Copilot Dec 4, 2025
19ac6e5
Python [BREAKING]: support magentic agent tool call approvals and pla…
moonbox3 Dec 4, 2025
ee340be
Address vulnerability (#2631)
rogerbarreto Dec 4, 2025
01a04a3
seal options and context classes (#2633)
SergeyMenshykh Dec 4, 2025
365e438
Python: AzureAI Local MCP Sample (#2616)
giles17 Dec 4, 2025
d858c23
Fix observability module mypy error (#2641)
TaoChenOSU Dec 4, 2025
f5786b2
Updated package versions (#2643)
dmytrostruk Dec 4, 2025
6809510
Updated package versions (#2642)
dmytrostruk Dec 4, 2025
f2ed5b5
Python: WorkflowBuilder registry (#2486)
TaoChenOSU Dec 5, 2025
b78a2b6
Python: Support an autonomous handoff flow (#2497)
moonbox3 Dec 5, 2025
db36809
.NET: Move TextSearchProvider and TextSearchProviderOptions to Micros…
Copilot Dec 5, 2025
51721bd
.NET: Add samples for OpenAIChatClientAgent and OpenAIResponseClientA…
SergeyMenshykh Dec 5, 2025
9c1b2f9
.NET: Annotate all public methods of OpenAIAssistantClientExtensions …
Copilot Dec 5, 2025
417a529
dont forward conversationId to ichatclient (#2632)
DeagleGross Dec 5, 2025
900c2a0
Added solution filter file for release (#2651)
dmytrostruk Dec 5, 2025
f432610
Python: Display system prompt in langfuse (#2653)
SuperKenVery Dec 5, 2025
f5f909f
Python: Added Azure OpenAI Responses File Search sample + Integration…
giles17 Dec 5, 2025
2d3ba95
Python: Add configurable timeout support to A2AAgent (#2432)
giles17 Dec 5, 2025
8c6b12e
Python: DevUI, Fix message serialization issue, improve tests (#2674)
victordibia Dec 6, 2025
eb06fae
.NET: AG-UI Docs samples (#2194)
javiercn Dec 8, 2025
cfcb713
Renamed async_credential to credential (#2648)
dmytrostruk Dec 8, 2025
c34af00
Improve sample logging (#2692)
moonbox3 Dec 8, 2025
551219c
Python: Feature/fix context provider lifecycle agentic mode (#2650)
farzad528 Dec 8, 2025
0675000
fixes Python: DevUI fails when uploading Pdf file (tested on Python F…
victordibia Dec 8, 2025
d7ca969
Python: Update fan in fan out sample to show concurrency (#2705)
TaoChenOSU Dec 8, 2025
1e6aedb
Updated (#2707)
crickman Dec 8, 2025
d889fa6
Python: Title: DevUI Fix WorkflowFailedEvent error extraction (#2706)
victordibia Dec 8, 2025
c6e73a4
Bump danielpalme/ReportGenerator-GitHub-Action from 5.5.0 to 5.5.1 (#…
dependabot[bot] Dec 8, 2025
71d9d26
Python: Fix DurableState schema serializations (#2670)
larohra Dec 8, 2025
69225b4
.NET: [BREAKING] Change namespaces of the Microsoft.Agents.AI.OpenAI …
SergeyMenshykh Dec 9, 2025
b55095f
azureai image gen sample update (#2709)
giles17 Dec 9, 2025
dec4b38
Bump Azure.AI.OpenAI from 2.7.0-beta.1 to 2.7.0-beta.2 (#2626)
dependabot[bot] Dec 9, 2025
2caf1bb
.NET: [Durable Agents] Update CHANGELOG with release notes for past r…
cgillum Dec 9, 2025
0965a83
.NET Workflows - Update Declarative Integration Tests for File Cases …
crickman Dec 9, 2025
43302fb
Python: Updated package versions (#2737)
dmytrostruk Dec 9, 2025
b391088
Bump MishaKav/pytest-coverage-comment from 1.1.59 to 1.2.0 (#2255)
dependabot[bot] Dec 10, 2025
9313168
Bump Aspire.Microsoft.Azure.Cosmos from 13.0.1 to 13.0.2 (#2625)
dependabot[bot] Dec 10, 2025
1dce258
Bump Aspire.Hosting.AppHost from 13.0.1 to 13.0.2 (#2623)
dependabot[bot] Dec 10, 2025
7be860e
Bump Aspire.Hosting.Azure.CognitiveServices from 13.0.1 to 13.0.2 (#2…
dependabot[bot] Dec 10, 2025
2f0b2db
fix: Standardize OpenAI API key environment variable naming (#1001) (…
alzarei Dec 10, 2025
b01fd23
Update analyzers for .NET 10 SDK (#2611)
stephentoub Dec 10, 2025
bc8dbe4
Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.4.6 to 4.0.4.7 (#2173)
dependabot[bot] Dec 10, 2025
1949193
.NET: Update the migration guidelines with latest changes (#2703)
rogerbarreto Dec 10, 2025
90964ac
.NET: Add LoggingAgent wrapper for ILogger-based observability (#2701)
Copilot Dec 10, 2025
0d9ae19
.NET: use valid Gemini model (#2695)
jochenkirstaetter Dec 10, 2025
b378ca7
Python: extend HITL support for all orchestration patterns (#2620)
moonbox3 Dec 10, 2025
3f4eeb0
Python: Change DurableAIAgent log level from warning to debug when in…
Copilot Dec 10, 2025
523305a
Python: Add factory pattern to sequential orchestration builder (#2710)
TaoChenOSU Dec 10, 2025
638fbb5
Update Microsoft.Extensions.AI.* packages to 10.1.0 (#2735)
Copilot Dec 10, 2025
191779c
Python: Add factory pattern to concurrent orchestration builder (#2738)
TaoChenOSU Dec 11, 2025
4c6a5d4
Python: fix: GroupChat ManagerSelectionResponse JSON Schema for OpenA…
q33566 Dec 11, 2025
3481914
Capture file IDs from code interpreter in streaming responses (#2741)
moonbox3 Dec 11, 2025
989b6eb
.NET: [BREAKING] Prevent nulls in AIAgent property (#2719)
SergeyMenshykh Dec 11, 2025
5da1c2f
code ql sm04598 (#2723)
DeagleGross Dec 11, 2025
67e8304
.NET: Add Conversation State Sample (Step05) (#2697)
Copilot Dec 11, 2025
0413f42
Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.4.7 to 4.0.4.11 (#2777)
dependabot[bot] Dec 11, 2025
194486c
Bump Azure.Identity from 1.17.0 to 1.17.1 (#2780)
dependabot[bot] Dec 11, 2025
8bb9927
Bump Azure.AI.AgentServer.AgentFramework from 1.0.0-beta.4 to 1.0.0-b…
dependabot[bot] Dec 11, 2025
c376868
Python: added more complete parsing for mcp tool arguments (#2756)
eavanvalkenburg Dec 11, 2025
8d53b20
Python: Updated package versions (#2784)
dmytrostruk Dec 11, 2025
16230d3
Bump actions/checkout from 5 to 6 (#2404)
dependabot[bot] Dec 11, 2025
eb1117f
.NET: adds support for labels in edges, fixes rendering of labels in…
joslat Dec 12, 2025
d7434d5
Python: Added custom args and thread object to ai_function kwargs (#2…
dmytrostruk Dec 12, 2025
0fc7933
Fix WorkflowAgent to include thread convo history. Enable checkpointi…
moonbox3 Dec 12, 2025
e008144
Update OpenAIResponses.yaml to match AgentSchema (#2598)
richardjortega Dec 12, 2025
e0ff153
Python: Remove warnings from workflow builder on not using factories …
TaoChenOSU Dec 12, 2025
b064465
Python: Add Google AI package scaffolding (#1938)
Jeyaramjj Nov 7, 2025
6dc9a63
feat(google): Add production-ready Google AI chat client with compreh…
Nov 25, 2025
3679ff4
fix: Address PR review feedback
Dec 12, 2025
50c3e04
test(google): make env fixture deterministic
Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .devcontainer/dotnet/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"name": "C# (.NET)",
"image": "mcr.microsoft.com/devcontainers/dotnet:9.0",
"image": "mcr.microsoft.com/devcontainers/dotnet:10.0",
"features": {
"ghcr.io/devcontainers/features/dotnet:2.4.0": {},
"ghcr.io/devcontainers/features/powershell:1.5.1": {},
"ghcr.io/devcontainers/features/azure-cli:1.2.8": {}
"ghcr.io/devcontainers/features/azure-cli:1.2.8": {},
"ghcr.io/devcontainers/features/docker-in-docker:2.12.4": {}
},
"workspaceFolder": "/workspaces/agent-framework/dotnet/",
"customizations": {
Expand Down
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Code ownership assignments
# https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

python/packages/azurefunctions/ @microsoft/agentframework-durabletask-developers
36 changes: 36 additions & 0 deletions .github/actions/azure-functions-integration-setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Azure Functions Integration Test Setup
description: Prepare local emulators and tools for Azure Functions integration tests

runs:
using: "composite"
steps:
- name: Start Durable Task Scheduler Emulator
shell: bash
run: |
if [ "$(docker ps -aq -f name=dts-emulator)" ]; then
echo "Stopping and removing existing Durable Task Scheduler Emulator"
docker rm -f dts-emulator
fi
echo "Starting Durable Task Scheduler Emulator"
docker run -d --name dts-emulator -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
echo "Waiting for Durable Task Scheduler Emulator to be ready"
timeout 30 bash -c 'until curl --silent http://localhost:8080/healthz; do sleep 1; done'
echo "Durable Task Scheduler Emulator is ready"
- name: Start Azurite (Azure Storage emulator)
shell: bash
run: |
if [ "$(docker ps -aq -f name=azurite)" ]; then
echo "Stopping and removing existing Azurite (Azure Storage emulator)"
docker rm -f azurite
fi
echo "Starting Azurite (Azure Storage emulator)"
docker run -d --name azurite -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite
echo "Waiting for Azurite (Azure Storage emulator) to be ready"
timeout 30 bash -c 'until curl --silent http://localhost:10000/devstoreaccount1; do sleep 1; done'
echo "Azurite (Azure Storage emulator) is ready"
- name: Install Azure Functions Core Tools
shell: bash
run: |
echo "Installing Azure Functions Core Tools"
npm install -g azure-functions-core-tools@4 --unsafe-perm true
func --version
11 changes: 8 additions & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ updates:
schedule:
interval: "cron"
cronjob: "0 8 * * 4,0" # Every Thursday(4) and Sunday(0) at 8:00 UTC
experimental:
nuget-native-updater: false
enable-cooldown-metrics-collection: false
ignore:
# For all System.* and Microsoft.Extensions/Bcl.* packages, ignore all major version updates
- dependency-name: "System.*"
Expand All @@ -28,6 +25,14 @@ updates:
- "dependencies"

# Maintain dependencies for python
- package-ecosystem: "pip"
directory: "python/"
schedule:
interval: "weekly"
day: "monday"
labels:
- "python"
- "dependencies"
- package-ecosystem: "uv"
directory: "python/"
schedule:
Expand Down
17 changes: 17 additions & 0 deletions .github/instructions/durabletask-dotnet.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
applyTo: "dotnet/src/Microsoft.Agents.AI.DurableTask/**,dotnet/src/Microsoft.Agents.AI.Hosting.AzureFunctions/**"
---

# Durable Task area code instructions

The following guidelines apply to pull requests that modify files under
`dotnet/src/Microsoft.Agents.AI.DurableTask/**` or
`dotnet/src/Microsoft.Agents.AI.Hosting.AzureFunctions/**`:

## CHANGELOG.md

- Each pull request that modifies code should add just one bulleted entry to the `CHANGELOG.md` file containing a change title (usually the PR title) and a link to the PR itself.
- New PRs should be added to the top of the `CHANGELOG.md` file under a "## [Unreleased]" heading.
- If the PR is the first since the last release, the existing "## [Unreleased]" heading should be replaced with a "## v[X.Y.Z]" heading and the PRs since the last release should be added to the new "## [Unreleased]" heading.
- The style of new `CHANGELOG.md` entries should match the style of the other entries in the file.
- If the PR introduces a breaking change, the changelog entry should be prefixed with "[BREAKING]".
144 changes: 58 additions & 86 deletions .github/upgrades/prompts/SemanticKernelToAgentFramework.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ Replace these Semantic Kernel agent classes with their Agent Framework equivalen
|----------------------|----------------------------|-------------------|
| `IChatCompletionService` | `IChatClient` | Convert to `IChatClient` using `chatService.AsChatClient()` extensions |
| `ChatCompletionAgent` | `ChatClientAgent` | Remove `Kernel` parameter, add `IChatClient` parameter |
| `OpenAIAssistantAgent` | `AIAgent` (via extension) | **New**: `OpenAIClient.GetAssistantClient().CreateAIAgent()` <br> **Existing**: `OpenAIClient.GetAssistantClient().GetAIAgent(assistantId)` |
| `OpenAIAssistantAgent` | `AIAgent` (via extension) | ⚠️ **Deprecated** - Use Responses API instead. <br> **New**: `OpenAIClient.GetAssistantClient().CreateAIAgent()` <br> **Existing**: `OpenAIClient.GetAssistantClient().GetAIAgent(assistantId)` |
| `AzureAIAgent` | `AIAgent` (via extension) | **New**: `PersistentAgentsClient.CreateAIAgent()` <br> **Existing**: `PersistentAgentsClient.GetAIAgent(agentId)` |
| `OpenAIResponseAgent` | `AIAgent` (via extension) | Replace with `OpenAIClient.GetOpenAIResponseClient().CreateAIAgent()` |
| `OpenAIResponseAgent` | `AIAgent` (via extension) | Replace with `OpenAIClient.GetOpenAIResponseClient(modelId).CreateAIAgent()` |
| `A2AAgent` | `AIAgent` (via extension) | Replace with `A2ACardResolver.GetAIAgentAsync()` |
| `BedrockAgent` | Not supported | Custom implementation required |

Expand Down Expand Up @@ -529,14 +529,14 @@ AIAgent agent = new OpenAIClient(apiKey)
.CreateAIAgent(instructions: instructions);
```

**OpenAI Assistants (New):**
**OpenAI Assistants (New):** ⚠️ *Deprecated - Use Responses API instead*
```csharp
AIAgent agent = new OpenAIClient(apiKey)
.GetAssistantClient()
.CreateAIAgent(modelId, instructions: instructions);
```

**OpenAI Assistants (Existing):**
**OpenAI Assistants (Existing):** ⚠️ *Deprecated - Use Responses API instead*
```csharp
AIAgent agent = new OpenAIClient(apiKey)
.GetAssistantClient()
Expand All @@ -562,6 +562,20 @@ AIAgent agent = await new PersistentAgentsClient(endpoint, credential)
.GetAIAgentAsync(agentId);
```

**OpenAI Responses:** *(Recommended for OpenAI)*
```csharp
AIAgent agent = new OpenAIClient(apiKey)
.GetOpenAIResponseClient(modelId)
.CreateAIAgent(instructions: instructions);
```

**Azure OpenAI Responses:** *(Recommended for Azure OpenAI)*
```csharp
AIAgent agent = new AzureOpenAIClient(endpoint, credential)
.GetOpenAIResponseClient(deploymentName)
.CreateAIAgent(instructions: instructions);
```

**A2A:**
```csharp
A2ACardResolver resolver = new(new Uri(agentHost));
Expand Down Expand Up @@ -762,35 +776,57 @@ await foreach (var content in agent.InvokeAsync(userInput, thread))

**With this Agent Framework CodeInterpreter pattern:**
```csharp
using System.Text;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;

var result = await agent.RunAsync(userInput, thread);
Console.WriteLine(result);

// Extract chat response MEAI type via first level breaking glass
var chatResponse = result.RawRepresentation as ChatResponse;
// Get the CodeInterpreterToolCallContent (code input)
CodeInterpreterToolCallContent? toolCallContent = result.Messages
.SelectMany(m => m.Contents)
.OfType<CodeInterpreterToolCallContent>()
.FirstOrDefault();

if (toolCallContent?.Inputs is not null)
{
DataContent? codeInput = toolCallContent.Inputs.OfType<DataContent>().FirstOrDefault();
if (codeInput?.HasTopLevelMediaType("text") ?? false)
{
Console.WriteLine($"Code Input: {Encoding.UTF8.GetString(codeInput.Data.ToArray())}");
}
}

// Extract underlying SDK updates via second level breaking glass
var underlyingStreamingUpdates = chatResponse?.RawRepresentation as IEnumerable<object?> ?? [];
// Get the CodeInterpreterToolResultContent (code output)
CodeInterpreterToolResultContent? toolResultContent = result.Messages
.SelectMany(m => m.Contents)
.OfType<CodeInterpreterToolResultContent>()
.FirstOrDefault();

StringBuilder generatedCode = new();
foreach (object? underlyingUpdate in underlyingStreamingUpdates ?? [])
if (toolResultContent?.Outputs is not null)
{
if (underlyingUpdate is RunStepDetailsUpdate stepDetailsUpdate && stepDetailsUpdate.CodeInterpreterInput is not null)
TextContent? resultOutput = toolResultContent.Outputs.OfType<TextContent>().FirstOrDefault();
if (resultOutput is not null)
{
generatedCode.Append(stepDetailsUpdate.CodeInterpreterInput);
Console.WriteLine($"Code Tool Result: {resultOutput.Text}");
}
}

if (!string.IsNullOrEmpty(generatedCode.ToString()))
// Getting any annotations generated by the tool
foreach (AIAnnotation annotation in result.Messages
.SelectMany(m => m.Contents)
.SelectMany(c => c.Annotations ?? []))
{
Console.WriteLine($"\n# {chatResponse?.Messages[0].Role}:Generated Code:\n{generatedCode}");
Console.WriteLine($"Annotation: {annotation}");
}
```

**Functional differences:**
1. Code interpreter output is separate from text content, not a metadata property
2. Access code via `RunStepDetailsUpdate.CodeInterpreterInput` instead of metadata
3. Use breaking glass pattern to access underlying SDK objects
4. Process text content and code interpreter output independently
1. Code interpreter content is now available via MEAI abstractions - no breaking glass required
2. Use `CodeInterpreterToolCallContent` to access code inputs (the generated code)
3. Use `CodeInterpreterToolResultContent` to access code outputs (execution results)
4. Annotations are accessible via `AIAnnotation` on content items
</behavioral_changes>

#### Provider-Specific Options Configuration
Expand Down Expand Up @@ -980,6 +1016,8 @@ AIAgent agent = new AzureOpenAIClient(new Uri(endpoint), new AzureCliCredential(

### 3. OpenAI Assistants Migration

> ⚠️ **DEPRECATION WARNING**: The OpenAI Assistants API has been deprecated. The Agent Framework extension methods for Assistants are marked as `[Obsolete]`. **Please use the Responses API instead** (see Section 6: OpenAI Responses Migration).

<configuration_changes>
**Remove Semantic Kernel Packages:**
```xml
Expand Down Expand Up @@ -1291,52 +1329,7 @@ var result = await agent.RunAsync(userInput, thread);
```
</api_changes>

### 8. A2A Migration

<configuration_changes>
**Remove Semantic Kernel Packages:**
```xml
<PackageReference Include="Microsoft.SemanticKernel.Agents.A2A" />
```

**Add Agent Framework Packages:**
```xml
<PackageReference Include="Microsoft.Agents.AI.A2A" />
```
</configuration_changes>

<api_changes>
**Replace this Semantic Kernel pattern:**
```csharp
using A2A;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Agents;
using Microsoft.SemanticKernel.Agents.A2A;

using var httpClient = CreateHttpClient();
var client = new A2AClient(agentUrl, httpClient);
var cardResolver = new A2ACardResolver(url, httpClient);
var agentCard = await cardResolver.GetAgentCardAsync();
Console.WriteLine(JsonSerializer.Serialize(agentCard, s_jsonSerializerOptions));
var agent = new A2AAgent(client, agentCard);
```

**With this Agent Framework pattern:**
```csharp
using System;
using A2A;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.A2A;

// Initialize an A2ACardResolver to get an A2A agent card.
A2ACardResolver agentCardResolver = new(new Uri(a2aAgentHost));

// Create an instance of the AIAgent for an existing A2A agent specified by the agent card.
AIAgent agent = await agentCardResolver.GetAIAgentAsync();
```
</api_changes>

### 9. Unsupported Providers (Require Custom Implementation)
### 8. Unsupported Providers (Require Custom Implementation)

<behavioral_changes>
#### BedrockAgent Migration
Expand Down Expand Up @@ -1507,7 +1500,7 @@ Console.WriteLine(result);
```
</behavioral_changes>

### 10. Function Invocation Filtering
### 9. Function Invocation Filtering

**Invocation Context**

Expand Down Expand Up @@ -1615,25 +1608,4 @@ var filteredAgent = originalAgent
.Build();
```

### 11. Function Invocation Contexts

**Invocation Context**

Semantic Kernel's `IAutoFunctionInvocationFilter` provides a `AutoFunctionInvocationContext` where Agent Framework provides `FunctionInvocationContext`

The property mapping guide from a `AutoFunctionInvocationContext` to a `FunctionInvocationContext` is as follows:

| Semantic Kernel | Agent Framework |
| --- | --- |
| RequestSequenceIndex | Iteration |
| FunctionSequenceIndex | FunctionCallIndex |
| ToolCallId | CallContent.CallId |
| ChatMessageContent | Messages[0] |
| ExecutionSettings | Options |
| ChatHistory | Messages |
| Function | Function |
| Kernel | N/A |
| Result | Use `return` from the delegate |
| Terminate | Terminate |
| CancellationToken | provided via argument to middleware delegate |
| Arguments | Arguments |
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@v6
with:
persist-credentials: false

Expand Down
Loading