资讯详情

资讯详情

使用 azure-ai-projects Python SDK 在 Azure AI Foundry 上构建 Agent 应用:agentic-awesome-skills 技能实战指南

AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载Azure AI Foundry原名 Azure AI Studio提供了一站式的企业级 AI 应用开发平台而azure-ai-projects正是面向该平台的官方 Python SDK。本篇文章以开源仓库 agentic-awesome-skills 中收录的 azure-ai-projects-py 技能文档 为骨架完整讲解该 SDK 的安装、认证、Agent 生命周期管理、工具集成、评估与异步模式并结合仓库内的索引与分类数据说明该技能在 AASAgentic Awesome Skills生态中的定位。读完本文你将能够使用AIProjectClient完成从创建 Agent、编排对话线程、接入工具到批量评估的完整开发闭环。技能在仓库中的定位在 agentic-awesome-skills 仓库中azure-ai-projects-py被登记为一个risk: critical、source: community的云开发类技能发布日期为2026-02-27同时收录于plugins/agentic-awesome-skills与plugins/agentic-awesome-skills-claude两个插件中对应 SKILL.md 内容一致。目录分类与元数据见 catalog.json分类为cloud标签为azure / ai / py触发器triggers包含azure、ai、py、microsoft、foundry、sdk等关键词这意味着 Agent 在遇到相关任务描述时会被引导使用本技能技能索引与插件兼容性见 skills_index.jsonplugin.targets标明该技能在 Codex 与 Claude 两个运行目标上均为supportedsetup.type为none无需额外安装脚本仅需pip install技能捆绑Bundle见 bundles.json该技能被归入azure-core捆绑包描述为 Azure cloud, platform, and AI development.与agent-framework-azure-ai-py、azure-ai-projects-dotnet、azure-ai-projects-java、azure-ai-projects-ts等技能并列共同覆盖 Azure 平台的 AI 开发场景。安装与前置依赖技能文档要求通过 pip 安装两个核心包pip install azure-ai-projects azure-identityazure-ai-projectsFoundry SDK 主包提供AIProjectClient、PromptAgentDefinition等类型azure-identity提供DefaultAzureCredential等 Azure 身份认证实现用于获取访问令牌。从技能文档的 SDK 对比表可以看出该技能基于的 SDK 版本对应 API 参考文档所描述的全部 373 个 SDK 导出项v2.0.0b4属于 Azure AI Foundry 的高层集成 SDK。安装完成后不需要额外的仓库级配置属于即装即用型技能。环境变量运行示例代码前需要准备两个环境变量分别指定项目连接串与模型部署名AZURE_AI_PROJECT_ENDPOINThttps://resource.services.ai.azure.com/api/projects/project AZURE_AI_MODEL_DEPLOYMENT_NAMEgpt-4o-miniAZURE_AI_PROJECT_ENDPOINT指向你在 Azure AI Foundry 中创建的项目终结点resource与project需替换为实际资源名与项目名AZURE_AI_MODEL_DEPLOYMENT_NAME项目内已部署的模型名称Deployment Name示例中使用gpt-4o-mini请以你的实际部署名为准。认证方式DefaultAzureCredential技能推荐使用 Azure Identity 库中的DefaultAzureCredential完成认证它能按顺序尝试多种凭据来源环境变量、托管身份、Azure CLI 登录态、VS Code 登录态等适用于本地开发与云上运行两种场景import os from azure.identity import DefaultAzureCredential from azure.ai.projects import AIProjectClient credential DefaultAzureCredential() client AIProjectClient( endpointos.environ[AZURE_AI_PROJECT_ENDPOINT], credentialcredential, )得到client后即可通过其各个子命名空间访问 Foundry 项目的能力面。Client 操作概览AIProjectClient把项目能力划分为若干个操作域技能文档给出如下总览表OperationAccessPurposeclient.agents.agents.*Agent CRUD、版本管理、线程threads与运行runsclient.connections.connections.*列出/获取项目连接connectionsclient.deployments.deployments.*列出模型部署client.datasets.datasets.*数据集管理client.indexes.indexes.*索引管理client.evaluations.evaluations.*运行评估client.red_teams.red_teams.*Red team 操作可以看到一个客户端即覆盖了 Agent 编排、外部服务连接、模型部署、数据资产与质量评估的全链路这正是项目级控制面project control plane设计的体现。两种客户端用法技能文档强调AIProjectClient提供两种互补的调用方式可根据场景自由切换。1. AIProjectClientFoundry 原生操作直接使用客户端上的原生命名空间例如创建 Agentfrom azure.ai.projects import AIProjectClient client AIProjectClient( endpointos.environ[AZURE_AI_PROJECT_ENDPOINT], credentialDefaultAzureCredential(), ) # Use Foundry-native operations agent client.agents.create_agent( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], namemy-agent, instructionsYou are helpful., )2. OpenAI 兼容客户端对于开发者已熟悉的 OpenAI API 形态可通过get_openai_client()获取兼容客户端复用标准的 Chat Completions 接口# Get OpenAI-compatible client from project openai_client client.get_openai_client() # Use standard OpenAI API response openai_client.chat.completions.create( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], messages[{role: user, content: Hello!}], )两种方式共享同一套认证与项目上下文前者适合使用 Foundry 特有能力版本化 Agent、连接、部署枚举等后者适合迁移已有 OpenAI 调用代码。Agent 操作创建基础 Agentagent client.agents.create_agent( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], namemy-agent, instructionsYou are a helpful assistant., )create_agent返回的agent对象拥有.id等标识字段后续线程编排与清理都依赖该标识。携带工具创建 Agent通过tools参数一次性挂载多个工具例如同时启用代码解释器与文件搜索让 Agent 既能执行 Python 代码又能基于上传文档做检索from azure.ai.agents import CodeInterpreterTool, FileSearchTool agent client.agents.create_agent( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], nametool-agent, instructionsYou can execute code and search files., tools[CodeInterpreterTool(), FileSearchTool()], )注意此处工具类的导入路径为azure.ai.agents部分版本位于azure.ai.projects.models具体以所安装 SDK 版本的导入路径为准。版本化 AgentPromptAgentDefinition生产环境需要可回滚、可发布的 Agent 版本时可使用create_version配合PromptAgentDefinitionfrom azure.ai.projects.models import PromptAgentDefinition # Create a versioned agent agent_version client.agents.create_version( agent_namecustomer-support-agent, definitionPromptAgentDefinition( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], instructionsYou are a customer support specialist., tools[], # Add tools as needed ), version_labelv1.0, )version_label用于为版本打标签如v1.0版本化机制是实现灰度发布与快速回退的基础也是azure-ai-projects相比底层azure-ai-agentsSDK 的关键差异点之一。工具总览技能文档将 Agent 可用的工具整理成下表覆盖代码执行、RAG 检索、联网、函数调用与 MCP 协议接入等能力ToolClassUse CaseCode InterpreterCodeInterpreterTool执行 Python、生成文件File SearchFileSearchTool对上传文档做 RAG 检索Bing GroundingBingGroundingTool联网搜索需 connectionAzure AI SearchAzureAISearchTool检索你的索引Function CallingFunctionTool调用你的 Python 函数OpenAPIOpenApiTool调用 REST APIMCPMcpTool接入 Model Context Protocol 服务器Memory SearchMemorySearchTool检索 Agent 记忆存储SharePointSharepointGroundingTool检索 SharePoint 内容值得关注的是 MCP 支持McpTool它允许 Agent 直接调用符合 Model Context Protocol 的外部工具服务器这与 AAS 生态本身Agent 优先、工具可发现的理念一致也让 Foundry Agent 能复用社区中大量的 MCP 服务器资源。线程与消息流Agent 对话的完整生命周期由线程thread→ 消息message→ 运行run三步组成# 1. Create thread thread client.agents.threads.create() # 2. Add message client.agents.messages.create( thread_idthread.id, roleuser, contentWhats the weather like?, ) # 3. Create and process run run client.agents.runs.create_and_process( thread_idthread.id, agent_idagent.id, ) # 4. Get response if run.status completed: messages client.agents.messages.list(thread_idthread.id) for msg in messages: if msg.role assistant: print(msg.content[0].text.value)关键点说明threads.create()用于为一次会话建立独立上下文messages.create()负责追加用户输入roleusercreate_and_process是一个同步便捷方法创建 run 并等待其完成适合不需要流式输出的场景若需实时体验技能文档建议改用流式streaming方式处理运行结束后通过messages.list按role过滤取出 assistant 回复msg.content[0].text.value即文本内容。Connections外部服务连接Foundry 的连接connection机制用于安全托管外部服务凭据如 Azure AI Search、Bing、存储等Agent 通过连接名引用服务而无需在代码中暴露密钥# List all connections connections client.connections.list() for conn in connections: print(f{conn.name}: {conn.connection_type}) # Get specific connection connection client.connections.get(connection_namemy-search-connection)技能文档给出的最佳实践明确建议接入 AI Search、Bing 等外部服务时优先使用连接connections而非硬编码凭据这也是BingGroundingTool、AzureAISearchTool等工具能够直接工作的前提文档在工具表中标注 Bing Grounding requires connection。Deployments模型部署枚举在创建 Agent 前可以先枚举项目内可用的模型部署确认部署名与模型类型# List available model deployments deployments client.deployments.list() for deployment in deployments: print(f{deployment.name}: {deployment.model})deployment.name即create_agent中model参数应传入的部署名deployment.model为底层模型标识两者常不一致务必以枚举结果为准。Datasets 与 Indexes数据资产操作项目内的数据集与索引用于支撑评估与检索场景# List datasets datasets client.datasets.list() # List indexes indexes client.indexes.list()数据集datasets通常作为评估evaluation的数据来源索引indexes则是AzureAISearchTool检索的目标。二者与 Connections、Deployments 共同构成了 Foundry 项目的数据与资源底座。评估Evaluation质量评估是 Agent 上线的关键环节。技能文档展示的做法是通过get_openai_client()获取 OpenAI 兼容客户端再调用evals.runs.create发起评估运行# Using OpenAI client for evals openai_client client.get_openai_client() # Create evaluation with built-in evaluators eval_run openai_client.evals.runs.create( eval_idmy-eval, namequality-check, data_source{ type: custom, item_references: [{item_id: test-1}], }, testing_criteria[ {type: fluency}, {type: task_adherence}, ], )参数含义eval_id评估配置的标识data_source评估数据来源示例使用custom类型并给出条目引用item_referencestesting_criteria评估维度列表示例包含fluency流畅度与task_adherence任务遵循度两项内置评估器。技能文档还进一步规划了内置评估器built-in evaluators、基于代码/提示词的定制评估器custom evaluators以及批量评估 CLI 工具scripts/run_batch_evaluation.py等专题供需要深入评估体系的读者在对应参考文档中继续研究。异步客户端对于 IO 密集、需要并发编排多个 Agent 的应用应使用异步客户端azure.ai.projects.aiofrom azure.ai.projects.aio import AIProjectClient async with AIProjectClient( endpointos.environ[AZURE_AI_PROJECT_ENDPOINT], credentialDefaultAzureCredential(), ) as client: agent await client.agents.create_agent(...) # ... async operations技能文档的最佳实践第一条即强调异步客户端务必使用上下文管理器async with确保底层连接与资源能够被正确释放。Memory StoresAgent 持久记忆通过创建记忆存储memory store并挂载MemorySearchTool可以让 Agent 跨会话保留上下文# Create memory store for agent memory_store client.agents.create_memory_store( nameconversation-memory, ) # Attach to agent for persistent memory agent client.agents.create_agent( modelos.environ[AZURE_AI_MODEL_DEPLOYMENT_NAME], namememory-agent, tools[MemorySearchTool()], tool_resources{memory: {store_ids: [memory_store.id]}}, )关键点create_memory_store返回的store_ids必须通过tool_resources的memory.store_ids字段显式挂载到 Agent 上同时以MemorySearchTool作为工具Agent 才能在对话中实际检索历史记忆。这与 AAS 仓库中其他记忆类技能如 agent-memory、memory-systems的理念一致记忆不是隐式的而是显式建模、显式注入的资源。最佳实践清单技能文档总结了 5 条核心实践适用于生产级 Foundry Agent 应用异步客户端使用上下文管理器async with AIProjectClient(...) as client:保证资源释放用完清理 Agentclient.agents.delete_agent(agent.id)避免孤儿资源累积简单运行用create_and_process实时交互用流式streaming前者代码简洁、后者体验更好生产部署使用版本化 Agent借助create_versionPromptAgentDefinition实现可回滚的发布流程外部服务集成优先走 ConnectionsAI Search、Bing 等统一通过连接托管凭据避免密钥散落。SDK 对比azure-ai-projects 与 azure-ai-agents技能文档最后给出了两个 SDK 的选型对照这是决定用什么 SDK的关键依据Featureazure-ai-projectsazure-ai-agentsLevelHigh-level (Foundry)Low-level (Agents)ClientAIProjectClientAgentsClientVersioningcreate_version()Not availableConnectionsYesNoDeploymentsYesNoDatasets/IndexesYesNoEvaluationVia OpenAI clientNoWhen to useFull Foundry integrationStandalone agent apps结论如果你的应用需要完整对接 Foundry 项目能力连接、部署、数据资产、评估、版本化 Agent选择azure-ai-projects如果只是构建独立、轻量的 Agent 应用、不依赖项目级资源则azure-ai-agents更合适。在 AAS 仓库中后者对应的技能是 agents-v2-py二者可对照阅读。适用场景与边界适用场景任何需要在 Microsoft Azure AI Foundry 上构建、编排、评估 Agent 的 Python 项目——包括企业知识库问答、代码执行助手、多工具编排工作流、批量质量评估流水线等。边界与注意事项摘自技能文档的 Limitations 部分仅在任务明确匹配上述范围时使用本技能不要将技能输出视为环境特定验证、测试或专家评审的替代品当必要输入、权限、安全边界或成功标准缺失时应停下来向用户请求澄清而不是猜测继续。本技能的完整权威文本位于 plugins/agentic-awesome-skills/skills/azure-ai-projects-py/SKILL.md并在 plugins/agentic-awesome-skills-claude/skills/azure-ai-projects-py/SKILL.md 中为 Claude 插件同步维护。仓库内同主题的 TypeScript / Java / .NET 版本分别见 azure-ai-projects-ts、azure-ai-projects-java、azure-ai-projects-dotnet可在多语言团队中对照使用。赞分享AI 技能AI 插件人工智能【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills点击查看免费下载相关推荐Tropos API集成完全指南如何高效使用Forecast.io天气数据Tropos API集成完全指南如何高效使用Forecast.io天气数据 想要为你的iOS应用添加专业的天气功能吗Tropos提供了一个优雅的解决方案这AI 技能AI 插件人工智能使用 Azure AI Projects TypeScript SDK 构建 AI 代理工作流Azure AI Foundry 项目接入实战指南使用 Azure AI Projects TypeScript SDK 构建 AI 代理工作流Azure AI Foundry 项目接入实战指南 导读 本文围AI 技能AI 插件人工智能agentic-awesome-skills 中的 azure-ai-textanalytics-py 技能Azure AI 语言服务 Python SDK 完整实战指南agentic awesome skills 中的 azure ai textanalytics py 技能Azure AI 语言服务 Python SDKAI 技能AI 插件人工智能上一篇抖音无水印下载终极指南从零开始构建个人视频库的完整方案下一篇Harvester 节点级 iptables 安全加固指南按节点角色开放端口并用 CloudInit CRD 持久化规则创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →