安装方式
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill microsoft-foundry 部署、评估并端到端管理 Foundry 代理:Docker 构建、ACR 推送、托管/提示代理创建、容器启动、批量评估、持续评估、提示优化工作流、agent.yaml、基于追踪的数据集整理。用于:将代理部署到 Foundry、托管代理、创建代理、调用代理、评估代理、运行批量评估、持续评估、持续监控、持续评估状态、优化提示、改进提示、提示优化器、优化代理指令、改进代理指令、优化系统提示、部署模型、Foundry 项目、RBAC、角色分配、权限、配额、容量、区域、排查代理问题、部署失败、从追踪创建数据集、数据集版本控制、评估趋势、创建 AI 服务、认知服务、创建 Foundry 资源、配置资源、知识索引、代理监控、自定义部署、入门、可用性。请勿用于:Azure Functions、应用服务、常规 Azure 部署(请使用 azure-deploy)、常规 Azure 准备工作(请使用 azure-prepare)。
300.9k
下载量
命令行安装
在项目根目录执行以下命令,完成 Skill 安装。
npx bzskills add microsoft/azure-skills --skill microsoft-foundry name: microsoft-foundry
description: 部署、评估并端到端管理 Foundry 代理:Docker 构建、ACR 推送、托管/提示代理创建、容器启动、批量评估、持续评估、提示优化工作流、agent.yaml、基于追踪的数据集整理。用于:将代理部署到 Foundry、托管代理、创建代理、调用代理、评估代理、运行批量评估、持续评估、持续监控、持续评估状态、优化提示、改进提示、提示优化器、优化代理指令、改进代理指令、优化系统提示、部署模型、Foundry 项目、RBAC、角色分配、权限、配额、容量、区域、排查代理问题、部署失败、从追踪创建数据集、数据集版本控制、评估趋势、创建 AI 服务、认知服务、创建 Foundry 资源、配置资源、知识索引、代理监控、自定义部署、入门、可用性。请勿用于:Azure Functions、应用服务、常规 Azure 部署(请使用 azure-deploy)、常规 Azure 准备工作(请使用 azure-prepare)。
license: MIT
metadata:
author: Microsoft
version: "1.1.13"本技能帮助开发者使用 Microsoft Foundry 资源,涵盖模型发现与部署、AI 代理的完整开发生命周期、评估工作流以及故障排除。
必须:在执行任何工作流之前,必须先调用 Azure MCPfoundry工具并检查可用的 Foundry MCP 工具及相关参数。 将此初始foundry调用视为发现/帮助步骤。对于本技能,Azure MCPfoundry是 Foundry 相关 MCP 操作的必需入口点。
必须:在执行任何工作流特定步骤之前,必须先阅读对应的子技能文档。 对于某个工作流,即使已知 MCP 工具参数,也不能在未阅读其技能文档的情况下调用工作流特定的 MCP 工具。技能文档包含必须遵循的工作流步骤、预检查和验证逻辑。即使技能已加载,每次触发不同工作流的新用户消息都适用此规则。
本技能包含针对特定工作流的专项子技能。当它们与你的任务匹配时,请使用它们而非主技能:
| 子技能 | 适用场景 | 参考文档 |
|---|---|---|
| deploy | 容器化、构建、推送到 ACR、创建/更新/克隆代理部署 | [deploy](foundry-agent/deploy/deploy.md) |
| invoke | 向代理发送消息,单轮或多轮对话 | [invoke](foundry-agent/invoke/invoke.md) |
| observe | 评估代理质量、运行批量评估、分析失败、优化提示、改进代理指令、比较版本、设置 CI/CD 监控、启用持续生产评估 | [observe](foundry-agent/observe/observe.md) |
| trace | 查询追踪、分析延迟/故障、通过 App Insights customEvents 将评估结果关联到特定响应 | [trace](foundry-agent/trace/trace.md) |
| troubleshoot | 查看托管代理日志、查询遥测、诊断故障 | [troubleshoot](foundry-agent/troubleshoot/troubleshoot.md) |
| create | 创建新的托管代理应用程序。支持 Microsoft Agent Framework、LangGraph 或自定义框架(Python 或 C#),支持 responses 或 invocations 协议 | [create](foundry-agent/create/create-hosted.md) |
| faos-optimize | 将现有 Python 代理代码转换为 FAOS(Foundry 代理优化服务)优化就绪版本,通过连接评估器目标的指令/模型/温度旋钮,然后在部署前停止以供审查 | [faos-optimize](foundry-agent/faos-optimize/faos-optimize.md) |
| eval-datasets | 将生产追踪收集到评估数据集中,管理数据集版本和拆分,跟踪评估指标随时间变化,检测回归,并维护从追踪到部署的完整血缘。用于:从追踪创建数据集、数据集版本控制、评估趋势、回归检测、数据集比较、评估血缘。 | [eval-datasets](foundry-agent/eval-datasets/eval-datasets.md) |
| project/create | 创建新的 Azure AI Foundry 项目以托管代理和模型。在加入 Foundry 或设置新基础设施时使用。 | [project/create/create-foundry-project.md](project/create/create-foundry-project.md) |
| resource/create | 使用 Azure CLI 创建 Azure AI Services 多服务资源(Foundry 资源)。手动配置 AI Services 资源时使用。 | [resource/create/create-foundry-resource.md](resource/create/create-foundry-resource.md) |
| private-network | 回答有关 Foundry 网络隔离的问题 并 使用 VNet 隔离(自带 VNet、托管 VNet、混合)部署 Foundry。涵盖架构概念、模板选择、部署和部署后验证。 | [resource/private-network/private-network.md](resource/private-network/private-network.md) |
| models/deploy-model | 统一模型部署,智能路由。处理快速预设部署、完全自定义部署(版本/SKU/容量/RAI)以及跨区域容量发现。路由到子技能:preset(快速部署)、customize(完全控制)、capacity(查找可用性)。 | [models/deploy-model/SKILL.md](models/deploy-model/SKILL.md) |
| quota | 管理 Microsoft Foundry 资源的配额和容量。用于检查配额使用情况、因配额不足导致的部署失败排除故障、请求提高配额或规划容量。 | [quota/quota.md](quota/quota.md) |
| rbac | 管理 Microsoft Foundry 资源的 RBAC 权限、角色分配、托管标识和服务主体。用于访问控制、权限审计和 CI/CD 设置。 | [rbac/rbac.md](rbac/rbac.md) |
💡 提示: 完整的入门流程:project/create(公共)或private-network(VNet 隔离)→models/deploy-model→ 代理工作流(create→deploy→invoke)。
💡 模型部署: 对于所有部署场景,使用 models/deploy-model —— 它会在快速预设部署、完全自定义部署以及跨区域容量发现之间智能路由。💡 提示优化: 对于诸如"优化我的提示"或"改进我的代理指令"之类的请求,加载 [observe](foundry-agent/observe/observe.md) 并通过评估驱动的工作流使用 prompt_optimize MCP 工具。将用户意图与正确的基础设施工作流匹配。
| 用户意图 | 工作流 |
|---|---|
| "创建 Foundry"/"设置 Foundry"(模糊) | 使用 AskUserQuestion:(a)仅创建 AI Services 资源,(b)创建公共访问的项目,或(c)创建网络隔离的项目?路由:(a)→ [resource/create](resource/create/create-foundry-resource.md),(b) → [project/create](project/create/create-foundry-project.md),(c) → [private-network](resource/private-network/private-network.md) |
| 使用 VNet 隔离设置 Foundry | [private-network](resource/private-network/private-network.md) |
| 创建 Foundry 项目(公共) | [project/create](project/create/create-foundry-project.md) |
| 创建裸 Foundry 资源 | [resource/create](resource/create/create-foundry-resource.md) |
将用户意图与正确的代理工作流匹配。在执行之前按顺序阅读每个子技能。
| 用户意图 | 工作流(按顺序阅读) |
|---|---|
| 从头创建新代理 | [create](foundry-agent/create/create-hosted.md) → [deploy](foundry-agent/deploy/deploy.md) → [invoke](foundry-agent/invoke/invoke.md) |
| 使现有 Python 代理可 FAOS 优化 | [faos-optimize](foundry-agent/faos-optimize/faos-optimize.md) → 审查 → 部署 → 调用 |
| 部署代理(代码已存在) | deploy → invoke |
| 代码更改后更新/重新部署代理 | deploy → invoke |
| 调用/测试/与代理聊天 | invoke |
| 优化/改进代理提示或指令 | observe(步骤 4:优化) |
| 评估并优化代理(完整循环) | observe |
| 启用持续评估监控 | observe(步骤 6:CI/CD 与监控) |
| 排查代理问题 | invoke → troubleshoot |
| 修复损坏的代理(排查 + 重新部署) | invoke → troubleshoot → 应用修复 → deploy → invoke |
每个代理源文件夹应在 .foundry/ 下保留 Foundry 特定的状态:
<agent-root>/
.foundry/
agent-metadata.yaml
agent-metadata.prod.yaml
datasets/
evaluators/
results/
agent-metadata.yaml 是首选的本地/开发元数据文件。可选的 sidecar 文件如 agent-metadata.prod.yaml 可保存单个生产或 CI 目标环境,而无需在单个文件中混合多个环境。datasets/ 和 evaluators/ 是本地缓存文件夹。当它们是最新时重复使用,在刷新或覆盖之前询问。代理技能仅当需要尚未拥有的配置值时才应运行此步骤。如果某个值(例如代理根、环境、项目终结点或代理名称)已从用户消息或同一会话中之前的技能获知,则跳过该值的解析。
在工作区中搜索包含 agent-metadata.yaml 或 agent-metadata.<env>.yaml 的 .foundry/ 文件夹。
.foundry/ 文件夹;对于所有其他工作流,停止并询问用户要初始化哪个代理源文件夹。选择代理根后,将所有本地 .foundry 缓存检查、源检查、评估器建议、数据集建议和提示优化上下文保留在该文件夹内。不要扫描同级代理文件夹,除非用户明确切换根。
在选定的代理根内,按以下顺序选择元数据文件:
.foundry/agent-metadata.<env>.yaml 存在,则使用该文件.foundry/agent-metadata.yaml读取选定的元数据文件并按以下顺序解析环境:
defaultEnvironment如果选定的元数据文件仍包含多个环境且以上规则均未选中,则提示用户选择。在每个工作流摘要中保持选定的代理根、元数据文件和环境可见。
如果选定环境公开旧的 testSuites[] 元数据但未公开 evaluationSuites[],则将 testSuites[] 作为此会话的来源,并在继续之前将每个条目在内存中规范化为 evaluationSuites[] 形状。如果元数据更旧且仅公开旧的 testCases[],则同样规范化该列表。保留数据集和评估器字段,保留任何现有的 tags,并且仅当 tags.tier 缺失时才将旧的 priority 映射到 tags.tier:P0 -> smoke,P1 -> regression,P2 -> coverage。
使用选定元数据文件中的选定环境作为主要来源:
| 元数据字段 | 解析为 | 使用方 |
|---|---|---|
environments.<env>.projectEndpoint | 项目终结点 | deploy、invoke、observe、trace、troubleshoot |
environments.<env>.agentName | 代理名称 | invoke、observe、trace、troubleshoot |
environments.<env>.azureContainerRegistry | ACR 注册表名称/镜像 URL 前缀 | deploy |
environments.<env>.evaluationSuites[] | 数据集 + 评估器 + 标签捆绑包 | observe、eval-datasets |
如果创建/部署正在初始化新的 .foundry 工作区且元数据字段仍缺失,请检查项目根目录中是否存在 azure.yaml。如果找到,则运行 azd env get-values 并将其用于默认情况下植入 agent-metadata.yaml,或者在工作流显式针对特定于环境的文件时植入 agent-metadata.<env>.yaml。
在任何元数据写入操作(部署、自动设置、数据集刷新或追踪到数据集更新)中,仅将 evaluationSuites[] 持久化到选定的元数据文件。如果选定的文件是首选单环境文件,则仅重写该环境块。如果选定的文件是旧的多环境文件,则仅重写选定的环境块。永远不要自动跨同级元数据文件复制或合并环境。如果选定的环境仍使用旧的 testSuites[] 或旧的 testCases[],则将其重写为 evaluationSuites[] 并从重写的条目中删除已迁移的 priority 字段。
| azd 变量 | 植入目标 |
|---|---|
AZURE_AI_PROJECT_ENDPOINT 或 AZURE_AIPROJECT_ENDPOINT | environments.<env>.projectEndpoint |
AZURE_CONTAINER_REGISTRY_NAME 或 AZURE_CONTAINER_REGISTRY_ENDPOINT | environments.<env>.azureContainerRegistry |
AZURE_SUBSCRIPTION_ID | 用于追踪/故障排除查找的 Azure 订阅 |
仅对从用户消息、会话上下文、元数据或 azd 引导中未解析的值使用 ask_user 或 askQuestions 工具。技能可能需要的常见值:
.foundry/agent-metadata*.yaml 的目标文件夹agent-metadata.yaml 用于本地/开发,或显式 sidecar 如 agent-metadata.prod.yamldev、prod 或元数据中的其他环境键💡 提示: 如果用户已提供代理路径、环境、项目终结点或代理名称,则直接提取 —— 不要再次询问。
所有代理技能均支持两种代理类型:
| 类型 | kind | 描述 |
|---|---|---|
| 提示 | "prompt" | 基于 LLM 的代理,由模型部署支持 |
| 托管 | "hosted" | 运行自定义代码的基于容器的代理 |
在需要时使用 agent_get MCP 工具确定代理的类型。
ask_user 或 askQuestions 工具task 或 runSubagent 工具委托长时间运行或独立的子任务(例如环境变量扫描、状态轮询、Dockerfile 生成)