Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
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
0dcebc6
Python: Filter framework kwargs from MCP tool invocations (#2870)
moonbox3 Dec 16, 2025
a729875
Python: Fix WorkflowAgent to emit yield_output as agent response (#2866)
moonbox3 Dec 16, 2025
3c37971
Python: Use agent description in HandoffBuilder auto-generated tools …
lbbniu Dec 16, 2025
3139347
Python: [BREAKING] Observability updates (#2782)
eavanvalkenburg Dec 16, 2025
11d6dcf
Python: Fix middleware terminate flag to exit function calling loop i…
moonbox3 Dec 16, 2025
958a488
Python: Fix context duplication in handoff workflows when restoring f…
moonbox3 Dec 16, 2025
3c322c9
.NET: Update to latest Azure.AI.*, OpenAI, and M.E.AI* (#2850)
stephentoub Dec 16, 2025
a53a3c7
Bump actions/download-artifact from 6 to 7 (#2862)
dependabot[bot] Dec 16, 2025
0132cf6
Bump actions/cache from 4 to 5 (#2861)
dependabot[bot] Dec 16, 2025
1dbf3fd
Bump actions/upload-artifact from 5 to 6 (#2860)
dependabot[bot] Dec 16, 2025
2f06fe5
Python : Ollama Connector for Agent Framework (#1104)
nmoeller Dec 16, 2025
3a7047f
Skip failing IT (#2904)
rogerbarreto Dec 16, 2025
b15466f
.NET: Cosmos DB UT Fast Skip (For Non-Configured Local envs) (#2906)
rogerbarreto Dec 16, 2025
754dfb2
.NET: Add TTLs to durable agent sessions (#2679)
cgillum Dec 16, 2025
54f482d
Python: Update Mem0Provider to use v2 search API `filters` parameter…
giles17 Dec 16, 2025
e319707
Updated package versions (#2913)
dmytrostruk Dec 16, 2025
03a403d
.NET: Switch to new "Run" method name. (#2843)
philliphoff Dec 16, 2025
2bde58f
Python: Switch to new "run" method name. (#2890)
philliphoff Dec 16, 2025
8fca71e
[BREAKING] Python: Add factory pattern to handoff orchestration build…
TaoChenOSU Dec 16, 2025
6adcac2
Python: Flow custom kwargs to agents via Workflow SharedState (#2894)
moonbox3 Dec 17, 2025
06cdcb9
Fix Pydantic error when using Literal type for tool params (#2893)
moonbox3 Dec 17, 2025
ec1c5e9
Updated Ollama package version (#2920)
dmytrostruk Dec 17, 2025
d552798
Python: Azure AI Agent with Bing Grounding Citations Sample (#2892)
giles17 Dec 17, 2025
c7ddb8a
.NET: Make DelegatingAIAgent abstract (#2797)
Copilot Dec 17, 2025
3cd805f
Added additional arguments for Azure AI agent (#2922)
dmytrostruk Dec 17, 2025
ee53fe4
Python: Correction of MCP image type conversion in _mcp.py (#2901)
egeozanozyedek Dec 17, 2025
3608397
Pass kwargs into subworkflows (#2923)
moonbox3 Dec 18, 2025
ca1532c
Python: Move ollama samples to samples getting started dir (#2921)
moonbox3 Dec 18, 2025
0298e0a
Python: fix: correct BadRequestError when using Pydantic model in res…
samueljohnsiby Dec 18, 2025
a71f768
.NET: [Breaking] Delete display name property (#2758)
SergeyMenshykh Dec 18, 2025
e5c11d3
Python: cleanup and refactoring of chat clients (#2937)
eavanvalkenburg Dec 18, 2025
b4f2709
Python: Workflow add option to visualize internal executors (#2917)
TaoChenOSU Dec 18, 2025
e3f8bfc
Python: Fixes Run ID and Thread ID casing to align with AG-UI Typescr…
howlowck Dec 18, 2025
8ff34f9
Python: Add workflow cancellation sample (#2732)
victordibia Dec 18, 2025
ff9343d
.NET: Update Anthropic package to version 12.0.0 (#2914)
Copilot Dec 18, 2025
37b4cfd
Python: Add Azure Managed Redis Support with Credential Provider (#2887)
giles17 Dec 18, 2025
b0b5777
Bump CommunityToolkit.Aspire.OllamaSharp from 13.0.0-beta.440 to 13.0…
dependabot[bot] Dec 18, 2025
d46adff
Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.4.11 to 4.0.5 (#2853)
dependabot[bot] Dec 18, 2025
a841bdd
Bump Azure.AI.AgentServer.AgentFramework from 1.0.0-beta.4 to 1.0.0-b…
dependabot[bot] Dec 18, 2025
b0a7a1f
Python: Fix WorkflowAgent event handling and kwargs forwarding (#2946)
moonbox3 Dec 18, 2025
19a9e13
.NET: Use GrpcEntityRunner instead of TaskEntityDispatcher (#2759)
jviau Dec 19, 2025
e15eab7
Python: Bump Py version to 1.0.0b251218 for a release. Update CHANGEL…
moonbox3 Dec 19, 2025
8783ac5
Python: Introducing Foundry Local Chat Clients (#2915)
eavanvalkenburg Dec 19, 2025
d83cf93
Updated package versions (#2978)
dmytrostruk Dec 19, 2025
6930c0f
Python: Added GitHub MCP sample with PAT (#2967)
giles17 Dec 19, 2025
85d70f0
Python: Preserve reasoning blocks with OpenRouter (#2950)
SuperKenVery Dec 19, 2025
defe0f1
Python: Added response.created and response.in_progress event process…
howlowck Dec 19, 2025
3b77192
Python: Introducing support for Bedrock-hosted models (Anthropic, Coh…
duttastunil Dec 19, 2025
0e152a0
.NET: [Durable Agents] Reliable streaming sample (#2942)
cgillum Dec 19, 2025
8b743af
Fix typo in README.md about agent definitions (#2634)
SyChell Dec 22, 2025
a32702c
Python: latency improvements (#3014)
eavanvalkenburg Dec 23, 2025
5ab4759
Python: Updated package versions (#3024)
dmytrostruk Dec 23, 2025
4b8a545
Python: add powerfx safe mode (#3028)
eavanvalkenburg Dec 23, 2025
8b4f7d5
.NET: [Breaking] Introduce RunCoreAsync/RunCoreStreamingAsync delegat…
Copilot Dec 30, 2025
577ad4b
add issue template and additional labeling (#3006)
eavanvalkenburg Jan 5, 2026
deea844
fix and extra int test (#3037)
eavanvalkenburg Jan 5, 2026
3ef67ef
.NET: [BREAKING] Refactor ChatMessageStore methods to be similar to A…
westey-m Jan 5, 2026
0aba02c
[BREAKING] Remove unused AgentThreadMetadata (#3067)
westey-m Jan 5, 2026
928c9d5
Python: Fix AzureAIClient failure when conversation history contains …
moonbox3 Jan 5, 2026
ed5278c
Fix: Update OTLP exporter protocol conditions (#3070)
takanori-terai Jan 6, 2026
844d345
Python: Fix ExecutorInvokedEvent and ExecutorCompletedEvent observabi…
moonbox3 Jan 6, 2026
0aa0579
.NET: Seal ChatClientAgentThread (#2842)
Copilot Jan 6, 2026
7a05849
Fix broken strands urls. (#3102)
westey-m Jan 6, 2026
953fde6
.NET: Fix message ordering inconsistency when using AIContextProvider…
Copilot Jan 6, 2026
24c8225
fix: tool_choice parameter not being honored when passed to agent.run…
moonbox3 Jan 6, 2026
ea370f8
sharepoint sample fix (#3108)
giles17 Jan 6, 2026
202f557
Bump versions to 1.0.0b260106 for a release. Update CHANGELOG.md (#3109)
moonbox3 Jan 7, 2026
f49e537
Bump Bedrock version to latest (#3110)
moonbox3 Jan 7, 2026
db283cd
Python: Fix MCP tool result serialization for list[TextContent] (#2523)
claude89757 Jan 7, 2026
2e1189c
Python: Improve DevUI, add Context Inspector view as new tab under tr…
victordibia Jan 7, 2026
dd69cab
.NET: Seal factory contexts and add non JSO deserialize overloads (#3…
westey-m Jan 7, 2026
521f046
Enable blank issues in issue template configuration
markwallace-microsoft Jan 7, 2026
a118fd5
updated templates (#3106)
eavanvalkenburg Jan 7, 2026
f4ab586
Python: Streaming sample for azurefunctions (#3057)
gavin-aguiar Jan 7, 2026
e9d97ce
Python: fix(azure-ai): Fix response_format handling for structured ou…
moonbox3 Jan 7, 2026
f508f1d
Python: Bump python version to 1.0.0b260107 for a release (#3128)
moonbox3 Jan 7, 2026
299a511
Make A2AAgent public, so that it's concrete implementation methods ca…
westey-m Jan 8, 2026
3388864
.NET: Map additional props <-> A2A metadata (#3137)
SergeyMenshykh Jan 8, 2026
ab493af
Python: Fix Anthropic streaming response bugs (#3141)
sukeesh Jan 8, 2026
b88b2c3
Bump AWSSDK.Extensions.Bedrock.MEAI from 4.0.5 to 4.0.5.1 (#2994)
dependabot[bot] Jan 8, 2026
49cecf3
Bump Anthropic from 12.0.0 to 12.0.1 (#2993)
dependabot[bot] Jan 8, 2026
7aa72f6
.NET: [Breaking] Prevent loss of input messages & streamed updates wh…
SergeyMenshykh Jan 8, 2026
99fac4c
.NET: fix: Expose WorkflowErrorEvent as ErrorContent (#2762)
lokitoth Jan 8, 2026
f6086e4
Bump Microsoft.Agents.AI.Workflows from 1.0.0-preview.251125.1 to 1.0…
dependabot[bot] Jan 8, 2026
92435c6
.NET: Add Run overloads to expose ChatClientAgentRunOptions in Intell…
Copilot Jan 8, 2026
3f7ea35
Python: Add tool call/result content types and update connectors and …
Copilot Jan 8, 2026
01c5aab
Bump Google.GenAI from 0.6.0 to 0.9.0 (#2995)
dependabot[bot] Jan 8, 2026
9c04196
Bump js-yaml from 4.1.0 to 4.1.1 in /python/packages/devui/frontend (…
dependabot[bot] Jan 8, 2026
13a5b70
Updated package versions (#3144)
dmytrostruk Jan 8, 2026
50d34ae
.NET: Bump Microsoft.Agents.AI.OpenAI and Microsoft.Extensions.AI.Ope…
dependabot[bot] Jan 8, 2026
88968da
Python: fix(ag-ui): Execute tools with approval_mode, fix shared stat…
moonbox3 Jan 9, 2026
d28ad2d
Track agent name with updates for workflow agent (#3146)
moonbox3 Jan 9, 2026
6445b6b
Python: Fix AzureAIClient tool call bug for AG-UI use (#3148)
moonbox3 Jan 9, 2026
3d5b721
Merge with main
larohra Jan 9, 2026
61094fd
Revert to match main
larohra Jan 9, 2026
b1bcb33
revert file to main
larohra Jan 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: Documentation
url: https://aka.ms/agent-framework
about: Check out the official documentation for guides and API reference.
- name: Discussions
url: https://github.com/microsoft/agent-framework/discussions
about: Ask questions about Agent Framework.
70 changes: 70 additions & 0 deletions .github/ISSUE_TEMPLATE/dotnet-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: .NET Bug Report
description: Report a bug in the Agent Framework .NET SDK
title: ".NET: [Bug]: "
labels: ["bug", ".NET"]
type: bug
body:
- type: textarea
id: description
attributes:
label: Description
description: Please provide a clear and detailed description of the bug.
placeholder: |
- What happened?
- What did you expect to happen?
- Steps to reproduce the issue
validations:
required: true

- type: textarea
id: code-sample
attributes:
label: Code Sample
description: If applicable, provide a minimal code sample that demonstrates the issue.
placeholder: |
```csharp
// Your code here
```
render: markdown
validations:
required: false

- type: textarea
id: error-messages
attributes:
label: Error Messages / Stack Traces
description: Include any error messages or stack traces you received.
placeholder: |
```
Paste error messages or stack traces here
```
render: markdown
validations:
required: false

- type: input
id: dotnet-packages
attributes:
label: Package Versions
description: List the Microsoft.Agents.* packages and versions you are using
placeholder: "e.g., Microsoft.Agents.AI.Abstractions: 1.0.0, Microsoft.Agents.AI.OpenAI: 1.0.0"
validations:
required: true

- type: input
id: dotnet-version
attributes:
label: .NET Version
description: What version of .NET are you using?
placeholder: "e.g., .NET 8.0"
validations:
required: false

- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Add any other context or screenshots that might be helpful.
placeholder: "Any additional information..."
validations:
required: false
51 changes: 51 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Feature Request
description: Request a new feature for Microsoft Agent Framework
title: "[Feature]: "
type: feature
body:

- type: textarea
id: description
attributes:
label: Description
description: Please describe the feature you'd like and why it would be useful.
placeholder: |
Describe the feature you're requesting:
- What problem does it solve?
- What would the expected behavior be?
- Are there any alternatives you've considered?
validations:
required: true

- type: textarea
id: code-sample
attributes:
label: Code Sample
description: If applicable, provide a code sample showing how you'd like to use this feature.
placeholder: |
```python
# Your code here
```

or

```csharp
// Your code here
```
render: markdown
validations:
required: false

- type: dropdown
id: language
attributes:
label: Language/SDK
description: Which language/SDK does this feature apply to?
options:
- Both
- .NET
- Python
- Other / Not Applicable
default: 0
validations:
required: false
70 changes: 70 additions & 0 deletions .github/ISSUE_TEMPLATE/python-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Python Bug Report
description: Report a bug in the Agent Framework Python SDK
title: "Python: [Bug]: "
labels: ["bug", "Python"]
type: bug
body:
- type: textarea
id: description
attributes:
label: Description
description: Please provide a clear and detailed description of the bug.
placeholder: |
- What happened?
- What did you expect to happen?
- Steps to reproduce the issue
validations:
required: true

- type: textarea
id: code-sample
attributes:
label: Code Sample
description: If applicable, provide a minimal code sample that demonstrates the issue.
placeholder: |
```python
# Your code here
```
render: markdown
validations:
required: false

- type: textarea
id: error-messages
attributes:
label: Error Messages / Stack Traces
description: Include any error messages or stack traces you received.
placeholder: |
```
Paste error messages or stack traces here
```
render: markdown
validations:
required: false

- type: input
id: python-packages
attributes:
label: Package Versions
description: List the agent-framework-* packages and versions you are using
placeholder: "e.g., agent-framework-core: 1.0.0, agent-framework-azure-ai: 1.0.0"
validations:
required: true

- type: input
id: python-version
attributes:
label: Python Version
description: What version of Python are you using?
placeholder: "e.g., Python 3.11"
validations:
required: false

- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Add any other context or screenshots that might be helpful.
placeholder: "Any additional information..."
validations:
required: false
61 changes: 50 additions & 11 deletions .github/workflows/label-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,58 @@ jobs:
labels.push("triage")
}

// Check if the body or the title contains the word 'python' (case-insensitive)
if ((body != null && body.match(/python/i)) || (title != null && title.match(/python/i))) {
// Add the 'python' label to the array
labels.push("python")
// Helper function to extract field value from issue form body
// Issue forms format fields as: ### Field Name\n\nValue
function getFormFieldValue(body, fieldName) {
if (!body) return null
const regex = new RegExp(`###\\s*${fieldName}\\s*\\n\\n([^\\n#]+)`, 'i')
const match = body.match(regex)
return match ? match[1].trim() : null
}

// Check if the body or the title contains the words 'dotnet', '.net', 'c#' or 'csharp' (case-insensitive)
if ((body != null && body.match(/.net/i)) || (title != null && title.match(/.net/i)) ||
(body != null && body.match(/dotnet/i)) || (title != null && title.match(/dotnet/i)) ||
(body != null && body.match(/C#/i)) || (title != null && title.match(/C#/i)) ||
(body != null && body.match(/csharp/i)) || (title != null && title.match(/csharp/i))) {
// Add the '.NET' label to the array
labels.push(".NET")
// Check for language from issue form dropdown first
const languageField = getFormFieldValue(body, 'Language')
let languageLabelAdded = false

if (languageField) {
if (languageField === 'Python') {
labels.push("python")
languageLabelAdded = true
} else if (languageField === '.NET') {
labels.push(".NET")
languageLabelAdded = true
}
// 'None / Not Applicable' - don't add any language label
}

// Fallback: Check if the body or the title contains the word 'python' (case-insensitive)
// Only if language wasn't already determined from the form field
if (!languageLabelAdded) {
if ((body != null && body.match(/python/i)) || (title != null && title.match(/python/i))) {
// Add the 'python' label to the array
labels.push("python")
}

// Check if the body or the title contains the words 'dotnet', '.net', 'c#' or 'csharp' (case-insensitive)
if ((body != null && body.match(/\.net/i)) || (title != null && title.match(/\.net/i)) ||
(body != null && body.match(/dotnet/i)) || (title != null && title.match(/dotnet/i)) ||
(body != null && body.match(/C#/i)) || (title != null && title.match(/C#/i)) ||
(body != null && body.match(/csharp/i)) || (title != null && title.match(/csharp/i))) {
// Add the '.NET' label to the array
labels.push(".NET")
}
}

// Check for issue type from issue form dropdown
const issueTypeField = getFormFieldValue(body, 'Type of Issue')
if (issueTypeField) {
if (issueTypeField === 'Bug') {
labels.push("bug")
} else if (issueTypeField === 'Feature Request') {
labels.push("enhancement")
} else if (issueTypeField === 'Question') {
labels.push("question")
}
}

// Add the labels to the issue (only if there are labels to add)
Expand Down
8 changes: 4 additions & 4 deletions docs/decisions/0001-agent-run-response.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ Approaches observed from the compared SDKs:
| AutoGen | **Approach 1** Separates messages into Agent-Agent (maps to Primary) and Internal (maps to Secondary) and these are returned as separate properties on the agent response object. See [types of messages](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/messages.html#types-of-messages) and [Response](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.base.html#autogen_agentchat.base.Response) | **Approach 2** Returns a stream of internal events and the last item is a Response object. See [ChatAgent.on_messages_stream](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.base.html#autogen_agentchat.base.ChatAgent.on_messages_stream) |
| OpenAI Agent SDK | **Approach 1** Separates new_items (Primary+Secondary) from final output (Primary) as separate properties on the [RunResult](https://github.com/openai/openai-agents-python/blob/main/src/agents/result.py#L39) | **Approach 1** Similar to non-streaming, has a way of streaming updates via a method on the response object which includes all data, and then a separate final output property on the response object which is populated only when the run is complete. See [RunResultStreaming](https://github.com/openai/openai-agents-python/blob/main/src/agents/result.py#L136) |
| Google ADK | **Approach 2** [Emits events](https://google.github.io/adk-docs/runtime/#step-by-step-breakdown) with [FinalResponse](https://github.com/google/adk-java/blob/main/core/src/main/java/com/google/adk/events/Event.java#L232) true (Primary) / false (Secondary) and callers have to filter out those with false to get just the final response message | **Approach 2** Similar to non-streaming except [events](https://google.github.io/adk-docs/runtime/#streaming-vs-non-streaming-output-partialtrue) are emitted with [Partial](https://github.com/google/adk-java/blob/main/core/src/main/java/com/google/adk/events/Event.java#L133) true to indicate that they are streaming messages. A final non partial event is also emitted. |
| AWS (Strands) | **Approach 3** Returns an [AgentResult](https://strandsagents.com/latest/api-reference/agent/#strands.agent.agent_result.AgentResult) (Primary) with messages and a reason for the run's completion. | **Approach 2** [Streams events](https://strandsagents.com/latest/api-reference/agent/#strands.agent.agent.Agent.stream_async) (Primary+Secondary) including, response text, current_tool_use, even data from "callbacks" (strands plugins) |
| AWS (Strands) | **Approach 3** Returns an [AgentResult](https://strandsagents.com/latest/documentation/docs/api-reference/python/agent/agent_result/) (Primary) with messages and a reason for the run's completion. | **Approach 2** [Streams events](https://strandsagents.com/latest/documentation/docs/api-reference/python/agent/agent/#strands.agent.agent.Agent.stream_async) (Primary+Secondary) including, response text, current_tool_use, even data from "callbacks" (strands plugins) |
| LangGraph | **Approach 2** A mixed list of all [messages](https://langchain-ai.github.io/langgraph/agents/run_agents/#output-format) | **Approach 2** A mixed list of all [messages](https://langchain-ai.github.io/langgraph/agents/run_agents/#output-format) |
| Agno | **Combination of various approaches** Returns a [RunResponse](https://docs.agno.com/reference/agents/run-response) object with text content, messages (essentially chat history including inputs and instructions), reasoning and thinking text properties. Secondary events could potentially be extracted from messages. | **Approach 2** Returns [RunResponseEvent](https://docs.agno.com/reference/agents/run-response#runresponseevent-types-and-attributes) objects including tool call, memory update, etc, information, where the [RunResponseCompletedEvent](https://docs.agno.com/reference/agents/run-response#runresponsecompletedevent) has similar properties to RunResponse|
| A2A | **Approach 3** Returns a [Task or Message](https://a2aproject.github.io/A2A/latest/specification/#71-messagesend) where the message is the final result (Primary) and task is a reference to a long running process. | **Approach 2** Returns a [stream](https://a2aproject.github.io/A2A/latest/specification/#72-messagestream) that contains task updates (Secondary) and a final message (Primary) |
Expand Down Expand Up @@ -495,8 +495,8 @@ We need to decide what AIContent types, each agent response type will be mapped
| SDK | Structured Outputs support |
|-|-|
| AutoGen | **Approach 1** Supports [configuring an agent](https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/tutorial/agents.html#structured-output) at agent creation. |
| Google ADK | **Approach 1** Both [input and output shemas can be specified for LLM Agents](https://google.github.io/adk-docs/agents/llm-agents/#structuring-data-input_schema-output_schema-output_key) at construction time. This option is specific to this agent type and other agent types do not necessarily support |
| AWS (Strands) | **Approach 2** Supports a special invocation method called [structured_output](https://strandsagents.com/latest/api-reference/agent/#strands.agent.agent.Agent.structured_output) |
| Google ADK | **Approach 1** Both [input and output schemas can be specified for LLM Agents](https://google.github.io/adk-docs/agents/llm-agents/#structuring-data-input_schema-output_schema-output_key) at construction time. This option is specific to this agent type and other agent types do not necessarily support |
| AWS (Strands) | **Approach 2** Supports a special invocation method called [structured_output](https://strandsagents.com/latest/documentation/docs/api-reference/python/agent/agent/#strands.agent.agent.Agent.structured_output) |
| LangGraph | **Approach 1** Supports [configuring an agent](https://langchain-ai.github.io/langgraph/agents/agents/?h=structured#6-configure-structured-output) at agent construction time, and a [structured response](https://langchain-ai.github.io/langgraph/agents/run_agents/#output-format) can be retrieved as a special property on the agent response |
| Agno | **Approach 1** Supports [configuring an agent](https://docs.agno.com/examples/getting-started/structured-output) at agent construction time |
| A2A | **Informal Approach 2** Doesn't formally support schema negotiation, but [hints can be provided via metadata](https://a2a-protocol.org/latest/specification/#97-structured-data-exchange-requesting-and-providing-json) at invocation time |
Expand All @@ -508,7 +508,7 @@ We need to decide what AIContent types, each agent response type will be mapped
|-|-|
| AutoGen | Supports a [stop reason](https://microsoft.github.io/autogen/stable/reference/python/autogen_agentchat.base.html#autogen_agentchat.base.TaskResult.stop_reason) which is a freeform text string |
| Google ADK | [No equivalent present](https://github.com/google/adk-python/blob/main/src/google/adk/events/event.py) |
| AWS (Strands) | Exposes a [stop_reason](https://strandsagents.com/latest/api-reference/types/#strands.types.event_loop.StopReason) property on the [AgentResult](https://strandsagents.com/latest/api-reference/agent/#strands.agent.agent_result.AgentResult) class with options that are tied closely to LLM operations. |
| AWS (Strands) | Exposes a [stop_reason](https://strandsagents.com/latest/documentation/docs/api-reference/python/types/event_loop/#strands.types.event_loop.StopReason) property on the [AgentResult](https://strandsagents.com/latest/documentation/docs/api-reference/python/agent/agent_result/) class with options that are tied closely to LLM operations. |
| LangGraph | No equivalent present, output contains only [messages](https://langchain-ai.github.io/langgraph/agents/run_agents/#output-format) |
| Agno | [No equivalent present](https://docs.agno.com/reference/agents/run-response) |
| A2A | No equivalent present, response only contains a [message](https://a2a-protocol.org/latest/specification/#64-message-object) or [task](https://a2a-protocol.org/latest/specification/#61-task-object). |
Expand Down
6 changes: 3 additions & 3 deletions dotnet/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
</PropertyGroup>
<ItemGroup>
<!-- Aspire.* -->
<PackageVersion Include="Anthropic" Version="12.0.0" />
<PackageVersion Include="Anthropic" Version="12.0.1" />
<PackageVersion Include="Anthropic.Foundry" Version="0.1.0" />
<PackageVersion Include="Aspire.Azure.AI.OpenAI" Version="13.0.0-preview.1.25560.3" />
<PackageVersion Include="Aspire.Hosting.AppHost" Version="$(AspireAppHostSdkVersion)" />
Expand All @@ -26,7 +26,7 @@
<PackageVersion Include="Azure.Identity" Version="1.17.1" />
<PackageVersion Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.4.0" />
<!-- Google Gemini -->
<PackageVersion Include="Google.GenAI" Version="0.6.0" />
<PackageVersion Include="Google.GenAI" Version="0.9.0" />
<PackageVersion Include="Mscc.GenerativeAI.Microsoft" Version="2.9.3" />
<!-- Microsoft.Azure.* -->
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.54.0" />
Expand Down Expand Up @@ -100,7 +100,7 @@
<!-- MCP -->
<PackageVersion Include="ModelContextProtocol" Version="0.4.0-preview.3" />
<!-- Inference SDKs -->
<PackageVersion Include="AWSSDK.Extensions.Bedrock.MEAI" Version="4.0.5" />
<PackageVersion Include="AWSSDK.Extensions.Bedrock.MEAI" Version="4.0.5.1" />
<PackageVersion Include="Microsoft.ML.OnnxRuntimeGenAI" Version="0.10.0" />
<PackageVersion Include="OllamaSharp" Version="5.4.8" />
<PackageVersion Include="OpenAI" Version="2.8.0" />
Expand Down
6 changes: 3 additions & 3 deletions dotnet/nuget/nuget-package.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<PropertyGroup>
<!-- Central version prefix - applies to all nuget packages. -->
<VersionPrefix>1.0.0</VersionPrefix>
<PackageVersion Condition="'$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix).251219.1</PackageVersion>
<PackageVersion Condition="'$(VersionSuffix)' == ''">$(VersionPrefix)-preview.251219.1</PackageVersion>
<GitTag>1.0.0-preview.251219.1</GitTag>
<PackageVersion Condition="'$(VersionSuffix)' != ''">$(VersionPrefix)-$(VersionSuffix).260108.1</PackageVersion>
<PackageVersion Condition="'$(VersionSuffix)' == ''">$(VersionPrefix)-preview.260108.1</PackageVersion>
<GitTag>1.0.0-preview.260108.1</GitTag>

<Configurations>Debug;Release;Publish</Configurations>
<IsPackable>true</IsPackable>
Expand Down
Loading
Loading