Token导航 LogoToken导航

MCP Server · AI代理

Azure Foundry Multi Agents Workflow

一个基于微软智能体框架的多智能体编排系统,支持本地开发或作为托管工作流部署在Azure AI Foundry上。

stdio官方级别未说明来源级核验工具 3
云部署PythonAI代理

快速开始

作者 / 组织
msftse
提供方
msftse

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Azure Foundry Multi Agents Workflow 属于AI代理类 MCP Server,公开资料标注 3 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

AI代理

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

使用Microsoft Agent框架的多Agent群聊

系统同时支持这两种功能 本地开发 和 云部署 作为上的托管工作流 Azure AI Foundry.

The multi-agent workflow running in Azure AI Foundry — the Orchestrator routes a user query to the JiraAgent, which returns matching Jira issues via MCP.

目录

- 本地模式 - Azure AI Foundry部署 -

建筑

该项目支持两种编排模式,它们共享相同的代理和MCP工具:

顺序(群聊)

一种中心轮辐模式,编排者委托给 一次一个代理人 在循环中:

                                  ┌──────────────┐
                                  │  SlackAgent   │
                              ┌──>│  (MCP / SSE)  │──> APIM ──> Slack
                              │   └──────────────┘
┌──────┐    ┌──────────────┐  │   ┌──────────────┐
│ User │───>│ Orchestrator │──┼──>│  JiraAgent    │──> APIM ──> Jira
└──────┘    │   (GPT-4o)   │  │   │  (MCP / SSE)  │
            └──────────────┘  │   └──────────────┘
                              │   ┌──────────────┐
                              └──>│ GitHubAgent   │──> GitHub Copilot MCP
                                  │  (MCP / SSE)  │
                                  └──────────────┘

并联(扇出/扇入)

编排者选择 同时使用多个代理,它们都会执行,合成器会将它们的结果组合成一个最终答案:

                              ┌──────────────┐
                          ┌──>│  SlackAgent   │──┐
                          │   └──────────────┘   │
┌──────┐    ┌─────────┐  │   ┌──────────────┐   │   ┌──────────────┐
│ User │───>│ Router  │──┼──>│  JiraAgent    │──┼──>│ Synthesizer  │───> Final Answer
└──────┘    │(GPT-4o) │  │   └──────────────┘   │   │   (GPT-4o)   │
            └─────────┘  │   ┌──────────────┐   │   └──────────────┘
                          └──>│ GitHubAgent   │──┘
                              └──────────────┘
模式入口点代理如何连接到MCP服务器
本地(顺序)main.py定制包装(RawMCPSseTool, RawMCPStdioTool)直接连接
本地(并行)main_parallel.py相同的包装器,代理通过并发运行 asyncio.gather
铸造厂(顺序)pipeline/publish.py本地MCP工具定义(type: "mcp")--Foundry运行时代表代理进行连接
铸造厂(平行)pipeline/publish_parallel.py相同的原生MCP工具,通过条件代理调用扇出

特性

  • 两种编排模式 --顺序(群聊)用于迭代多回合路由,并行(扇出/扇入)用于并发多代理执行,并具有合成结果
  • 基于意图的路由 --编排器分析每个用户消息并将其委托给正确的代理
  • 三名专业代理 --Slack、Jira和GitHub,每个都有完整的MCP工具访问权限
  • 双执行模式 --在本地运行以进行开发或部署到Azure AI Foundry进行生产
  • 本地MCP集成 --Foundry托管代理使用本地MCP工具定义来执行服务器端工具
  • 安全的凭证处理 --通过Foundry进行GitHub MCP认证 项目连接,不是内联秘密
  • 声明性工作流 --Foundry部署使用具有条件路由的YAML工作流

MCP工具服务器

服务器传输端点描述
SlackSSE通过APIMhttps://.azure-api.net/slack-mcp-1/sse频道列表、消息历史、发布消息
JiraSSE通过APIMhttps://.azure-api.net/jira-mcp-1/sse问题搜索、项目列表、冲刺管理
GitHubSSE(远程)https://api.githubcopilot.com/mcp/存储库浏览、文件访问、问题管理

Slack和Jira MCP服务器托管在 Azure API管理 作为远程MCP网关。有关设置自己的APIM托管MCP服务器,请参阅:

msftse/remote mcp-apim函数python --在具有OAuth 2.0身份验证的APIM网关后面的Azure Functions和容器应用程序上部署远程MCP服务器。

GitHub使用托管 直接通过Foundry项目连接进行身份验证。

项目结构

.
├── main.py                        # Local entrypoint — sequential group chat
├── main_parallel.py               # Local entrypoint — parallel fan-out/fan-in
├── pyproject.toml                 # Project metadata and dependencies
├── .env.example                   # Environment variable template
│
├── .github/workflows/
│   └── ci-cd.yml                  # GitHub Actions: lint → deploy → evaluate
│
├── evaluation/                    # Agent evaluation suite
│   ├── run_evaluation.py          # Agent target evaluation runner
│   ├── agent_eval_data.jsonl      # 40 query-only test cases for live eval
│   ├── evaluation_data.jsonl      # Full test cases with expected agents & tools
│   └── tool_definitions.json      # MCP tool schemas for all agents
│
├── pipeline/                      # Azure AI Foundry deployment
│   ├── agents.py                  # Agent factories — sequential workflow
│   ├── publish.py                 # CLI: register/deploy/verify — sequential
│   ├── workflow.yaml              # Declarative workflow — sequential routing
│   ├── parallel_agents.py         # Agent factories — parallel workflow (Router + Synthesizer + 3 tool agents)
│   ├── publish_parallel.py        # CLI: register/deploy/verify — parallel
│   └── parallel_workflow.yaml     # Declarative workflow — fan-out via 3 ConditionGroups
│
└── src/                           # Core application code
    ├── config.py                  # Centralized configuration from .env
    ├── workflow.py                # GroupChat builder (sequential, local mode)
    ├── parallel_workflow.py       # Fan-out/fan-in builder (parallel, local mode)
    ├── prompts/                   # Agent names, instructions, and descriptions
    │   ├── orchestrator.py        # Sequential orchestrator prompt
    │   ├── parallel_orchestrator.py # Router + Synthesizer prompts
    │   ├── slack.py
    │   ├── jira.py
    │   └── github.py
    ├── agents/                    # Local agent factories with MCP wrappers
    │   ├── orchestrator.py        # Sequential orchestrator factory
    │   ├── parallel_orchestrator.py # Router + Synthesizer factories
    │   ├── slack_agent.py
    │   ├── jira_agent.py
    │   └── github_agent.py
    └── tools/                     # MCP transport wrappers
        ├── raw_mcp_sse.py         # SSE transport (Slack, Jira via APIM)
        └── raw_mcp_stdio.py       # Stdio transport (GitHub MCP server binary)

先决条件

  • Python 3.10+
  • Azure OpenAI 资源与a gpt-4o (或同等)模型部署
  • MCP服务器 可通过APIM(Slack、Jira)或远程(GitHub)访问——请参阅 MCP工具服务器
  • Azure AI Foundry项目 随着 DefaultAzureCredential 访问 *(仅适用于云部署)*

入门指南

1.克隆存储库并安装依赖项

git clone https://github.com//multi-agents-poc-maf.git
cd multi-agents-poc-maf
pip install -e .

2.配置环境变量

cp .env.example .env

编辑 .env 并填写你的价值观。看 .env.example 查看完整列表。

必需变量
变量描述
AZURE_OPENAI_ENDPOINT您的Azure OpenAI资源端点
AZURE_OPENAI_API_KEYAzure OpenAI API密钥
SLACK_MCP_SSE_URLAPIM托管的Slack MCP SSE端点
JIRA_MCP_SSE_URLAPIM托管Jira MCP SSE端点
GITHUB_PERSONAL_ACCESS_TOKEN用于MCP身份验证的GitHub个人访问令牌
Foundry部署所需
变量描述
AZURE_AI_PROJECT_ENDPOINTAzure AI Foundry项目端点
AZURE_SUBSCRIPTION_IDAzure订阅ID
AZURE_AI_RESOURCE_GROUP包含Foundry项目的资源组
AZURE_AI_PROJECT_NAME铸造项目名称

用法

本地模式

在本地运行多代理系统。选择 顺序的 (群聊)或 平行 (扇出/扇入)模式。

顺序(群聊)

编排器在循环中将您的请求一次路由到一个代理:

# Interactive mode
python main.py

# Single task
python main.py "List my Slack channels"
python main.py "What Jira tickets are assigned to me?"
python main.py "List my GitHub repositories"
并联(扇出/扇入)

路由器一次选择多个代理,它们并发执行,合成器组合结果:

# Interactive mode
python main_parallel.py

# Single task — multi-agent queries benefit most from parallel execution
python main_parallel.py "List Slack channels and Jira projects"
python main_parallel.py "Show my GitHub repos and recent Slack messages"

Azure AI Foundry部署

注册代理并将工作流部署到Azure AI Foundry,作为Foundry UI中可见的托管代理。

顺序工作流
# Register agents and workflow
python -m pipeline.publish --register

# Deploy via ARM API
python -m pipeline.publish --deploy

# Verify the deployed workflow
python -m pipeline.publish --verify
并行工作流
# Register agents (Router, Synthesizer, 3 tool agents) and workflow
python -m pipeline.publish_parallel --register

# Deploy via ARM API
python -m pipeline.publish_parallel --deploy

# Verify the deployed workflow
python -m pipeline.publish_parallel --verify

您还可以在Foundry中注册代理,并通过Foundry提供商在本地运行任务:

# Sequential
python -m pipeline.publish --run "Show my recent Slack messages"

# Parallel
python -m pipeline.publish_parallel --run "List Slack channels and Jira projects"

GitHub MCP连接设置

GitHub MCP服务器需要通过 铸造项目连接 (不是内联标头——Foundry拒绝这些标头)。创建一个 CustomKeys Foundry项目中的连接:

选项1:Azure门户

  1. 导航到您的AI Foundry项目 Azure 门户.
  2. 首选 互联资源 > +新建连接 > 自定义密钥.
  3. 集 凭证名称 到 Authorization 和 凭证值 到 Bearer .
  4. 命名连接 github-mcp-pat.

选项2:Azure CLI

az rest --method put \
  --url "https://management.azure.com//connections/github-mcp-pat?api-version=2025-04-01-preview" \
  --body '{
    "properties": {
      "authType": "CustomKeys",
      "category": "CustomKeys",
      "target": "https://api.githubcopilot.com/mcp/",
      "isSharedToAll": true,
      "credentials": {
        "keys": {
          "Authorization": "Bearer "
        }
      }
    }
  }'
注: 这 project_connection_id 本地MCP工具定义中的字段接受连接 名字 (例如。, github-mcp-pat),不是完整的ARM资源ID。

CI/CD

该存储库包括一个GitHub Actions管道(.github/workflows/ci-cd.yml)它自动化了linting、部署和评估:

Lint  ──>  Deploy to Foundry  ──>  Evaluate Workflow
阶段触发器它的作用
棉绒推送、PR、手动运行 ruff check 和 ruff format --check
部署推到 main,manual在Foundry中注册代理和工作流程,通过ARM API部署,运行烟雾测试。部署步骤公开新注册的代理版本(例如。 MultiAgentGroupChat:21)作为工作输出。
评估推到 main,手动运行官方 microsoft/ai-agent-evals GitHub针对刚刚部署的版本采取行动。结果出现在两个地方:工作流程 评估 Foundry中的选项卡,以及 GitHub操作运行摘要 具有置信区间和(当传递多个代理版本时)成对统计比较。A. 质量门 然后,该步骤解析呈现的分数,当任何评估者低于生产阈值时,该步骤将失败 evaluation/quality_gate.py --因此回归剂阻断PR
注: 在pull请求中,只有Lint阶段运行。部署和评估需要推动 main 或手动触发器。
为什么是官方行动? 这 microsoft/ai-agent-evals Action是微软在CI/CD中评估Foundry代理的标准路径——它处理数据集上传、 azure_ai_agent 目标、评估器接线(包括自动映射 tool_definitions 用于工具调用评估器)、轮询和报告呈现。看 微软学习。

必需的GitHub机密

在中配置这些 设置>秘密和变量>操作:

机密描述
AZURE_CREDENTIALS服务主体JSON(来自 az ad sp create-for-rbac --json-auth)
AZURE_AI_PROJECT_ENDPOINT铸造项目终点(`https://.services.ai.azure.com/api/projects/
`)
AZURE_OPENAI_ENDPOINTAzure OpenAI资源端点
AZURE_OPENAI_API_KEYAzure OpenAI API密钥
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME模型部署名称(例如。 gpt-4o)
AZURE_AI_MODEL_DEPLOYMENT_NAMEFoundry模型部署名称
AZURE_SUBSCRIPTION_IDAzure订阅ID
AZURE_RESOURCE_GROUP一般资源组
AZURE_AI_RESOURCE_GROUP包含Foundry项目的资源组
AZURE_AI_PROJECT_NAME铸造项目名称
SLACK_MCP_SSE_URLAPIM托管的Slack MCP SSE端点
JIRA_MCP_SSE_URLAPIM托管Jira MCP SSE端点
GH_PAT用于MCP身份验证的GitHub个人访问令牌
GH_MCP_URLGitHub Copilot MCP端点

服务主要角色

用于CI/CD的服务主体需要在 认知服务帐户 支持您的Foundry项目:

角色为什么
贡献者ARM级操作(部署工作流、管理资源)
认知服务用户数据平面操作(agents/write, agents/read).必需,因为代理CRUD在以下情况下使用数据操作 Microsoft.CognitiveServices/accounts/AIServices/*,这些不在贡献者或Azure AI开发人员的覆盖范围内。

为他们分配:

# Contributor on the subscription (or scope to resource group)
az role assignment create \
  --assignee  \
  --role "Contributor" \
  --scope /subscriptions/

# Cognitive Services User on the Cognitive Services account
az role assignment create \
  --assignee  \
  --role "Cognitive Services User" \
  --scope /subscriptions//resourceGroups//providers/Microsoft.CognitiveServices/accounts/

手动触发

您可以通过以下方式手动触发管道 操作>CI/CD>运行工作流,可以选择跳过评估步骤。

评估

该项目提供了两种评估部署情况的方法 多代理群聊 工作流程。两者都通过 铸造云评估API 并将结果发布到工作流 评估 Foundry门户中的选项卡。

路径何时使用如何使用
GitHub官方行动 (在CI/CD中推荐)在每个推送/PR/夜间时间表上运行评估microsoft/ai-agent-evals --驱动由 evaluation/agent-eval-dataset.json
Python SDK脚本 (建议本地开发人员使用)迭代评估器配置,探索云评估SDKpython -m evaluation.run_evaluation

评估者

CI/CD数据集(evaluation/agent-eval-dataset.json)连接12个内置评估器,共同发出生产准备就绪信号:

类别评估者它衡量什么
代理人行为builtin.intent_resolution代理是否识别用户的意图?
代理人行为builtin.task_adherence响应是否符合代理分配的任务?
代理人行为builtin.task_completion代理是否端到端完成了任务?
工具使用builtin.tool_call_accuracy客服是否使用正确的参数调用了正确的MCP工具?
工具使用builtin.tool_selection客服是否选择了必要的工具?
工具使用builtin.tool_call_success工具调用是否成功,没有出现技术错误?
质量builtin.coherence反应在逻辑上是否连贯?
质量builtin.fluency回复写得好吗?
安全builtin.violence, builtin.hate_unfairness, builtin.self_harm, builtin.sexual该代理是否会释放不安全的内容?

路径1——微软官方行动(CI/CD)

工作流已经将其连接起来。每次推 main 对刚刚部署的版本运行官方Action,并在GitHub Actions run中呈现摘要表:

- name: Run Microsoft AI Agent Evaluation
  uses: microsoft/ai-agent-evals@v3-beta
  with:
    azure-ai-project-endpoint: ${{ secrets.AZURE_AI_PROJECT_ENDPOINT }}
    deployment-name: ${{ secrets.AZURE_AI_MODEL_DEPLOYMENT_NAME }}
    agent-ids: ${{ needs.deploy.outputs.agent_id }}    # e.g. MultiAgentGroupChat:21
    data-path: ${{ github.workspace }}/evaluation/agent-eval-dataset.json

Action处理数据集上传、评估器连接(包括自动映射) tool_definitions 对于工具调用评估器)、轮询和呈现。要通过统计显著性测试并排比较两个版本,请用逗号分隔:

agent-ids: "MultiAgentGroupChat:20,MultiAgentGroupChat:21"
质量门——块回归

The Action报告得分,但确实如此 不 以低分不及格。回购船 evaluation/quality_gate.py 它解析Action的GitHub步骤摘要,应用每个评估者的阈值,并在任何回归中退出非零。在操作后立即将其连接到工作流中:

- name: Quality gate
  if: always()
  run: python evaluation/quality_gate.py

编辑 THRESHOLDS dict in quality_gate.py 以匹配您的生产标准(默认值:行为/工具评估员的通过率为70%,响应质量为80-90%,四名安全评估员为95%)。当关卡失败时,作业和PR检查也会失败,降价摘要会得到一个“质量关卡:失败”表,其中包含违规指标和增量,以便审阅者立即看到退化的内容。

路径2-Python SDK脚本(本地开发)

pip install -e ".[eval]"
python -m evaluation.run_evaluation

evaluation/run_evaluation.py 是底层的一个独立示例 azure-ai-projects 云评估SDK --它创建了一个 azure_ai_target_completions 具有a的数据源 azure_ai_agent 目标,附三名评估员(intent_resolution, tool_call_accuracy, task_adherence),轮询完成情况,并将详细结果保存到 evaluation/agent_eval_results.json。当您需要Action不公开的细粒度控制时,请将其用作参考(自定义评估器参数、 azure_ai_responses 用于通过ID等评估过去响应的流程)。

查看结果

  • 铸造门户 --在中打开您的工作流 铸造厂 然后前往 评估 选项卡。
  • GitHub操作摘要 --该操作直接在工作流运行下发布了一个每个评估者的评分表,其中包含置信区间。

评估数据集

40个查询,分为四类:

类别计数路由目标
Slack10SlackAgent
Jira12Jira代理
GitHub12GitHubAgent
多代理6多步查询测试第一跳路由

评估文件

文件描述
evaluation/agent-eval-dataset.json由消耗的CI/CD数据集 microsoft/ai-agent-evals (查询+评估者列表)
evaluation/agent_eval_data.jsonlPython SDK脚本使用的仅查询数据集
evaluation/evaluation_data.jsonl包含预期代理、工具和参数的完整数据集(用于离线分析)
evaluation/tool_definitions.json所有三个代理的MCP工具模式
evaluation/run_evaluation.py云评估SDK示例(路径2)

关键设计决策

决定理由
Foundry的原生MCP工具字典工具代理使用原始 type: "mcp" 字典(不是 FunctionTool 包装器),因此Foundry运行时在执行时连接到MCP服务器。这是必需的,因为Foundry拒绝包含敏感数据的内联身份验证标头。
双执行模式本地模式使用自定义MCP包装器(RawMCPSseTool, RawMCPStdioTool)用于直接连接;Foundry模式使用本机MCP工具定义。两者共享相同的提示和配置。
身份验证的项目连接GitHub MCP认证使用Foundry CustomKeys 连接而不是内联标头,遵循Foundry的敏感凭据安全模型。
声明式工作流YAMLFoundry部署使用 ConditionGroup 用于基于意图的路由和 kind: If 随着 GotoAction 对于多循环,保持编排逻辑的声明性和版本控制。
平行扇出/扇入并行工作流使用Router代理预先选择代理,并发调用它们(通过本地 asyncio.gather,在Foundry通过3独立 ConditionGroup 并且合成器将所有结果组合成单个综合答案。Foundry YAML缺少原生并行原语,因此独立 ConditionGroup 块模拟扇出。
集中式配置所有设置都通过键入的 Config 数据类在 src/config.py,从加载 .env 通过 load_config().

已知限制

  • 多步布线:循环机制(GotoAction)在Foundry托管的工作流中第一个子代理完成后,不会可靠地启动。每个用户的单代理路由正常工作。
  • SDK预览:此项目使用Microsoft Agent Framework SDK的预发布版本。API在未来的版本中可能会发生变化。

资源

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

多智能体协作Python本地部署AzureAIFoundry模型上下文协议智能路由云部署

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Azure Foundry Multi Agents Workflow

MCP World · 本页

3stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Azure Foundry Multi Agents Workflow 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Azure Foundry Multi Agents Workflow 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Azure Foundry Multi Agents Workflow 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Azure Foundry Multi Agents Workflow 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Azure Foundry Multi Agents Workflow 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP