Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 14149Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 14149" |
src/Aspire.Hosting.Azure.AIFoundry/Aspire.Hosting.Azure.AIFoundry.csproj
Outdated
Show resolved
Hide resolved
src/Aspire.Hosting.Azure.AIFoundry/Aspire.Hosting.Azure.AIFoundry.csproj
Outdated
Show resolved
Hide resolved
src/Aspire.Hosting.Azure.AIFoundry/Aspire.Hosting.Azure.AIFoundry.csproj
Show resolved
Hide resolved
Needed to comment out some pipeline calls that need to be reworked.
Resolve merge conflicts in CosmosDB (Id property rename, ToBicepExpression), KeyVault (id output with ToBicepExpression), and update AIFoundry ConnectionBuilderExtensions to use renamed Id property. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…sting integration Code quality fixes: - Remove PLAN.md from source package - Fix double semicolon in HostedAgentBuilderExtension - Replace Console.WriteLine with comments in PublishAsync methods - Rename capabilityHostConfiguration to PascalCase convention - Revert unrelated .vscode/settings.json change Test fixes: - Fix broken test assertions (wrong name, type, env var key/value) - Fix cross-platform test failures (line ending normalization) - Remove duplicate test and commented-out code New test coverage (40 new tests, 45 total): - ProjectResourceTests: resource creation, relationships, expressions - ProjectWithReferenceTests: env var injection patterns - HostedAgentConfigurationTests: CPU/memory, validation, formatting - HostedAgentExtensionTests: run/publish mode, region validation - StaticValueProviderTests: get/set, error handling - PromptAgentConfigurationTests: constructor, options generation Documentation: - Improve XML docs for WithKeyVault, WithAppInsights, WithCapabilityHost - Update README with Project, Hosted Agent, and connection properties Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove unused Aspire.Hosting.Python project reference (Thread 1)
- Remove unnecessary Aspire.Hosting.Azure.OperationalInsights reference,
already transitive via ApplicationInsights (Thread 2)
- Refactor ContainerRegistry to match ACA pattern (Thread 4):
- Remove IContainerRegistry from class declaration
- Add IAzureComputeEnvironmentResource.ContainerRegistry explicit impl
- Add GetContainerRegistry() helper matching ACA pattern
- ContainerRegistry property now returns AzureContainerRegistryResource?
with validation, matching ACA's approach
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This WIP PR introduces a hosting integration for developing, running, and deploying Azure AI Foundry Hosted Agents. It treats agents as compute resources and Foundry projects as compute environments, enabling deployment workflows similar to Azure Container Apps or Azure App Service.
Changes:
- New
Aspire.Hosting.Azure.AIFoundrypackage with support for AI Foundry projects, hosted agents, and prompt agents - Project templates for creating AI Foundry agent applications (
aspire-agent-starter) - Integration with Azure Container Registry for agent container management
- Support for capability hosts with BYO (Bring Your Own) storage, Cosmos DB, and search resources
- Test suite covering project resources, hosted agents, connections, and configurations
- Playground examples demonstrating basic and enterprise agent scenarios
Reviewed changes
Copilot reviewed 104 out of 114 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/Aspire.Hosting.Azure.AIFoundry/*.cs | Core resource definitions for projects, agents, connections, and extensions |
| src/Aspire.ProjectTemplates/templates/aspire-agent-starter/ | Project template for creating hosted agent applications |
| tests/Aspire.Hosting.Azure.AIFoundry.Tests/*.cs | Unit tests for project, agent, and connection resources |
| playground/FoundryAgentBasic/ | Basic agent example with Python backend |
| playground/FoundryAgentEnterprise/ | Enterprise example with additional infrastructure |
| src/Aspire.Hosting.Azure*/AzureApplicationInsightsResource.cs | Added IdOutputReference for AI Foundry connections |
| src/Aspire.Hosting.Azure*/AzureKeyVaultResource.cs | Added IdOutputReference for AI Foundry connections |
| src/Aspire.Hosting.Azure*/AzureStorageResource.cs | Added IdOutputReference for AI Foundry connections |
The PR added 'output id' to ApplicationInsights Bicep but didn't update the verified snapshot files. Also fixed missing .ToBicepExpression() on appInsights.Id (matching the pattern used by CosmosDB and KeyVault). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Azure.Provisioning.CognitiveServices package was bumped from 1.1.0 to 1.2.0, which generates API version 2025-09-01 instead of 2024-10-01. Update all verified snapshot files and hardcoded test assertions to match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@ericsuh looks like you need to accept the CLA with a comment like |
|
Is it weird that the namespace is |
|
@sethjuarez who knows what it will be called in 6 months? Here is a proof it was called Azure AI Foundry when we defined the namespace. https://www.youtube.com/watch?v=GD7MnIwAxYM&t=9s We might decide to change the naming in a different PR and deprecate this component, this is not a simple decision to take. At some point it may have been under Cognitive Search name ... Should we switch to Copilot Foundry already (just kidding)? |
|
@dotnet-policy-service agree company="Microsoft" |
|
I agree with @sethjuarez - we should prob just kill Azure.AI.Foundry integration (deprecate) and then do a new Aspire.Hosting.Microsoft.Foundry? or even Aspire.Hosting.Foundry (a la Aspire.Hosting.Orleans) |
|
Description
This is a hosting integration for developing, running, and deploying Foundry Hosted Agents. It treats agents as compute resources and Foundry Projects as compute environments, and uses pipelines to deploy them in much the same way as ACA or Azure App Service deploys containers.
The eventual goal is to have two scenarios as aspire templates or examples:
Checklist
<remarks />and<code />elements on your triple slash comments?doc-ideatemplatebreaking-changetemplatediagnostictemplate