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__
__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
必需
|
授权处理程序的名称。 |
|
context
必需
|
为当前作轮次上下文。 |
|
auth_token
|
用于访问 MCP 服务器的身份验证令牌。 默认值: None
|
返回
| 类型 | 说明 |
|---|---|
例外
| 类型 | 说明 |
|---|---|
|
如果内核为 None 或必需参数无效。 |
|
|
如果连接到或配置 MCP 服务器时出错。 |
cleanup_connections
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
|
要发送的最大消息数可选。 如果指定,则发送最新的 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")