Skip to content

Commit 7cd0684

Browse files
authored
Merge branch 'dotnet:main' into main
2 parents a72eede + 4dd6d45 commit 7cd0684

File tree

182 files changed

+2369
-701
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+2369
-701
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
/docs/machine-learning/ @gewarren @luisquintanilla @JakeRadMSFT @dotnet/docs
5656

5757
# The .NET Architecture Guide:
58-
/docs/architecture/ @nishanil @IEvangelist @dotnet/docs
58+
/docs/architecture/ @IEvangelist @dotnet/docs
5959

6060
# .NET Orleans
6161
/docs/orleans/ @IEvangelist @dotnet/docs
@@ -120,9 +120,9 @@
120120
# Testing
121121
/docs/core/testing/ @IEvangelist @dotnet/docs
122122
# Tools
123-
/docs/core/tools/ @adegeo @dotnet/docs
123+
/docs/core/tools/ @meaghanlewis @dotnet/docs
124124
# Tutorials
125-
/docs/core/tutorials/ @BillWagner @dotnet/docs
125+
/docs/core/tutorials/ @meaghanlewis @dotnet/docs
126126
# What's new
127127
/docs/core/whats-new/ @dotnet/docs
128128

.github/prompts/breaking-change.md

Lines changed: 71 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,98 @@
1-
When you're assigned an issue that's labeled "breaking-change", or when you're given a link to an issue with this prompt file as context and asked to create a new breaking change document, follow these guidelines:
1+
# Copilot-Optimized Instructions: Breaking Change Documentation
22

3-
The document should be in Markdown format.
3+
## When to use this prompt
44

5-
Ignore all breaking change documentation under https://github.com/dotnet/docs/tree/main/docs/framework/migration-guide - that's for legacy .NET Framework breaking changes. Modern .NET breaking changes live in the https://github.com/dotnet/docs/tree/main/docs/core/compatibility folder and its subfolders.
5+
- If assigned an issue labeled `breaking-change`
6+
- If given a link to an issue referencing this prompt and asked to create a breaking change document
67

7-
Rephrase all content to be clear and concise, if necessary.
8+
## General rules
89

9-
Describe previous behavior in past tense and new behavior in present tense.
10+
- **Format:** Use Markdown
11+
- **Scope:**
12+
- Ignore docs under [`docs/framework/migration-guide`](https://github.com/dotnet/docs/tree/main/docs/framework/migration-guide) (for legacy .NET Framework)
13+
- Document ONLY modern .NET breaking changes
14+
- **Writing style:**
15+
- Make content clear and concise
16+
- Previous behavior: **past tense**
17+
- New behavior: **present tense**
1018

11-
The document should start with the following header, including --- characters. Placeholder text is shown in angle brackets.
19+
## Document structure
1220

13-
---
14-
title: "Breaking change - <A concise descriptive title of the breaking change>"
15-
description: "Learn about the breaking change in <product/version without the preview number> where <very brief description>."
16-
ms.date: <Today's date>
17-
ai-usage: ai-assisted
18-
ms.custom: <URL of the issue>
19-
---
21+
Start with this header (replace placeholders):
2022

21-
After the header, include the following sections in this order. Use the description in parentheses as a guide for the content of each section.
23+
```
24+
---
25+
title: "Breaking change - <Concise descriptive title>"
26+
description: "Learn about the breaking change in <product/version without preview> where <brief description>."
27+
ms.date: <Today's date in MM/DD/YYYY format>
28+
ai-usage: ai-assisted
29+
ms.custom: <URL of the issue>
30+
---
31+
```
32+
> **Note:** Use today's date in the format MM/DD/YYYY. This date cannot be earlier than 9/29/2025.
2233
23-
h1: "(The same title used in the document header, sans 'Breaking Change - ')"
34+
Then include these sections in this order:
2435

25-
(An introductory paragraph summarizing the breaking change. Include the major version but not the preview number.)
36+
### 1. H1 Title
2637

27-
h2: Version introduced
38+
- Use the header title, **removing "Breaking change - "**.
2839

29-
(The version in which the breaking change was introduced. Include the preview number here, if given.)
40+
**Intro paragraph:**
41+
Summarize the breaking change. Include the major version (omit preview number).
3042

31-
h2: Previous behavior
43+
### 2. Version introduced
3244

33-
(A brief description of the behavior before the change, including an example code snippet if applicable.)
45+
- Version where change was introduced (include preview number if applicable).
3446

35-
h2: New behavior
47+
### 3. Previous behavior
3648

37-
(A brief description of the behavior after the change, including an example code snippet if applicable.)
49+
- Briefly describe past behavior.
50+
- Include example code snippets if relevant.
3851

39-
h2: Type of breaking change
52+
### 4. New behavior
4053

41-
If the type of breaking change is "behavioral change", add the following sentence (without the backticks): `This is a [behavioral change](../../categories.md#behavioral-change).`
54+
- Briefly describe new behavior.
55+
- Include example code snippets if relevant.
4256

43-
If the type of breaking change is "source incompatible" or "binary incompatible", add the following sentence (without the backticks): `This change can affect [source compatibility](../../categories.md#source-compatibility).` or `This change can affect [binary compatibility](../../categories.md#binary-compatibility).`
57+
### 5. Type of breaking change
4458

45-
If the issue lists multiple types of breaking changes, create a single sentence that links to each applicable type, such as "This is both a []() and []() change.". If there is no type of breaking change selected in the issue, write "TODO: Add type of breaking change."
59+
- If **behavioral change**:
60+
`This is a [behavioral change](../../categories.md#behavioral-change).`
61+
- If **source or binary incompatible**:
62+
`This change can affect [source compatibility](../../categories.md#source-incompatible) and/or [binary compatibility](../../categories.md#binary-incompatible).`
63+
- If multiple types:
64+
Link to each type in a single sentence.
65+
- If none specified:
66+
State "No specific type listed."
4667

47-
h2: Reason for change
68+
### 6. Reason for change
4869

49-
(The complete reasoning behind the change, including any relevant links.)
70+
- Explain why the change was made.
71+
- Include relevant links.
5072

51-
h2: Recommended action
73+
### 7. Recommended action
5274

53-
(A brief description of the action or actions that users should take, including example code snippets if applicable.)
75+
- Describe what users should do to adapt.
76+
- Include code examples if helpful.
5477

55-
h2: Affected APIs
78+
### 8. Affected APIs
5679

57-
(A bullet list of APIs that are affected by the change. If there are no affected APIs (or "No response") write "None.". Use xref-style links as described in the copilot-instructions.md file. At the end of each doc ID, add "?displayProperty=fullName", for example "<xref:System.String?displayProperty=fullName>".)
80+
- Bullet list of affected APIs.
81+
- Use **xref-style links** as described in `copilot-instructions.md`.
82+
- If none: Write "None."
5883

59-
Then, add the new document to the TOC file located at https://github.com/dotnet/docs/blob/main/docs/core/compatibility/toc.yml. Also add an entry to the index file under the appropriate area H2 heading in the https://github.com/dotnet/docs/blob/main/docs/core/compatibility/10.0.md file by adding a row to the table (create a new heading/table if it doesn't exist yet).
84+
## Final steps
6085

61-
Next, create a pull request. In the description, include the text "Fixes #\<issue-number>", where "issue-number" is the GitHub issue number.
86+
- **Add the new doc to the [TOC file](https://github.com/dotnet/docs/blob/main/docs/core/compatibility/toc.yml).**
87+
- **Add an entry to the index file under the appropriate area H2 heading.**
88+
- **Create a pull request.**
89+
- In the description, include: `Fixes #<issue-number>` (replace with the correct number).
90+
- Request review on the pull request from the person who opened the issue.
91+
- Also check the relevant API docs, if applicable, and update them in the https://github.com/dotnet/dotnet-api-docs repo to reflect the breaking change.
92+
93+
---
94+
95+
**Copilot optimization notes:**
96+
- All steps and formatting are condensed and clarified for rapid, accurate document drafting.
97+
- Section ordering and linking instructions are explicit for automation.
98+
- Xref/linking and PR closing instructions are surfaced for easy action.

.github/workflows/dependency-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ jobs:
2424
- name: 'Checkout Repository'
2525
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
2626
- name: 'Dependency Review'
27-
uses: actions/dependency-review-action@595b5aeba73380359d98a5e087f648dbb0edce1b # v4.7.3
27+
uses: actions/dependency-review-action@56339e523c0409420f6c2c9a2f4292bbb3c07dd3 # v4.8.0

.github/workflows/scorecards.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
persist-credentials: false
4242

4343
- name: "Run analysis"
44-
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
44+
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
4545
with:
4646
results_file: results.sarif
4747
results_format: sarif
@@ -71,6 +71,6 @@ jobs:
7171

7272
# Upload the results to GitHub's code scanning dashboard.
7373
- name: "Upload to code-scanning"
74-
uses: github/codeql-action/upload-sarif@192325c86100d080feab897ff886c34abd4c83a3 # v3.29.5
74+
uses: github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.29.5
7575
with:
7676
sarif_file: results.sarif

.openpublishing.redirection.ai.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99
"redirect_url": "/dotnet/ai/microsoft-extensions-ai",
1010
"redirect_document_id": true
1111
},
12-
{
13-
"source_path_from_root": "/docs/ai/conceptual/agents.md",
14-
"redirect_url": "/dotnet/ai"
15-
},
1612
{
1713
"source_path_from_root": "/docs/ai/conceptual/evaluation-libraries.md",
1814
"redirect_url": "/dotnet/ai/evaluation/libraries",

docfx.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,8 @@
365365
"docs/core/project-sdk/**/**.md": "gewarren",
366366
"docs/core/runtime-config/**/**.md": "gewarren",
367367
"docs/core/testing/**/**.md": "IEvangelist",
368-
"docs/core/tools/**/**.md": "adegeo",
369-
"docs/core/tutorials/**/**.md": "billwagner",
368+
"docs/core/tools/**/**.md": "meaghanlewis",
369+
"docs/core/tutorials/**/**.md": "meaghanlewis",
370370
"docs/core/versions/**/**.md": "billwagner",
371371
"docs/core/whats-new/**/**.md": "gewarren",
372372
"docs/csharp/**/*.*": "billwagner",
@@ -458,8 +458,8 @@
458458
"docs/core/project-sdk/**/**.md": "gewarren",
459459
"docs/core/runtime-config/**/**.md": "gewarren",
460460
"docs/core/testing/**/**.md": "dapine",
461-
"docs/core/tools/**/**.md": "adegeo",
462-
"docs/core/tutorials/**/**.md": "wiwagn",
461+
"docs/core/tools/**/**.md": "mosagie",
462+
"docs/core/tutorials/**/**.md": "mosagie",
463463
"docs/core/versions/**/**.md": "wiwagn",
464464
"docs/core/whats-new/**/**.md": "gewarren",
465465
"docs/csharp/**/*.*": "wiwagn",

docs/ai/conceptual/agents.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
title: Agents
3+
description: Introduction to agents
4+
author: luisquintanilla
5+
ms.author: luquinta
6+
ms.date: 10/01/2025
7+
ms.topic: concept-article
8+
---
9+
10+
# Agents
11+
12+
This article introduces the core concepts behind agents, why they matter, and how they fit into workflows, setting you up to get started building agents in .NET.
13+
14+
## What are agents?
15+
16+
**Agents are systems that accomplish objectives.**
17+
18+
![Components of an agent](../media/agents/agent-components.png)
19+
20+
Agents become more capable when equipped with the following:
21+
22+
- **Reasoning and decision-making**: Powered by LLMs, search algorithms, or planning and decision-making systems.
23+
- **Tool usage**: Access to Model Context Protocol (MCP) servers, code execution, and external APIs.
24+
- **Context awareness**: Informed by chat history, threads, vector stores, enterprise data, or knowledge graphs.
25+
26+
These capabilities allow agents to operate more autonomously, adaptively, and intelligently.
27+
28+
## What are workflows?
29+
30+
As objectives grow in complexity, they need to be broken down into manageable steps. That's where workflows come in.
31+
32+
**Workflows define the sequence of steps required to achieve an objective.**
33+
34+
Imagine you're launching a new feature on your business website. If it's a simple update, you might go from idea to production in a few hours. But for more complex initiatives, the process might include:
35+
36+
- Requirement gathering
37+
- Design and architecture
38+
- Implementation
39+
- Testing
40+
- Deployment
41+
42+
A few important observations:
43+
44+
- Each step might contain subtasks.
45+
- Different specialists might own different phases.
46+
- Progress isn’t always linear. Bugs found during testing might send you back to implementation.
47+
- Success depends on planning, orchestration, and communication across stakeholders.
48+
49+
### Agents + workflows = agentic workflows
50+
51+
Workflows don't require agents, but agents can supercharge them.
52+
53+
When agents are equipped with reasoning, tools, and context, they can optimize workflows.
54+
55+
This is the foundation of multi-agent systems, where agents collaborate within workflows to achieve complex goals.
56+
57+
### Workflow orchestration
58+
59+
Agentic workflows can be orchestrated in a variety of ways. The following are a few of the most common:
60+
61+
- [Sequential](#sequential)
62+
- [Concurrent](#concurrent)
63+
- [Handoff](#handoff)
64+
- [Group chat](#group-chat)
65+
66+
#### Sequential
67+
68+
Agents process tasks one after another, passing results forward.
69+
70+
![Sequential agent orchestration: Task Input → Agent A → Agent B → Agent C → Final Output](../media/agents/sequential-workflow.png)
71+
72+
#### Concurrent
73+
74+
Agents work in parallel, each handling different aspects of the task.
75+
76+
![Concurrent agent orchestration: Task Input → Agents A, B, C → Aggregate Results → Final Output](../media/agents/concurrent-workflow.png)
77+
78+
#### Handoff
79+
80+
Responsibility shifts from one agent to another based on conditions or outcomes.
81+
82+
![Handoff orchestration: Task Input → Agent A Decision → Agent B or Agent A → Agent B Decision → Agent C or Agent B → Final Output](../media/agents/handoff-workflow.png)
83+
84+
#### Group chat
85+
86+
Agents collaborate in a shared conversation, exchanging insights in real-time.
87+
88+
![Group chat orchestration: User and Agents A, B, C collaborate via GroupChat to produce final output](../media/agents/groupchat-workflow.png)
89+
90+
## How can I get started building agents in .NET?
91+
92+
The building blocks in <xref:Microsoft.Extensions.AI> and <xref:Microsoft.Extensions.VectorData> supply the foundations for agents by providing modular components for AI models, tools, and data.
93+
94+
These components serve as the foundation for Microsoft Agent Framework.
95+
96+
For more information, see [Microsoft Agent Framework](/agent-framework/overview/agent-framework-overview).

docs/ai/evaluation/snippets/evaluate-ai-responses/TestAI.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
<ItemGroup>
1212
<PackageReference Include="Azure.AI.OpenAI" Version="2.1.0" />
1313
<PackageReference Include="Azure.Identity" Version="1.16.0" />
14-
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.9.0" />
14+
<PackageReference Include="Microsoft.Extensions.AI.Abstractions" Version="9.9.1" />
1515
<PackageReference Include="Microsoft.Extensions.AI.Evaluation" Version="9.9.0" />
1616
<PackageReference Include="Microsoft.Extensions.AI.Evaluation.Quality" Version="9.9.0" />
1717
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.0-preview.1.25207.5" />
1818
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.9" />
1919
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.9" />
2020
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
21-
<PackageReference Include="MSTest" Version="3.10.4" />
21+
<PackageReference Include="MSTest" Version="3.11.0" />
2222
</ItemGroup>
2323

2424
<ItemGroup>

docs/ai/how-to/snippets/hosted-app-auth/hosted-app-auth.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
<PackageReference Include="Azure.AI.OpenAI" Version="2.1.0" />
1212
<PackageReference Include="Azure.Identity" Version="1.16.0" />
1313
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="9.0.9" />
14-
<PackageReference Include="Microsoft.Extensions.AI" Version="9.9.0" />
14+
<PackageReference Include="Microsoft.Extensions.AI" Version="9.9.1" />
1515
<PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.4.0-preview.1.25207.5" />
16-
<PackageReference Include="Microsoft.Extensions.Azure" Version="1.12.0" />
16+
<PackageReference Include="Microsoft.Extensions.Azure" Version="1.13.0" />
1717
</ItemGroup>
1818

1919
</Project>

docs/ai/index.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ landingContent:
2727
url: overview.md
2828
- text: Microsoft.Extensions.AI libraries
2929
url: microsoft-extensions-ai.md
30+
- text: Microsoft Agent Framework
31+
url: /agent-framework/overview/agent-framework-overview?toc=/dotnet/ai/toc.json&bc=/dotnet/ai/toc.json
3032
- linkListType: get-started
3133
links:
3234
- text: Connect to and prompt an AI model

0 commit comments

Comments
 (0)