Skip to content

Python: Process export #11923

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

alliscode
Copy link
Member

Introducing the FoundryProcesBuilder

Contribution Checklist

TaoChenOSU and others added 30 commits April 24, 2025 00:26
### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
Currently, we don't have a dedicated method to create a clone of a
kernel instance. Using `model_copy(deep=True)` will result in an error
because some service clients aren't serializable.

Being able to clone a kernel will be critical in many scenarios where
developers don't want to mutate the original one that is attached to an
agent or some other objects.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
1. Create a clone method in the `Kernel` class that will return a new
instance of the kernel with the same configuration, including the list
of filters, plugins and the AI selector. It will also include the same
list of services references.
2. Add unit tests and integration tests to ensure the new method works
as expected.

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄
…icrosoft#11700)

### Motivation and Context

If an agent id is provided the existing agent will be retrieved.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
…icrosoft#11646)

### Description
This PR addresses a known issue where omitting the `"extra-parameters":
"pass-through"` header in `HttpClient` results in a `400 Bad Request`
when calling Mistral chat completions.

- **Fixes a critical integration bug** by enforcing the required header
at the extension level if not provided by the user.
- **Adds a unit test** to validate correct injection of the header,
improving coverage and reliability for MistralAI scenarios.

These changes improve robustness, eliminate manual setup pitfalls, and
enhance maintainability for developers integrating Mistral models.

### Contribution Checklist

- [Y] The code builds clean without any errors or warnings
- [Y] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [Y] All unit tests pass, and I have added new tests where possible
- [Y] I didn't break anyone 😄

Fixes microsoft#11634

---------

Co-authored-by: Adit Sheth <[email protected]>
Co-authored-by: Roger Barreto <[email protected]>
### Motivation and Context

Prompty.Core has been updated to support the same format as declarative
agents. This PR updates the code to use the latest version of
Prompty.Core.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
### Description

**PR Title:**

feat(connectors-google): Introduce Gemini Thinking Budget Configuration

Closes 11645

**Description:**

This pull request introduces the `GeminiThinkingConfig` class and the
`ThinkingConfig` property within `GeminiPromptExecutionSettings` to
support the thinking budget feature available in Gemini 2.5 and similar
experimental models.

**Key changes include:**

* Added the `GeminiThinkingConfig` class with a `ThinkingBudget`
property for controlling the number of thinking tokens.
* Implemented validation and clamping logic for the `ThinkingBudget`
property within `GeminiThinkingConfig`, ensuring it adheres to the API
requirements (range 0-24576, with 1-1023 clamped to 1024).
* Added the `ThinkingConfig` property to
`GeminiPromptExecutionSettings`, allowing users to configure the
thinking budget for Gemini 2.5 models.
* Implemented a check within the `ThinkingConfig` property setter to
ensure it's only used with Gemini 2.5 model IDs, throwing an
`InvalidOperationException` otherwise.
* Included comprehensive unit tests to verify the functionality of both
`ThinkingConfig` and `ThinkingBudget`, covering valid and invalid input
scenarios, as well as the model ID restriction.

This enhancement enables developers to leverage the thinking budget
feature for more complex tasks with supported Gemini models.

### Contribution Checklist

- [Y] The code builds clean without any errors or warnings
- [Y] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [Y] All unit tests pass, and I have added new tests where possible
- [Y] I didn't break anyone 😄

Fixes microsoft#11645

---------

Co-authored-by: Adit Sheth <[email protected]>
Co-authored-by: Roger Barreto <[email protected]>
### Motivation, Context and Description

This PR fixes a function-calling-related integration test that was
failing sporadically and recently started to fail consistently:

![image](https://github.com/user-attachments/assets/e08a6cb9-f392-4115-be45-f18fbdd2ac40)

Upon investigation, it appeared that this test set the temperature to
0.1 in addition to enabling auto function calling. This led to a 70%
failure rate (7 out of 10 runs failed). After removing the temperature
setting, the failure rate dropped to 0.
…AssistantAgent, and OpenAIResponsesAgent (microsoft#11705)

### Motivation and Context

Based on feedback, there are customer scenarios where it can be helpful
to be able to pass in run-level polling options, instead of only at the
agent definition/constructor level.

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

Add run-level run polling options parameter.

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄
### Motivation, Context and Description

This PR adds an operation selector predicate that can include or exclude
operations based on id, method, path, and description. It also obsoletes
the `OperationsToExclude` exclusion list, which is limited to filtering
out operations by operation id only.

Closes: microsoft#10514
### Motivation, Context and Description

This PR stops publishing OpenAI and Handlebars planners as NuGet
packages.

Contributes to:
microsoft#10070
…soft#11744)

### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
We are currently not returning the thread id and run id from the Azure
AI and Assistant agents. These properties will be useful for evaluation
purposes.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->
Return the thread id and run id in the agent response metadata.


### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄
…osoft#11745)

### Motivation, Context and Description

This PR removes the experimental attribute from the API that was
introduced a while ago and can be considered stable. Additionally, it
enables package validation.

Contributes to:
microsoft#10070
…ep (microsoft#11518)

### Motivation and Context

Improve coverage for azure_cosmos_db_mongodb_collection and local_step
classes.

### Description

New test files:
- test_azure_cosmos_db_mongodb_collection.py
- test_local_step.py

### Contribution Checklist

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄

---------

Co-authored-by: Gaudy Blanco <[email protected]>
…icrosoft#11772)

### Motivation and Context

Core is very close to the code coverage threshold so excluding some
functions from code coverage

1. CaptureUsageDetails
2. CreatePluginFromPromptDirectory no longer a recommended pattern
3. MemoryBuilder and SemanticTextMemory are being deprecated

### Description

Before

![image](https://github.com/user-attachments/assets/49780beb-33b5-404e-95ec-cd4b6c52dab6)

After

![image](https://github.com/user-attachments/assets/d131ce1c-f91d-4600-b2be-5889f3b54234)

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
### Motivation and Context

SK Python processes have been missing support to be able to serialize
and deserialize JSON state for a process and its steps. This PR brings
in the functionality to allow the developer to do so. The
`getting_started_with_processes` step03 has been update to reflect this
latest functionality. It is possible to dump a JSON state to a file, and
reload the state to continue running the process.

State metadata that handles the version for steps is managed via a
decorator:

```python
@kernel_process_step_metadata("CutFoodStep.V1")
class CutFoodStep(KernelProcessStep):
    class Functions(Enum):
        ChopFood = "ChopFood"
        SliceFood = "SliceFood"
```

If no decorator/state is supplied the step will be built with a default
state version of "v1" which aligns with .Net.

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

Support state and versioning management for Python processes.
- Update samples to reflect changes.
- Closes microsoft#9584

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
### Motivation and Context

Bump Python version to 1.29.0 for a release.

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

Bump Python version to 1.29.0 for a release.

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄
### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Vincent Biret <[email protected]>
Co-authored-by: Shay Rojansky <[email protected]>
Co-authored-by: Evan Mattson <[email protected]>
Co-authored-by: Dmytro Struk <[email protected]>
Co-authored-by: Chris <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tao Chen <[email protected]>
Co-authored-by: Roger Barreto <[email protected]>
Co-authored-by: Mark Wallace <[email protected]>
Co-authored-by: Estefanía Tenorio <[email protected]>
Co-authored-by: davidpene <[email protected]>
Co-authored-by: ThDuquennoy <[email protected]>
Co-authored-by: Thomas DUQUENNOY <[email protected]>
Co-authored-by: Eduard van Valkenburg <[email protected]>
Co-authored-by: Evan Mattson <[email protected]>
Co-authored-by: Rob Emanuele <[email protected]>
Co-authored-by: K. Andrew Parker <[email protected]>
Co-authored-by: SergeyMenshykh <[email protected]>
Co-authored-by: jenfoxbot <[email protected]>
Co-authored-by: Ben Thomas <[email protected]>
Co-authored-by: Ben Thomas <[email protected]>
Co-authored-by: Adit Sheth <[email protected]>
Co-authored-by: Adit Sheth <[email protected]>
Co-authored-by: ふぁー <[email protected]>
Co-authored-by: Vincent Biret <[email protected]>
Co-authored-by: David A. Torres <[email protected]>
Co-authored-by: Genevieve Warren <[email protected]>
Co-authored-by: Atiqur Rahman Foyshal <[email protected]>
Co-authored-by: Md. Atiqur Rahman Foyshal <[email protected]>
Co-authored-by: Fabian Williams <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: Ram.Type-0 <[email protected]>
Co-authored-by: Tommy Falgout <[email protected]>
Co-authored-by: Gary Tang <[email protected]>
Co-authored-by: Eirik Tsarpalis <[email protected]>
Co-authored-by: Tommaso Stocchi <[email protected]>
Co-authored-by: Chris Rickman <[email protected]>
Co-authored-by: Devis Lucato <[email protected]>
Co-authored-by: K. Andrew Parker <[email protected]>
Co-authored-by: Jose Luis Latorre Millas <[email protected]>
Co-authored-by: Carsten Lemm <[email protected]>
Co-authored-by: Stephen Toub <[email protected]>
Co-authored-by: Musale Martin <[email protected]>
Co-authored-by: Ross Smith <[email protected]>
Co-authored-by: Adam Sitnik <[email protected]>
Co-authored-by: Rodrigo Martins Racanicci <[email protected]>
Co-authored-by: unsafecode <[email protected]>
Co-authored-by: QuocDatHoang <[email protected]>
Co-authored-by: Dat Hoang Quoc <[email protected]>
Co-authored-by: Damien Guard <[email protected]>
…I 3.0 (microsoft#11751)

### Motivation and Context

Similar to the StructuredOutput solution, this fix will now also cover
the Tool generation when the StructuredOutput feature is not used.

This change also brings a new Integration test to ensure the compatible
behavior as well as a sample inspired in the reproduction code in the
issue below.

- Fixes microsoft#11675
…11747)

### Motivation and Context
<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

Ensure unit-tests for the Agent Runtime are being included in the github
workflows.

### Description
<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

Noticed that the agent runtime projects weren't reporting any coverage
in github build action. Realized the workflows are selecting on projects
with the `UnitTest` suffix.

Example Log (no coverage):
https://github.com/microsoft/semantic-kernel/actions/runs/14673168889/job/41184172441

With this change:


![image](https://github.com/user-attachments/assets/5cd91855-3312-4a81-8e76-eb38aa233ac3)

### Contribution Checklist
<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄
### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->
The mongo link in one of the ADR's was gone, replaced.

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
SergeyMenshykh and others added 11 commits May 6, 2025 10:33
### Motivation, Context and Description

This PR:
1. Propagates the cancellation token from all kernel functions of the
`SessionsPythonPlugin` plugin down to the APIs they call.
2. Refactors the way the plugin adds headers to the request. Instead of
adding them as default headers of the HTTP client, they are now added as
request headers. The result is the same - the headers are sent each call
of any kernel function of the plugin. This change may save time later by
preventing bug troubleshooting if/when an HTTP client is injected into
the plugin and it sets default headers to the client it does not own.
3. Replaces the usage of HTTP client methods for getting content, such
as `ReadAsStringAsync`, with the SK wrappers
`ReadAsStringWithExceptionMappingAsync` to align the plugin's behavior
with that of other SK components.

Contributes to:
microsoft#10070
)

### Motivation and Context

Convert lists of strings to a string value correctly

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
…soft#11728)

### Motivation and Context

Currently, `CreatePluginFromApiManifestAsync `does not work when
referencing a local filepath for the apiDescriptionIUrl in the
`apiDependencies `section. For details, see
microsoft#11564

### Description

The fix involves setting the BasePath of the OpenApiStreamReader to the
previously parsed url value instead of the original value. Unittests and
sample data included.

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone 😄

Hope this PR is suitable. Cheers, Alexander

---------

Co-authored-by: SergeyMenshykh <[email protected]>
…crosoft#11792)

Bumps
[Microsoft.ML.Tokenizers](https://github.com/dotnet/machinelearning)
from 1.0.1 to 1.0.2.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/dotnet/machinelearning/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Microsoft.ML.Tokenizers&package-manager=nuget&previous-version=1.0.1&new-version=1.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…et (microsoft#11793)

Bumps [Aspire.Azure.Search.Documents](https://github.com/dotnet/aspire)
from 9.1.0 to 9.2.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/dotnet/aspire/releases">Aspire.Azure.Search.Documents's
releases</a>.</em></p>
<blockquote>
<h2>.NET Aspire 9.2.1 Release</h2>
<p>We are excited to share that our 9.2.1 release of .NET Aspire has
shipped! All of the packages are available in NuGet.org now. Try it out
and share your feedback 😃</p>
<h2>What's Changed</h2>
<ul>
<li>[release/9.2] Fix AE in ExecutableResource by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/8864">dotnet/aspire#8864</a></li>
<li>[release/9.2] Don't fail for Azure role assignments in run mode by
<a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/8807">dotnet/aspire#8807</a></li>
<li>[release/9.2] Fixed resolving secrets for keyvault references in run
mode by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/8755">dotnet/aspire#8755</a></li>
<li>Update test files to show 9.2.1 patched version to fix tests by <a
href="https://github.com/joperezr"><code>@​joperezr</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/8903">dotnet/aspire#8903</a></li>
<li>[release/9.2] Ensure visible trace spans stay sorted by start time
and fix Traces view expand/collapse icons by <a
href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/8909">dotnet/aspire#8909</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/dotnet/aspire/compare/v9.2.0...v9.2.1">https://github.com/dotnet/aspire/compare/v9.2.0...v9.2.1</a></p>
<h2>.NET Aspire 9.2.0 Release</h2>
<p>We are excited to share that our 9.2.0 release of .NET Aspire has
shipped! All of the packages are available in NuGet.org now. Please
check out <a
href="https://learn.microsoft.com/dotnet/aspire/whats-new/dotnet-aspire-9.2">what's
new</a> in this release. Try it out and share your feedback 😃</p>
<h2>What's Changed</h2>
<ul>
<li>Update branding to 9.2.0 by <a
href="https://github.com/wtgodbe"><code>@​wtgodbe</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7542">dotnet/aspire#7542</a></li>
<li>Update Dcp out of date error message by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7539">dotnet/aspire#7539</a></li>
<li>Localized file check-in by OneLocBuild Task: Build definition ID
1309: Build ID 2640743 by <a
href="https://github.com/dotnet-bot"><code>@​dotnet-bot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7545">dotnet/aspire#7545</a></li>
<li>Fix metrics page instruments not updating when added by <a
href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7549">dotnet/aspire#7549</a></li>
<li>Run tests on release branches by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7567">dotnet/aspire#7567</a></li>
<li>[main] Update dependencies from dotnet/arcade by <a
href="https://github.com/dotnet-maestro"><code>@​dotnet-maestro</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7578">dotnet/aspire#7578</a></li>
<li>Support WithEntrypoint on Containers by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7577">dotnet/aspire#7577</a></li>
<li>Fix Elasticsearch function test by <a
href="https://github.com/sebastienros"><code>@​sebastienros</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7547">dotnet/aspire#7547</a></li>
<li>Bump the priority of processing paramters to avoid infinite
recursion by <a
href="https://github.com/davidfowl"><code>@​davidfowl</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7588">dotnet/aspire#7588</a></li>
<li>Fix up xml docs on ServiceBus change. by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7581">dotnet/aspire#7581</a></li>
<li>Localized file check-in by OneLocBuild Task: Build definition ID
1309: Build ID 2642304 by <a
href="https://github.com/dotnet-bot"><code>@​dotnet-bot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7585">dotnet/aspire#7585</a></li>
<li>Allow for nested children in the dashboard by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7604">dotnet/aspire#7604</a></li>
<li>Add WithParentRelationship overload accepting an IResourceBuilder by
<a href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7615">dotnet/aspire#7615</a></li>
<li>Fix release branches in tests GH action by <a
href="https://github.com/eerhardt"><code>@​eerhardt</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7614">dotnet/aspire#7614</a></li>
<li>Improve testing templates by <a
href="https://github.com/DamianEdwards"><code>@​DamianEdwards</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7619">dotnet/aspire#7619</a></li>
<li>Fix metrics instruments not updating in mobile view by <a
href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7608">dotnet/aspire#7608</a></li>
<li>Reuse Event Hubs client for health checks by <a
href="https://github.com/sebastienros"><code>@​sebastienros</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7625">dotnet/aspire#7625</a></li>
<li>add logging after tests by <a
href="https://github.com/danmoseley"><code>@​danmoseley</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7637">dotnet/aspire#7637</a></li>
<li>Fix console logs menu buttons not updated with resource by <a
href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7639">dotnet/aspire#7639</a></li>
<li>Update Microsoft.Extensions.AI to 9.3.0-preview.1.25114.11 by <a
href="https://github.com/stephentoub"><code>@​stephentoub</code></a> in
<a
href="https://redirect.github.com/dotnet/aspire/pull/7643">dotnet/aspire#7643</a></li>
<li>Bump the azure group with 5 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7646">dotnet/aspire#7646</a></li>
<li>Bump the orleans group with 6 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7648">dotnet/aspire#7648</a></li>
<li>fix casing of CosmosDB by <a
href="https://github.com/danmoseley"><code>@​danmoseley</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7635">dotnet/aspire#7635</a></li>
<li>Localized file check-in by OneLocBuild Task: Build definition ID
1309: Build ID 2645400 by <a
href="https://github.com/dotnet-bot"><code>@​dotnet-bot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7658">dotnet/aspire#7658</a></li>
<li>Fix resource cleanup in ungraceful shutdown tests by <a
href="https://github.com/ReubenBond"><code>@​ReubenBond</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7663">dotnet/aspire#7663</a></li>
<li>Add WaitBehavior to WaitForResourceHealthyAsync by <a
href="https://github.com/mitchdenny"><code>@​mitchdenny</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7650">dotnet/aspire#7650</a></li>
<li>Avoid unnecessary containers in Aspire.Hosting.Testing.Tests by <a
href="https://github.com/ReubenBond"><code>@​ReubenBond</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7666">dotnet/aspire#7666</a></li>
<li>Use explicit interface implementation for
IResourceWithAzureFunctionsConfig by <a
href="https://github.com/captainsafia"><code>@​captainsafia</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7667">dotnet/aspire#7667</a></li>
<li>Mitchdenny/wait-behavior-follow-up by <a
href="https://github.com/mitchdenny"><code>@​mitchdenny</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7668">dotnet/aspire#7668</a></li>
<li>Don't skip event hub health checks by <a
href="https://github.com/sebastienros"><code>@​sebastienros</code></a>
in <a
href="https://redirect.github.com/dotnet/aspire/pull/7670">dotnet/aspire#7670</a></li>
<li>Bump Microsoft.Playwright from 1.49.0 to 1.50.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7390">dotnet/aspire#7390</a></li>
<li>Update AzureSignalRServiceMode namespace by <a
href="https://github.com/vicancy"><code>@​vicancy</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7678">dotnet/aspire#7678</a></li>
<li>Create Login page EditContext before async work by <a
href="https://github.com/JamesNK"><code>@​JamesNK</code></a> in <a
href="https://redirect.github.com/dotnet/aspire/pull/7671">dotnet/aspire#7671</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/dotnet/aspire/commit/b590865a294feaff82f06c4fadef62ba1fad2271"><code>b590865</code></a>
Ensure visible trace spans stay sorted by start time (<a
href="https://redirect.github.com/dotnet/aspire/issues/8909">#8909</a>)</li>
<li><a
href="https://github.com/dotnet/aspire/commit/2b55ce1bb651e98de6386c13b2a65368c912a4e2"><code>2b55ce1</code></a>
Merge pull request <a
href="https://redirect.github.com/dotnet/aspire/issues/8903">#8903</a>
from joperezr/FixTests</li>
<li><a
href="https://github.com/dotnet/aspire/commit/339673bc353a3cf412d37bff0e1807416796690a"><code>339673b</code></a>
Update test files to show 9.2.1 patched version to fix tests</li>
<li><a
href="https://github.com/dotnet/aspire/commit/71871535ee176643992f88ad2c046109970b7ba3"><code>7187153</code></a>
[release/9.2] Fixed resolving secrets for keyvault references in run
mode (<a
href="https://redirect.github.com/dotnet/aspire/issues/8">#8</a>...</li>
<li><a
href="https://github.com/dotnet/aspire/commit/8de8d4bf3019cdb0cc86a944bff9a38246623a31"><code>8de8d4b</code></a>
[release/9.2] Don't fail for Azure role assignments in run mode (<a
href="https://redirect.github.com/dotnet/aspire/issues/8807">#8807</a>)</li>
<li><a
href="https://github.com/dotnet/aspire/commit/4b42283782eef6569910b86d1c7758a0fde9915f"><code>4b42283</code></a>
Merge pull request <a
href="https://redirect.github.com/dotnet/aspire/issues/8864">#8864</a>
from dotnet/backport/pr-8797-to-release/9.2</li>
<li><a
href="https://github.com/dotnet/aspire/commit/3bb6930ebe5fba117ba44d410b3a994df3b2518c"><code>3bb6930</code></a>
Branding for 9.2.1</li>
<li><a
href="https://github.com/dotnet/aspire/commit/ef6f857e1206639c71c40e8cd3d2520593f7a835"><code>ef6f857</code></a>
more tests</li>
<li><a
href="https://github.com/dotnet/aspire/commit/4a1aaa452c14954e613faef26ede7704cee90d47"><code>4a1aaa4</code></a>
Fix AE in ExecutableResource</li>
<li><a
href="https://github.com/dotnet/aspire/commit/b8c8b4715e95bf5d3b72da55bcf9f2314c76d68c"><code>b8c8b47</code></a>
Fix AE in ExecutableResource</li>
<li>Additional commits viewable in <a
href="https://github.com/dotnet/aspire/compare/v9.1.0...v9.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Aspire.Azure.Search.Documents&package-manager=nuget&previous-version=9.1.0&new-version=9.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The path is wrong

### Motivation and Context

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [ ] The code builds clean without any errors or warnings
- [ ] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
… effects (microsoft#11849)

### Motivation and Context

Some functions and methods were using mutable objects (typically `dict`)
as default argument values.
In Python, default arguments are evaluated only once at the time of
function definition.
This can lead to unexpected behavior when the default value is modified
within the function, as subsequent calls to the function may reuse the
modified object.

As a result, calling such functions or methods multiple times can lead
to unintended behavior.

Reference:  
[8.7. Function definitions (Official Python
Documentation)](https://docs.python.org/3.12/reference/compound_stmts.html#function-definitions)
> Default parameter values are evaluated from left to right when the
function definition is executed. This means that the expression is
evaluated once, when the function is defined, and that the same
“pre-computed” value is used for each call. This is especially important
to understand when a default parameter value is a mutable object, such
as a list or a dictionary: if the function modifies the object (e.g. by
appending an item to a list), the default parameter value is in effect
modified. This is generally not what was intended. A way around this is
to use None as the default, and explicitly test for it in the body of
the function, e.g.:


### Description

- Replaced mutable types (e.g., `dict`, `list`) used as default argument
values with `None`, and properly initialized them within the function
body.
- Reviewed and updated the parts of the code that performed destructive
modifications on the arguments, to avoid unintentionally modifying
variables from the caller’s scope.
- ~Added the `flake8-bugbear` rule in Ruff to detect this kind of
issue.~
- ~For now, errors in `tests` and `samples` directories are ignored due
to the large number of violations.~

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [x] The code builds clean without any errors or warnings
- [x] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [ ] All unit tests pass, and I have added new tests where possible
- [ ] I didn't break anyone 😄
…unding for AzureAIAgent (microsoft#11850)

### Motivation and Context

The AzureAIAgent streaming event path for handling streaming code output
as well as both streaming and non-streaming Bing Grounding tool calls
were missing in the current implementation. This PR adds handling for
those two scenarios.

<!-- Thank you for your contribution to the semantic-kernel repo!
Please help reviewers and future users, providing the following
information:
  1. Why is this change required?
  2. What problem does it solve?
  3. What scenario does it contribute to?
  4. If it fixes an open issue, please link to the issue here.
-->

### Description

Updates to allow for proper handling of streaming code using the
AzureAIAgent
- code_interpreter: note that the code interpreter tool call is handled
as returning `StreamingTextContent` with the `metadata` dict configured
with `{"code": True}`.
- bing_grounding: support for the Bing Grounding Tool is added. There is
a current issue with streaming events and the Bing Grounding tool - the
`requesturl` as part of the tool call is coming back empty. This issue
has been raised with the appropriate team. Both streaming and
non-streaming do properly return the `StreamingAnnotationContent` or
`AnnotationContent` respectively.
- Samples were added to show interaction with the AzureAIAgent and these
tools, some also showing how to use the `on_intermediate_message`
callback.
- Fixes microsoft#11847

<!-- Describe your changes, the overall approach, the underlying design.
These notes will help understanding how your code works. Thanks! -->

### Contribution Checklist

<!-- Before submitting this PR, please make sure: -->

- [X] The code builds clean without any errors or warnings
- [X] The PR follows the [SK Contribution
Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
and the [pre-submission formatting
script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts)
raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone 😄
@alliscode alliscode requested review from a team as code owners May 6, 2025 23:13
@markwallace-microsoft markwallace-microsoft added .NET Issue or Pull requests regarding .NET code python Pull requests for the Python Semantic Kernel kernel Issues or pull requests impacting the core kernel kernel.core documentation memory labels May 7, 2025
@github-actions github-actions bot changed the title Process export .Net: Process export May 7, 2025
@github-actions github-actions bot changed the title .Net: Process export Python: Process export May 7, 2025
@alliscode alliscode merged commit 40096ea into microsoft:feature-declarative-processes May 7, 2025
4 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation kernel.core kernel Issues or pull requests impacting the core kernel memory .NET Issue or Pull requests regarding .NET code python Pull requests for the Python Semantic Kernel
Projects
None yet
Development

Successfully merging this pull request may close these issues.