使用Azure AI Projects SDK(ImageBasedHostedAgentDefinition)构建基于容器的Foundry Agents。在Azure AI Foundry中使用自定义容器镜像创建托管智能体时使用。
技能概述
agents-v2-py 技能专注于使用Azure AI Projects SDK中的ImageBasedHostedAgentDefinition构建基于容器的托管智能体。这些智能体运行在Azure AI Foundry中,使用自定义容器镜像,提供更高的灵活性和控制力。
下载地址:agentic-awesome-skills/skills/agents-v2-py at main · sickn33/agentic-awesome-skills · GitHub
主要功能
- 容器化智能体:使用自定义容器镜像构建托管智能体
- 资源分配:配置CPU和内存资源
- 协议版本管理:指定智能体支持的协议版本
- 工具集成:为智能体配置可用工具
- 环境变量配置:设置容器环境变量
- 版本管理:创建、列出和删除智能体版本
前置要求
- 容器镜像:构建并推送到Azure Container Registry (ACR)
- ACR拉取权限:为项目的托管身份授予ACR上的AcrPull角色
- 能力主机:账户级别的能力主机,启用enablePublicHostingEnvironment=true
- SDK版本:确保azure-ai-projects>=2.0.0b3
安装
pip install azure-ai-projects>=2.0.0b3 azure-identity
最低SDK版本:需要2.0.0b3或更高版本以支持托管智能体。
环境变量
AZURE_AI_PROJECT_ENDPOINT=https://<resource>.services.ai.azure.com/api/projects/<project>
核心工作流程
1. 创建托管智能体
```python
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import (
ImageBasedHostedAgentDefinition,
ProtocolVersionRecord,
AgentProtocol,
)client = AIProjectClient(
endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
credential=DefaultAzureCredential()
)agent = client.agents.create_version(
agent_name="my-hosted-agent",
definition=ImageBasedHostedAgentDefinition(
container_protocol_versions=[
ProtocolVersionRecord(protocol=AgentProtocol.RESPONSES, version="v1")
],
cpu="1",
memory="2Gi",
image="myregistry.azurecr.io/my-agent:latest",
tools=[{"type": "code_interpreter"}],
environment_variables={
"AZURE_AI_PROJECT_ENDPOINT": os.environ["AZURE_AI_PROJECT_ENDPOINT"],
"MODEL_NAME": "gpt-4o-mini"
}
)
)
```
ImageBasedHostedAgentDefinition参数
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
| container_protocol_versions | list[ProtocolVersionRecord] | 是 | 智能体支持的协议版本 |
| image | str | 是 | 完整的容器镜像路径(registry/image:tag) |
| cpu | str | 否 | CPU分配(如"1"、"2") |
| memory | str | 否 | 内存分配(如"2Gi"、"4Gi") |
| tools | list[dict] | 否 | 智能体可用的工具 |
| environment_variables | dict[str, str] | 否 | 容器的环境变量 |
最佳实践
- 始终使用DefaultAzureCredential进行身份验证
- 为容器配置适当的CPU和内存资源
- 使用环境变量传递配置信息
- 定期清理不需要的智能体版本
- 确保容器镜像已正确推送到ACR
技能元数据
- 添加日期:2026-02-27
- 风险等级:unknown
- 来源:community