Capability hosts
This article refers to the Microsoft Foundry (new) portal.
Updating capability hosts is not supported. To modify a capability host, you must delete the existing one and recreate it with the new configuration.
- Conversation history (threads)
- File uploads
- Vector stores
Prerequisites
- A Microsoft Foundry project
- If you use your own resources for agent data (standard agent setup), create the required Azure resources and connections:
- Required permissions:
- Contributor role on the Foundry account to create capability hosts
- User Access Administrator or Owner role to assign access to Azure resources (for standard agent setup)
- For details, see Required permissions and Role-based access control (RBAC) in Microsoft Foundry.
Why use capability hosts?
Capability hosts let you bring your own Azure resources instead of using the default Microsoft-managed platform resources. This gives you:- Data sovereignty - Keep all agent data within your Azure subscription.
- Security control - Use your own storage accounts, databases, and search services.
- Compliance - Meet specific regulatory or organizational requirements.
How do capability hosts work?
Creating capability hosts isn’t required. If you want agents to use your own Azure resources, create capability hosts at both the account and project scopes.Default behavior (Microsoft-managed resources)
If you don’t create capability hosts, Agent Service automatically uses Microsoft-managed Azure resources for:- Thread storage (conversation history, agent definitions)
- File storage (uploaded documents)
- Vector search (embeddings and retrieval)
Bring-your-own resources
When you create capability hosts at both the account and project levels, your Azure resources store and process agent data. This is standard agent setup. For network-secured standard agent setup, deploy all related resources in the same region as your virtual network (VNet). For guidance, see Create a new network-secured environment with user-managed identity. To learn more about standard agent setup, see Built-in enterprise readiness with standard agent setup.We recommend using separate Foundry accounts and projects for standard agent setup and basic agent setup. Avoid mixing setup types within the same Foundry account.
Configuration hierarchy
Capability hosts follow a hierarchy where more specific configurations override broader ones:- Service defaults (Microsoft-managed search and storage) - Used when no capability host is configured.
- Account-level capability host - Provides shared defaults for all projects under the account.
- Project-level capability host - Overrides account-level and service defaults for that specific project.
Understand capability host constraints
When creating capability hosts, be aware of these important constraints to avoid conflicts:- One capability host per scope: Each account and each project can have only one active capability host. If you try to create a second capability host with a different name at the same scope, you get a 409 conflict.
- You can’t update configurations: If you need to change configuration, delete the existing capability host and recreate it.
Create connections for capability hosts
Capability hosts reference connection names that you create in your Foundry account and project. Before you configure a project capability host for standard agent setup, create connections for the resources that store agent data:- Thread storage: Azure Cosmos DB connection
- File storage: Azure Storage connection
- Vector store: Azure AI Search connection
Configure capability hosts
Currently, you manage capability hosts using the REST API. SDK support for capability host management isn’t available.Required properties (project capability host)
To use your own resources for agent data (standard agent setup), configure the project capability host with the following properties:| Property | Purpose | Required Azure resource | Example connection name |
|---|---|---|---|
threadStorageConnections | Stores agent definitions, conversation history and chat threads | Azure Cosmos DB | "my-cosmosdb-connection" |
vectorStoreConnections | Handles vector storage for retrieval and search | Azure AI Search | "my-ai-search-connection" |
storageConnections | Manages file uploads and blob storage | Azure Storage Account | "my-storage-connection" |
Optional property
| Property | Purpose | Required Azure resource | When to use |
|---|---|---|---|
aiServicesConnections | Use your own model deployments | Azure OpenAI | When you want to use models from your existing Azure OpenAI resource instead of the built-in account level ones. |
Optional: account-level defaults with project overrides
Set shared defaults at the account level that apply to all projects:All Foundry projects will inherit these settings. Then override specific settings at the project level as needed.
Verify your configuration
Use these steps to confirm that capability hosts are configured correctly:-
Get the account capability host and confirm it exists.
-
Get the project capability host and confirm it references the expected connection names.
-
Test your configuration by creating a test agent and running a conversation. Confirm that:
- Conversation threads appear in your Azure Cosmos DB
- Uploaded files appear in your Azure Storage account
- Vector data appears in your Azure AI Search index
- If you update connections or want to change where data is stored, delete and recreate the capability hosts with the updated configuration.
Delete capability hosts
Delete an account-level capability host
Delete a project-level capability host
Troubleshooting
If you’re experiencing issues when creating capability hosts, this section provides solutions to the most common problems and errors.HTTP 409 Conflict errors
Problem: Multiple capability hosts per scope
Symptoms: You receive a 409 Conflict error when trying to create a capability host, even though you believe the scope is empty. Error message:- Check existing capability hosts - Query the scope to see what already exists
- Use consistent naming - Ensure you’re using the same name across all requests for the same scope
- Review your requirements - Determine if the existing capability host meets your needs
Problem: Concurrent operations in progress
Symptoms: You receive a 409 Conflict error indicating that another operation is currently running. Error message:- Wait for current operation to complete - Check the status of ongoing operations
- Monitor operation progress - Use the operations API to track completion
- Implement retry logic - Use exponential backoff for temporary conflicts
Best practices for conflict prevention
1. Pre-request validation
Always verify the current state before making changes:- Query existing capability hosts in the target scope
- Check for any ongoing operations
- Understand the current configuration
2. Implement retry logic with exponential backoff
3. Understand idempotent behavior
The system supports idempotent create requests:- Same name + same configuration → Returns existing resource (200 OK)
- Same name + different configuration → Returns 400 Bad Request
- Different name → Returns 409 Conflict
4. Configuration change workflow
Since updates aren’t supported, follow this sequence for configuration changes:- Delete the existing capability host
- Wait for deletion to complete
- Create a new capability host with the desired configuration
Common scenarios
- Development and testing: Use Microsoft-managed resources. No capability host configuration needed.
- Production with compliance requirements: Create capability hosts with your own Azure Cosmos DB, Storage, and AI Search.
- Shared resources across projects: Configure account-level defaults, then override at the project level as needed.