Token导航 LogoToken导航TokenDH.com
Foundry Agent MCP logo
AI代理stdio官方级别未说明来源级核验

Foundry Agent MCP

MCP Server

FoundryAgent-MCP是一个展示如何驱动Azure AI Foundry代理的Python示例,支持调用MCP工具、文件搜索工具和连接其他代理,适用于需要多工具协作和增强响应的场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理Python工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pdas-codespace

提供方

pdas-codespace

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m pip install -r requirements.txt

详细介绍

FoundryAgent-MCP 翻译为中文是:“Foundry代理-MCP(或:Foundry代理-多控制平面/管理控制平面,具体翻译取决于MCP在此上下文中的具体含义)”。不过,由于“MCP”可能是一个特定于某个领域或公司的缩写,没有上下文很难给出最准确的翻译,所以这里提供了两种可能的解释。在实际应用中,应根据具体上下文来确定最合适的翻译

概述

FoundryAgent-MCP 是一个 Python 示例,展示了如何驱动一个 Azure AI Foundry 代理,该代理能够调用:

  1. 模型上下文协议(MCP)工具(例如,一个暴露天气信息的MCP服务器) get_alertsget_forecast)。
  2. 当您提供现有的向量存储ID时,Foundry的“文件”(向量存储)搜索工具可用于检索增强型响应。
  3. 通过AI Foundry的“连接代理”工作流编排功能,使用另一个代理作为工具

它还向Azure Monitor / Application Insights流式传输操作遥测数据。该项目会配置一个AI项目客户端,创建一个与您的模型部署绑定的代理,绑定MCP(机器学习编排器)和(可选)文件搜索功能,并协调执行整个流程,包括调用连接代理、调用MCP工具以及步骤级别的跟踪。

主要特点

  • Azure AI Foundry 代理编排 由……提供支持/驱动 azure-ai-projects 并且 azure-ai-agents
  • MCP工具集成 用于天气数据查询(get_alertsget_forecast)。
  • 铸造文件搜索(向量存储)集成 通过提供现有的向量存储ID来 FILES_VECTOR_STORE_IDS (无需重建商店)。
  • 连接代理协调代理可以在单次运行中选择MCP工具和文件搜索(需通过工具审批关卡),从而实现多工具推理。
  • 步骤级追踪与推理捕捉 当……的时候 ENABLE_STEP_TRACE=true (显示增量运行步骤和建议的工具调用)。
  • Application Insights 监控 通过Azure Monitor OpenTelemetry导出器,实现结构化日志记录和跨度追踪。
  • 环境驱动的配置 使用一个 .env 文件和 python-dotenv

先决条件

  • Python 3.10 或更高版本(已测试过 3.12 版本)。
  • 一个可访问Azure AI项目和模型部署的Azure订阅。
  • 如果您需要遥测数据,请使用一个 Application Insights(Azure Monitor)资源。
  • 访问一个与MCP兼容的天气服务(示例中需要提供服务器URL和标签)。

项目结构

WeatherAgent.py     # Main entry point that sets up and runs the agent
requirements.txt    # Python dependencies
.env                # Environment variable template (do not commit real secrets)

Configuration

  1. Copy .env and fill in the required values:

- PROJECT_ENDPOINT: Azure AI project endpoint URL. - MODEL_DEPLOYMENT_NAME: Name of your model deployment (e.g. gpt-4o). - MCP_SERVER_URL: Base URL of the Weather MCP server. - MCP_SERVER_LABEL: Friendly label for the MCP server (used in the tool definition). - APPLICATIONINSIGHTS_CONNECTION_STRING: *(optional)* Connection string for your Application Insights instance. - FILES_VECTOR_STORE_IDS: *(optional)* Comma-separated list of existing vector store IDs to enable the File Search tool (e.g. vs_weather_docs,vs_adventure_gear). If omitted, File Search is not attached. - AGENT_INSTRUCTIONS: *(optional)* Override system instructions for the agent (multi-line supported). If not set, defaults provided in code. - USER_ADVENTURE_PROMPT / USER_WEATHER_PROMPT: *(optional)* Override initial user message. - ENABLE_STEP_TRACE: *(optional, default true)* Emit live run step tracing (reasoning + pending tool calls) to console + telemetry. - AGENT_ID: *(optional)* If set, reuses an existing agent instead of creating a new one. Clear/unset this if you add new tools (e.g. File Search) and need them attached during agent creation. - CONNECTED_AGENT_ID: *(optional)* If set, uses an existing agent to create a connected workflow

  1. Ensure you are authenticated for Azure (e.g. az login, managed identity, or service principal creds).

Install dependencies

python -m pip install -r requirements.txt
If you are using a virtual environment, activate it first (e.g. .\.venv\Scripts\Activate.ps1).

Run the agent

python WeatherAgent.py

如果你添加 FILES_VECTOR_STORE_IDS 稍后(或之前)已固定(或置顶)了一个 AGENT_ID,清晰 AGENT_ID 因此,代理被重新创建,并绑定了文件搜索工具:

Remove-Item Env:AGENT_ID -ErrorAction SilentlyContinue
$env:FILES_VECTOR_STORE_IDS = "vs_weather_docs,vs_adventure_gear"
python WeatherAgent.py

该脚本将:

  1. (如果提供了Application Insights连接字符串)则初始化遥测。
  2. 创建一个绑定到指定模型部署的代理。
  3. 附加MCP工具定义,并可选地附加文件搜索工具定义(如果 FILES_VECTOR_STORE_IDS (当前)并创建代理。
  4. 发布已配置的用户消息并创建运行。
  5. 轮询运行状态;当模型提议工具调用时,运行进入 requires_action 并且脚本会自动批准符合条件的MCP/File Search调用。
  6. 将流运行状态、实时步骤追踪(如已启用)、工具审批以及对话数据输出到控制台(并在启用时输出到Application Insights)。

代理编排流程

User Prompt -> Agent (system instructions) -> Model reasoning -> (Propose tool calls?) -> requires_action
      -> Tool approvals (script) -> submit approvals -> model executes tools (MCP / File Search)
      -> Additional reasoning -> final answer -> run completion

步进追踪打印出的线条如下所示:

[STEP TRACE] id=step_abc status=in_progress type=message_creation
   tool_calls (1 pending):
      - id=call_xyz type=file_search

这些也会作为OpenTelemetry跨度事件发出,以便进行深入诊断。

使用 Application Insights 进行监控

  • 日志以结构化属性发出(weather_agent 日志记录器(logger)。
  • 一个名为(某名)的跨度 weather_agent.run 捕获整体执行情况;在 Application Insights > 事务中进行检查。
  • 每个SDK调用都被封装在一个子跨度(例如。 runs.createrun_steps.list)。
  • 实时运行步骤(启用时)以名为的跨度事件形式出现 run_step 具有以下属性: step.idstep.statustool.call.count,以及任何启发式方法 step.reasoning 文本已捕获。
  • 工具选择决策通过事件记录 tool_selectiontool_selection_error
  • 通过扩展助手来添加自定义指标或追踪信息 log_info 函数或使用 tracer 例子

通用遥测属性

属性含义
weather.agent_id创建/重用的代理ID
weather.run.status最终运行状态
weather.user_prompt截断的初始用户提示(前500个字符)
step.reasoning捕获的推理片段(启发式)
tool.call.count该步骤中提议的工具调用次数

故障排除

  • 缺少导入项python -m pip install -r requirements.txt 拉取所有依赖项。
  • 认证错误确认 az login 或者服务主体环境变量已设置。
  • 遥测数据未显示请再次检查Application Insights的连接字符串,并验证出站网络访问。
  • 文件搜索工具未使用确保 FILES_VECTOR_STORE_IDS 在创建代理之前进行设置,并且 AGENT_ID 未设置,因此会创建一个新的代理。请确认向量存储ID是有效的。
  • 未提出任何工具调用这个模型可能认为它可以直接回答——请加强指令,要求“在回答产品或目录相关问题之前,先使用文件搜索”。进行调整 AGENT_INSTRUCTIONS 因此,相应地。
  • 现有代理缺少新工具移除 AGENT_ID 或者删除该代理,以便使用更新的工具定义重新创建它。

下一步

  • 将示例MCP URL替换为您自己的工具服务器。
  • 将用户提示参数化以接受动态输入。
  • 将代理打包为 Azure 函数、容器应用或 Web 作业以实现自动化。
  • 通过自定义指标或仪表板扩展监控功能。
  • 为长时间运行添加重试/退避或指数级轮询策略。
  • 集成一个命令行界面(CLI)标志,用于在冒险模式和天气指令配置文件之间切换。
  • 将缓存运行步骤或响应保存到磁盘以供离线分析。

目录标签

目录标签

AI代理Python工作流自动化本地部署工具集成AzureAI多工具协作增强响应

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP