McpToolRegistrationService 类

提供与语义内核中的工具相关的服务。

此服务使用语义内核代理处理 MCP(模型上下文协议)工具服务器的注册和管理。

构造函数

McpToolRegistrationService()

参数

名称 说明
logger
默认值: None

方法

__init__

初始化用于语义内核的 MCP 工具注册服务。

__new__
add_tool_servers_to_agent

将 A365 MCP 工具服务器添加到指定的内核。

cleanup_connections

清理所有连接的 MCP 插件。

send_chat_history

将语义内核聊天历史记录发送到 MCP 平台。

此方法从语义内核 ChatHistory 对象中提取消息,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台进行实时威胁防护。

send_chat_history_messages

将语义内核聊天历史记录消息发送到 MCP 平台。

此方法接受一系列语义内核 ChatMessageContent 对象,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台以进行实时威胁防护。

__init__

初始化用于语义内核的 MCP 工具注册服务。

__init__(logger: Logger | None = None)

参数

名称 说明
logger

日志记录作的记录器实例。

默认值: None

__new__

__new__(**kwargs)

add_tool_servers_to_agent

将 A365 MCP 工具服务器添加到指定的内核。

async add_tool_servers_to_agent(kernel: Kernel, auth: Authorization, auth_handler_name: str, context: TurnContext, auth_token: str | None = None) -> None

参数

名称 说明
kernel
必需

将向其添加工具的语义内核实例。

auth
必需

令牌交换的授权处理程序。

auth_handler_name
必需
str

授权处理程序的名称。

context
必需

为当前作轮次上下文。

auth_token
str | None

用于访问 MCP 服务器的身份验证令牌。

默认值: None

返回

类型 说明

例外

类型 说明

如果内核为 None 或必需参数无效。

如果连接到或配置 MCP 服务器时出错。

cleanup_connections

清理所有连接的 MCP 插件。

async cleanup_connections() -> None

返回

类型 说明

send_chat_history

将语义内核聊天历史记录发送到 MCP 平台。

此方法从语义内核 ChatHistory 对象中提取消息,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台进行实时威胁防护。

async send_chat_history(turn_context: TurnContext, chat_history: ChatHistory, limit: int | None = None, options: ToolOptions | None = None) -> OperationResult

参数

名称 说明
turn_context
必需

来自包含聊天信息的代理 SDK 的 TurnContext。

chat_history
必需

包含消息的语义内核 ChatHistory 对象。

limit
int | None

要发送的最大消息数可选。 如果指定,则发送最新的 N 消息。 如果为 None,则发送所有消息。

默认值: None
options

请求的可选配置。

默认值: None

返回

类型 说明

指示成功或失败的 OperationResult。

例外

类型 说明

如果turn_context或chat_history为 None。

示例


>>> from semantic_kernel.contents import ChatHistory
>>> from microsoft_agents_a365.tooling.extensions.semantickernel import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> chat_history = ChatHistory()
>>> chat_history.add_user_message("Hello!")
>>> chat_history.add_assistant_message("Hi there!")
>>>
>>> result = await service.send_chat_history(
...     turn_context, chat_history, limit=50
... )
>>> if result.succeeded:
...     print("Chat history sent successfully")

send_chat_history_messages

将语义内核聊天历史记录消息发送到 MCP 平台。

此方法接受一系列语义内核 ChatMessageContent 对象,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台以进行实时威胁防护。

async send_chat_history_messages(turn_context: TurnContext, messages: Sequence[ChatMessageContent], options: ToolOptions | None = None) -> OperationResult

参数

名称 说明
turn_context
必需

来自包含聊天信息的代理 SDK 的 TurnContext。

messages
必需

要发送的语义内核 ChatMessageContent 对象的序列。

options

请求的可选配置。

默认值: None

返回

类型 说明

指示成功或失败的 OperationResult。

例外

类型 说明

如果turn_context或消息为 None。

示例


>>> from semantic_kernel.contents import ChatMessageContent, AuthorRole
>>> from microsoft_agents_a365.tooling.extensions.semantickernel import (
...     McpToolRegistrationService
... )
>>>
>>> service = McpToolRegistrationService()
>>> messages = [
...     ChatMessageContent(role=AuthorRole.USER, content="Hello!"),
...     ChatMessageContent(role=AuthorRole.ASSISTANT, content="Hi there!"),
... ]
>>>
>>> result = await service.send_chat_history_messages(
...     turn_context, messages
... )
>>> if result.succeeded:
...     print("Chat history sent successfully")