重要提示
你需要是边境预览计划的一部分,才能提前访问 Microsoft Agent 365。 边界将你直接与Microsoft最新的 AI 创新联系起来。 边境预览版受客户协议现有预览条款的约束。 由于这些功能仍在开发中,其可用性和功能可能会随时间而变化。
工具模块使开发人员能够发现、配置模型上下文协议(MCP)服务器并将其集成到 AI 代理工作流中。 MCP 服务器将外部功能公开为 AI 代理可以调用的工具。 有关可用工具服务器的概述,请参阅 代理 365 工具服务器。
概述
代理 365 工具集成遵循四步工作流:
- 配置 MCP 服务器 - 使用代理 365 CLI 发现和添加 MCP 服务器
-
生成清单 - CLI 使用服务器配置创建
ToolingManifest.json - 集成到代码 - 加载清单并向业务流程协调程序注册工具
- 调用工具 - 代理在执行过程中调用工具以执行作
先决条件
在配置备份服务之前,请确保具备以下先决条件::
- 已安装并配置代理 365 CLI
- .NET 8.0 SDK 或更高版本 - 下载
- Microsoft 365 租户的全局管理员
代理标识设置
如果使用代理身份验证,请在 配置 MCP 服务器之前完成代理注册过程 以创建代理标识。 这会创建代理应用 ID 和代理用户,使代理能够进行身份验证和访问 MCP 工具。
设置服务主体
运行此一次性安装脚本,在租户中创建代理 365 工具的服务主体。
重要提示
这是每个租户的一次性作,需要全局管理员权限。
以管理员身份打开 PowerShell 并导航到你保存了 PowerShell 脚本的目录。
运行以下脚本:
.\New-Agent365ToolsServicePrincipalProdPublic.ps1如果出现提示,请使用 Azure 凭据登录。
完成后,租户已准备好进行代理开发和 MCP 服务器配置。
配置 MCP 服务器
使用代理 365 CLI 发现、添加和管理代理的 MCP 服务器。 有关可用 MCP 服务器及其功能的完整列表,请参阅 MCP 服务器目录。
发现可用的计数器
列出可以配置的所有 MCP 服务器:
a365 develop list-available
添加 MCP 服务器
将一个或多个 MCP 服务器添加到代理配置:
a365 develop add-mcp-servers mcp_MailTools
列出配置的服务器
查看当前配置的 MCP 服务器:
a365 develop list-configured
管控 MCP 服务器
从配置中删除 MCP 服务器:
a365 develop remove-mcp-servers mcp_MailTools
有关完整的 CLI 参考,请参阅 a365 开发命令。
了解工具清单
运行 a365 develop add-mcp-servers时,CLI 会生成一个 ToolingManifest.json 文件,其中包含所有 MCP 服务器的配置。 代理运行时使用此清单来了解哪些服务器可用以及如何对其进行身份验证。
清单结构
示例: ToolingManifest.json
{
"mcpServers": [
{
"mcpServerName": "mcp_MailTools",
"mcpServerUniqueName": "mcp_MailTools",
"scope": "McpServers.Mail.All",
"audience": "api://05879165-0320-489e-b644-f72b33f3edf0"
}
]
}
清单参数
每个 MCP 服务器条目都包含:
| 参数设置 | 描述 |
|---|---|
| mcpServerName | 服务器的显示名称。 |
| mcpServerUniqueName | 执行实例的唯一标识符 |
| 作用域 | 访问 MCP 服务器功能所需的 OAuth 范围(例如: McpServers.Mail.All 邮件作)。 运行命令时,将从 MCP 服务器目录中检索此值 add-mcp-servers 。 |
| audience | 标识目标 API 资源的 Azure AD 应用程序 ID URI。 此值也从 MCP 服务器目录中检索。 |
备注
添加 MCP 服务器时,代理 365 CLI 会自动填充值 scope 和 audience 值。 这些值来自 MCP 服务器目录 ,并定义访问每个 MCP 服务器所需的权限。
将自定义工具集成到代理中
生成工具清单后,将配置的 MCP 服务器集成到代理代码中。 本部分介绍可选的检查步骤和所需的集成步骤。
列出工具服务器(可选)
小费
此步骤是可选的。 在将可用工具添加到业务流程协调程序之前,使用工具服务器配置服务检查工具清单中的可用工具服务器。
使用工具服务器配置服务从工具清单中发现代理可用的工具服务器。 此方法允许你:
- 从 查询所有配置的 MCP 服务器
ToolingManifest.json - 检索服务器元数据和功能
- 在注册之前验证服务器可用性
列出工具服务器的方法在核心工具包中可用:
# Use McpToolServerConfigurationService.list_tool_servers
from microsoft.agents.a365.tooling import McpToolServerConfigurationService
config_service = McpToolServerConfigurationService()
tool_servers = await config_service.list_tool_servers(agentic_app_id, auth_token)
参数:
| 参数 | 类型 | Description | 预期的值 | 必需/可选 |
|---|---|---|---|---|
agentic_app_id |
str | 应用程序实例的唯一标识符 | 有效的代理应用程序 ID 字符串 | 需要 |
auth_token |
str | 使用 MCP 服务器网关进行身份验证的持有者令牌 | 有效的 OAuth 持有者令牌 | 需要 |
包: microsoft-agents-a365-tooling
向业务流程协调程序注册工具
使用特定于框架的扩展方法向业务流程框架注册所有 MCP 服务器:
- .NET。
-
add_tool_servers_to_agent(Python)、 - Node.js:
这些方法:
- 将配置 MCP 服务器中的所有工具注册到业务流程协调程序
- 自动设置身份验证和连接详细信息
- 使工具立即可供代理调用
选择业务流程协调程序扩展
代理 365 工具模块为不同的业务流程框架提供专用扩展包:
- microsoft-agents-a365-tooling:核心工具功能
- microsoft-agents-a365-tooling-extensions-agentframework:Agent Framework 集成
- microsoft-agents-a365-tooling-extensions-azureaifoundry:Azure AI Foundry 集成
- microsoft-agents-a365-tooling-extensions-openai:OpenAI 集成
- microsoft-agents-a365-tooling-extensions-semantickernel:语义内核集成
备注
运行 a365 develop add-mcp-servers时代理 365 CLI 会自动配置身份验证。 OAuth 范围和访问群体值是从 MCP 服务器目录中检索的,并包含在其中 ToolingManifest.json。 扩展方法自动使用这些值来设置身份验证 - 无需手动配置。
有关详细的实现示例,请参阅 代理 365 示例。
实现示例
以下示例演示如何将 Agent 365 工具与不同的业务流程框架集成。
使用 OpenAI 的 Python
此示例演示如何在 Python 应用程序中将 MCP 工具与 OpenAI 集成。
添加 Import 语句。
添加所需的导入以访问工具模块和 OpenAI 扩展:
from microsoft.agents.a365.tooling import McpToolServerConfigurationService
from microsoft.agents.a365.tooling.extensions.openai import mcp_tool_registration_service
2. 初始化工具服务
创建配置和工具注册服务的实例:
# Create configuration service and tool service with dependency injection
self.config_service = McpToolServerConfigurationService()
self.tool_service = mcp_tool_registration_service.McpToolRegistrationService()
3. 向 OpenAI 代理注册 MCP 工具
使用此方法 add_tool_servers_to_agent 向 OpenAI 代理注册所有配置的 MCP 工具。 此方法同时处理代理身份验证和非AGENTIC 身份验证方案:
async def setup_mcp_servers(self, auth: Authorization, context: TurnContext):
"""Set up MCP server connections"""
try:
use_agentic_auth = os.getenv("USE_AGENTIC_AUTH", "false").lower() == "true"
if use_agentic_auth:
self.agent = await self.tool_service.add_tool_servers_to_agent(
agent=self.agent,
agentic_app_id=agentic_app_id,
auth=auth,
context=context,
)
else:
self.agent = await self.tool_service.add_tool_servers_to_agent(
agent=self.agent,
agentic_app_id=agentic_app_id,
auth=auth,
context=context,
auth_token=self.auth_options.bearer_token,
)
except Exception as e:
logger.error(f"Error setting up MCP servers: {e}")
方法参数
下表描述了与 add_tool_servers_to_agent 一起使用的参数。
| 参数设置 | 描述 |
|---|---|
agent |
要注册工具的 OpenAI 代理实例。 |
agentic_app_id |
代理的唯一标识符(代理应用 ID)。 |
auth |
用户的授权上下文。 |
context |
代理 SDK 中的当前聊天轮次上下文。 提供用于安全工具注册的用户标识、对话元数据和身份验证上下文。 |
auth_token |
(可选)非AGENTIC 身份验证方案的持有者令牌。 |
4. 初始化期间调用
在运行代理之前,请确保在初始化期间调用安装方法:
# Setup MCP servers during initialization
await self.setup_mcp_servers(auth, context)
该方法 add_tool_servers_to_agent 自动:
- 从ToolingManifest.json加载所有 MCP 服务器
- 将其工具注册到 OpenAI 代理
- 基于清单配置设置身份验证
- 使工具可供代理调用
有关完整的工作示例,请参阅 Agent 365 示例存储库。
测试和监视
测试您的智能体
将 MCP 工具集成到代理后,测试工具调用以确保它们正常工作并处理不同的方案。 按照测试指南设置环境,然后主要关注测试工具调用部分,以验证 MCP 工具是否按预期工作。
SDK 可观测性
向代理添加可观测性,以监视和跟踪代理的 MCP 工具调用、添加可观测性功能来跟踪性能、调试问题和了解工具使用模式。 详细了解如何实现跟踪和监视