McpToolRegistrationService class
发现为 LangChain Orchestrator 设置格式的 MCP 服务器和列表工具。 使用 listToolServers 提取服务器配置和 getTools 来枚举工具。
还提供用于将聊天历史记录发送到 MCP 平台的方法进行实时威胁防护(RTP)分析。
构造函数
| Mcp |
构造 McpToolRegistrationService。 |
方法
| add |
使用发现的工具和服务器配置注册 MCP 工具服务器和更新代理选项。 调用此项以基于当前的 MCP 环境启用动态 LangChain 工具访问。 |
| send |
将聊天历史记录从 LangGraph CompiledStateGraph 发送到 MCP 平台。 这是最高级别且最易于使用的 API。 它从图形中检索当前状态,提取消息,将其转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台进行实时威胁防护。 示例
|
| send |
从 BaseChatMessageHistory 实例检索消息并将其发送到 MCP 平台。 使用 LangChain 的内存抽象(例如 InMemoryChatMessageHistory、RedisChatMessageHistory 等)时使用此 API。 示例
|
| send |
将一组 LangChain 消息发送到 MCP 平台,以便进行实时威胁防护。 这是接受原始 BaseMessage 数组的最低级别 API。 如果已提取消息或高级 API 未涵盖自定义消息源,请使用此功能。 此方法将提供的 BaseMessage 数组转换为 ChatHistoryMessage 格式,并将其发送到 MCP 平台。 as-is 发送空数组,以便向平台注册用户消息。 示例
|
| send |
从 LangGraph StateSnapshot 中提取消息并将其发送到 MCP 平台。 如果已有 StateSnapshot(例如上 示例
|
构造函数详细信息
McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)
构造 McpToolRegistrationService。
new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)
参数
- configProvider
可选配置提供程序。 如果未指定,则默认为 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,指示成功或失败。