McpToolRegistrationService class

发现为 LangChain Orchestrator 设置格式的 MCP 服务器和列表工具。 使用 listToolServers 提取服务器配置和 getTools 来枚举工具。

还提供用于将聊天历史记录发送到 MCP 平台的方法进行实时威胁防护(RTP)分析。

方法

addToolServersToAgent(ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, Authorization, string, TurnContext, string)

使用发现的工具和服务器配置注册 MCP 工具服务器和更新代理选项。 调用此项以基于当前的 MCP 环境启用动态 LangChain 工具访问。

sendChatHistoryAsync(TurnContext, CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, RunnableConfig<Record<string, any>>, number, ToolOptions)

将聊天历史记录从 LangGraph CompiledStateGraph 发送到 MCP 平台。

这是最高级别且最易于使用的 API。 它从图形中检索当前状态,提取消息,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台进行实时威胁防护。

示例

const config = { configurable: { thread_id: '1' } };
const result = await service.sendChatHistoryAsync(turnContext, graph, config);
if (result.succeeded) {
  console.log('Chat history sent successfully');
}
sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

从 BaseChatMessageHistory 实例检索消息并将其发送到 MCP 平台。

使用 LangChain 的内存抽象(例如 InMemoryChatMessageHistory、RedisChatMessageHistory 等)时使用此 API。

示例

const chatHistory = new InMemoryChatMessageHistory();
// ... add messages to history ...
const result = await service.sendChatHistoryFromChatHistoryAsync(turnContext, chatHistory);
sendChatHistoryFromMessagesAsync(TurnContext, BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], number, ToolOptions)

将一组 LangChain 消息发送到 MCP 平台,以便进行实时威胁防护。

这是接受原始 BaseMessage 数组的最低级别 API。 如果已提取消息或高级 API 未涵盖自定义消息源,请使用此功能。

此方法将提供的 BaseMessage 数组转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台。 as-is 发送空数组,以便向平台注册用户消息。

示例

const messages = await messageHistory.getMessages();
const result = await service.sendChatHistoryFromMessagesAsync(turnContext, messages, 50);
if (result.succeeded) {
  console.log('Chat history sent successfully');
} else {
  console.error('Failed to send chat history:', result.errors);
}
sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

从 LangGraph StateSnapshot 中提取消息并将其发送到 MCP 平台。

如果已有 StateSnapshot(例如上 graph.getState() 一次调用),并且想要避免再次提取状态,请使用此 API。

示例

const config = { configurable: { thread_id: '1' } };
const stateSnapshot = await graph.getState(config);
const result = await service.sendChatHistoryFromStateAsync(turnContext, stateSnapshot);

构造函数详细信息

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

构造 McpToolRegistrationService。

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

参数

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

可选配置提供程序。 如果未指定,则默认为 defaultLangChainToolingConfigurationProvider。

方法详细信息

addToolServersToAgent(ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, Authorization, string, TurnContext, string)

使用发现的工具和服务器配置注册 MCP 工具服务器和更新代理选项。 调用此项以基于当前的 MCP 环境启用动态 LangChain 工具访问。

function addToolServersToAgent(agent: ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>, authorization: Authorization, authHandlerName: string, turnContext: TurnContext, authToken: string): Promise<ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>>

参数

agent

ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>

将向其添加 MCP 服务器的 LangChain 代理实例。

authorization
Authorization

令牌交换的授权对象。

authHandlerName

string

用于令牌交换的身份验证处理程序的名称。

turnContext
TurnContext

当前请求的 TurnContext。

authToken

string

用于 MCP 服务器访问的可选持有者令牌。

返回

Promise<ReactAgent<AgentTypeConfig<Record<string, any>, undefined, AnyAnnotationRoot, readonly AgentMiddleware<any, any, any, readonly (ClientTool | ServerTool)[]>[], readonly (ClientTool | ServerTool)[]>>>

已注册 MCP 服务器的已更新代理实例。

sendChatHistoryAsync(TurnContext, CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, RunnableConfig<Record<string, any>>, number, ToolOptions)

将聊天历史记录从 LangGraph CompiledStateGraph 发送到 MCP 平台。

这是最高级别且最易于使用的 API。 它从图形中检索当前状态,提取消息,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台进行实时威胁防护。

示例

const config = { configurable: { thread_id: '1' } };
const result = await service.sendChatHistoryAsync(turnContext, graph, config);
if (result.succeeded) {
  console.log('Chat history sent successfully');
}
function sendChatHistoryAsync(turnContext: TurnContext, graph: CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>, config: RunnableConfig<Record<string, any>>, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

参数

turnContext
TurnContext

包含聊天信息的轮次上下文。

graph

CompiledStateGraph<unknown, unknown, string, StateDefinition, StateDefinition, StateDefinition, unknown, unknown, unknown>

LangGraph CompiledStateGraph 实例。 图形状态必须包含“messages”数组。

config

RunnableConfig<Record<string, any>>

包含thread_id和其他配置的 RunnableConfig。

limit

number

要发送的消息数的可选限制。

toolOptions
ToolOptions

自定义的可选工具选项。

返回

Promise<OperationResult>

解析为 OperationResult 的 Promise,指示成功或失败。

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

从 BaseChatMessageHistory 实例检索消息并将其发送到 MCP 平台。

使用 LangChain 的内存抽象(例如 InMemoryChatMessageHistory、RedisChatMessageHistory 等)时使用此 API。

示例

const chatHistory = new InMemoryChatMessageHistory();
// ... add messages to history ...
const result = await service.sendChatHistoryFromChatHistoryAsync(turnContext, chatHistory);
function sendChatHistoryFromChatHistoryAsync(turnContext: TurnContext, chatHistory: BaseChatMessageHistory, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

参数

turnContext
TurnContext

包含聊天信息的轮次上下文。

chatHistory

BaseChatMessageHistory

要从中检索消息的 BaseChatMessageHistory 实例。

limit

number

要发送的消息数的可选限制。

toolOptions
ToolOptions

自定义的可选工具选项。

返回

Promise<OperationResult>

解析为 OperationResult 的 Promise,指示成功或失败。

sendChatHistoryFromMessagesAsync(TurnContext, BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], number, ToolOptions)

将一组 LangChain 消息发送到 MCP 平台,以便进行实时威胁防护。

这是接受原始 BaseMessage 数组的最低级别 API。 如果已提取消息或高级 API 未涵盖自定义消息源,请使用此功能。

此方法将提供的 BaseMessage 数组转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台。 as-is 发送空数组,以便向平台注册用户消息。

示例

const messages = await messageHistory.getMessages();
const result = await service.sendChatHistoryFromMessagesAsync(turnContext, messages, 50);
if (result.succeeded) {
  console.log('Chat history sent successfully');
} else {
  console.error('Failed to send chat history:', result.errors);
}
function sendChatHistoryFromMessagesAsync(turnContext: TurnContext, messages: BaseMessage<MessageStructure<MessageToolSet>, MessageType>[], limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

参数

turnContext
TurnContext

包含聊天信息的轮次上下文。

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

要发送的 LangChain BaseMessage 对象的数组。

limit

number

要发送的消息数的可选限制。

toolOptions
ToolOptions

自定义的可选工具选项。

返回

Promise<OperationResult>

解析为 OperationResult 的 Promise,指示成功或失败。

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

从 LangGraph StateSnapshot 中提取消息并将其发送到 MCP 平台。

如果已有 StateSnapshot(例如上 graph.getState() 一次调用),并且想要避免再次提取状态,请使用此 API。

示例

const config = { configurable: { thread_id: '1' } };
const stateSnapshot = await graph.getState(config);
const result = await service.sendChatHistoryFromStateAsync(turnContext, stateSnapshot);
function sendChatHistoryFromStateAsync(turnContext: TurnContext, stateSnapshot: StateSnapshot, limit?: number, toolOptions?: ToolOptions): Promise<OperationResult>

参数

turnContext
TurnContext

包含聊天信息的轮次上下文。

stateSnapshot

StateSnapshot

包含消息状态的 LangGraph StateSnapshot。

limit

number

要发送的消息数的可选限制。

toolOptions
ToolOptions

自定义的可选工具选项。

返回

Promise<OperationResult>

解析为 OperationResult 的 Promise,指示成功或失败。