McpToolRegistrationService 类
为代理框架代理提供 MCP 工具注册服务。
此服务使用 Agent Framework 代理处理 MCP(模型上下文协议)工具服务器的注册和管理。
构造函数
McpToolRegistrationService()
参数
| 名称 | 说明 |
|---|---|
|
logger
|
默认值: None
|
方法
| __init__ |
初始化 Agent Framework 的 MCP 工具注册服务。 |
| __new__ | |
| add_tool_servers_to_agent |
将 MCP 工具服务器添加到 RawAgent(镜像 .NET 实现)。 |
| cleanup |
清理服务使用的任何资源。 |
| send_chat_history_from_store |
将聊天历史记录从 HistoryProvider 发送到 MCP 平台。 这是一种便捷的方法,用于从存储和委托中提取消息到 send_chat_history_messages()。 |
| send_chat_history_messages |
将聊天历史记录消息发送到 MCP 平台进行实时威胁防护。 这是处理消息转换和委派到核心工具服务的主要实现方法。 注释 即使chat_messages为空或所有消息在 转换,请求仍将发送到 MCP 平台。 这 确保注册来自 turn_context.activity.text 的用户消息 正确用于实时威胁防护。 |
__init__
__new__
__new__(**kwargs)
add_tool_servers_to_agent
将 MCP 工具服务器添加到 RawAgent(镜像 .NET 实现)。
async add_tool_servers_to_agent(chat_client: OpenAIChatClient, agent_instructions: str, initial_tools: List[object], auth: Authorization, auth_handler_name: str, turn_context: TurnContext, auth_token: str | None = None) -> RawAgent
参数
| 名称 | 说明 |
|---|---|
|
chat_client
必需
|
<xref:OpenAIChatClient>
聊天客户端实例(OpenAIChatClient 支持 OpenAI 和 Azure OpenAI) |
|
agent_instructions
必需
|
代理行为的说明 |
|
initial_tools
必需
|
要添加到代理的初始工具列表 |
|
auth
必需
|
<xref:Authorization>
令牌交换的授权上下文 |
|
auth_handler_name
必需
|
授权处理程序的名称。 |
|
turn_context
必需
|
<xref:TurnContext>
为作轮次上下文 |
|
auth_token
|
用于身份验证的可选持有者令牌 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
<xref:RawAgent>
|
已注册 MCP 工具的 RawAgent 实例。 |
例外
| 类型 | 说明 |
|---|---|
|
如果代理创建失败。 |
cleanup
清理服务使用的任何资源。
async cleanup()
send_chat_history_from_store
将聊天历史记录从 HistoryProvider 发送到 MCP 平台。
这是一种便捷的方法,用于从存储和委托中提取消息到 send_chat_history_messages()。
async send_chat_history_from_store(chat_message_store: HistoryProvider, turn_context: TurnContext, tool_options: ToolOptions | None = None) -> OperationResult
参数
| 名称 | 说明 |
|---|---|
|
chat_message_store
必需
|
<xref:agent_framework._sessions.HistoryProvider>
包含对话历史记录的 HistoryProvider。 |
|
turn_context
必需
|
来自包含聊天信息的代理 SDK 的 TurnContext。 |
|
tool_options
|
请求的可选配置。 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
指示操作成功或失败的 OperationResult。 |
例外
| 类型 | 说明 |
|---|---|
|
如果chat_message_store或turn_context为 None。 |
示例
>>> service = McpToolRegistrationService()
>>> result = await service.send_chat_history_from_store(
... thread.chat_message_store, turn_context
... )
send_chat_history_messages
将聊天历史记录消息发送到 MCP 平台进行实时威胁防护。
这是处理消息转换和委派到核心工具服务的主要实现方法。
注释
即使chat_messages为空或所有消息在
转换,请求仍将发送到 MCP 平台。 这
确保注册来自 turn_context.activity.text 的用户消息
正确用于实时威胁防护。
async send_chat_history_messages(chat_messages: Sequence[Message], turn_context: TurnContext, tool_options: ToolOptions | None = None) -> OperationResult
参数
| 名称 | 说明 |
|---|---|
|
chat_messages
必需
|
Sequence[<xref:agent_framework._types.Message>]
要发送的 Agent Framework 消息对象的序列。 可以为空 - 请求仍将发送到从 turn_context.activity.text 注册用户消息。 |
|
turn_context
必需
|
来自包含聊天信息的代理 SDK 的 TurnContext。 |
|
tool_options
|
请求的可选配置。 如果未提供,则默认为 AgentFramework 特定的选项。 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
|
指示操作成功或失败的 OperationResult。 |
例外
| 类型 | 说明 |
|---|---|
|
如果chat_messages或turn_context为 None。 |
示例
>>> service = McpToolRegistrationService()
>>> messages = [Message(role="user", text="Hello")]
>>> result = await service.send_chat_history_messages(messages, turn_context)
>>> if result.succeeded:
... print("Chat history sent successfully")