McpToolRegistrationService class

Découvrez les serveurs MCP et les outils de liste mis en forme pour LangChain Orchestrator. Utilise listToolServers pour récupérer les configurations de serveur et getTools pour énumérer les outils.

Fournit également des méthodes pour envoyer l’historique des conversations à la plateforme MCP pour l’analyse rtP (Protection contre les menaces en temps réel).

Constructeurs

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construisez un McpToolRegistrationService.

Méthodes

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

Inscrit les serveurs d’outils MCP et met à jour les options de l’agent avec les outils découverts et les configurations de serveur. Appelez-le pour activer l’accès dynamique aux outils LangChain en fonction de l’environnement MCP actuel.

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

Envoie l’historique des conversations d’un LangGraph CompiledStateGraph à la plateforme MCP.

Il s’agit de l’API la plus haut niveau et la plus simple à utiliser. Il récupère l’état actuel à partir du graphique, extrait les messages, les convertit au format ChatHistoryMessage et les envoie à la plateforme MCP pour la protection contre les menaces en temps réel.

Exemple

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)

Récupère les messages d’une instance BaseChatMessageHistory et les envoie à la plateforme MCP.

Utilisez cette API lors de l’utilisation des abstractions de mémoire de LangChain (par exemple, InMemoryChatMessageHistory, RedisChatMessageHistory, etc.).

Exemple

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

Envoie un tableau de messages LangChain à la plateforme MCP pour la protection contre les menaces en temps réel.

Il s’agit de l’API de niveau le plus bas qui accepte les tableaux BaseMessage bruts. Utilisez cette option lorsque vous avez déjà extrait des messages ou si une source de message personnalisée n’est pas couverte par les API de niveau supérieur.

Cette méthode convertit le tableau BaseMessage fourni au format ChatHistoryMessage et les envoie à la plateforme MCP. Les tableaux vides sont envoyés as-is pour inscrire le message utilisateur auprès de la plateforme.

Exemple

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)

Extrait les messages d’un LangGraph StateSnapshot et les envoie à la plateforme MCP.

Utilisez cette API lorsque vous disposez déjà d’un StateSnapshot (par exemple, à partir d’un appel précédent graph.getState() ) et que vous souhaitez éviter de récupérer l’état à nouveau.

Exemple

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

Détails du constructeur

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Construisez un McpToolRegistrationService.

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

Paramètres

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

Fournisseur de configuration facultatif. La valeur par défaut est defaultLangChainToolingConfigurationProvider si elle n’est pas spécifiée.

Détails de la méthode

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

Inscrit les serveurs d’outils MCP et met à jour les options de l’agent avec les outils découverts et les configurations de serveur. Appelez-le pour activer l’accès dynamique aux outils LangChain en fonction de l’environnement MCP actuel.

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)[]>>>

Paramètres

agent

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

Instance de l’agent LangChain à laquelle les serveurs MCP seront ajoutés.

authorization
Authorization

Objet d’autorisation pour l’échange de jetons.

authHandlerName

string

Nom du gestionnaire d’authentification à utiliser pour l’échange de jetons.

turnContext
TurnContext

TurnContext de la requête actuelle.

authToken

string

Jeton du porteur facultatif pour l’accès au serveur MCP.

Retours

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

Instance de l’agent mise à jour avec des serveurs MCP inscrits.

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

Envoie l’historique des conversations d’un LangGraph CompiledStateGraph à la plateforme MCP.

Il s’agit de l’API la plus haut niveau et la plus simple à utiliser. Il récupère l’état actuel à partir du graphique, extrait les messages, les convertit au format ChatHistoryMessage et les envoie à la plateforme MCP pour la protection contre les menaces en temps réel.

Exemple

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>

Paramètres

turnContext
TurnContext

Contexte de tour contenant des informations de conversation.

graph

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

Instance LangGraph CompiledStateGraph. L’état du graphique doit contenir un tableau « messages ».

config

RunnableConfig<Record<string, any>>

RunnableConfig contenant thread_id et d’autres configurations.

limit

number

Limite facultative du nombre de messages à envoyer.

toolOptions
ToolOptions

Options d’outil facultatives pour la personnalisation.

Retours

Promise<OperationResult>

Résolution d’une promesse sur une opérationResult indiquant la réussite ou l’échec.

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Récupère les messages d’une instance BaseChatMessageHistory et les envoie à la plateforme MCP.

Utilisez cette API lors de l’utilisation des abstractions de mémoire de LangChain (par exemple, InMemoryChatMessageHistory, RedisChatMessageHistory, etc.).

Exemple

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>

Paramètres

turnContext
TurnContext

Contexte de tour contenant des informations de conversation.

chatHistory

BaseChatMessageHistory

Instance BaseChatMessageHistory à partir de laquelle récupérer des messages.

limit

number

Limite facultative du nombre de messages à envoyer.

toolOptions
ToolOptions

Options d’outil facultatives pour la personnalisation.

Retours

Promise<OperationResult>

Résolution d’une promesse sur une opérationResult indiquant la réussite ou l’échec.

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

Envoie un tableau de messages LangChain à la plateforme MCP pour la protection contre les menaces en temps réel.

Il s’agit de l’API de niveau le plus bas qui accepte les tableaux BaseMessage bruts. Utilisez cette option lorsque vous avez déjà extrait des messages ou si une source de message personnalisée n’est pas couverte par les API de niveau supérieur.

Cette méthode convertit le tableau BaseMessage fourni au format ChatHistoryMessage et les envoie à la plateforme MCP. Les tableaux vides sont envoyés as-is pour inscrire le message utilisateur auprès de la plateforme.

Exemple

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>

Paramètres

turnContext
TurnContext

Contexte de tour contenant des informations de conversation.

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

Tableau d’objets LangChain BaseMessage à envoyer.

limit

number

Limite facultative du nombre de messages à envoyer.

toolOptions
ToolOptions

Options d’outil facultatives pour la personnalisation.

Retours

Promise<OperationResult>

Résolution d’une promesse sur une opérationResult indiquant la réussite ou l’échec.

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Extrait les messages d’un LangGraph StateSnapshot et les envoie à la plateforme MCP.

Utilisez cette API lorsque vous disposez déjà d’un StateSnapshot (par exemple, à partir d’un appel précédent graph.getState() ) et que vous souhaitez éviter de récupérer l’état à nouveau.

Exemple

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>

Paramètres

turnContext
TurnContext

Contexte de tour contenant des informations de conversation.

stateSnapshot

StateSnapshot

État LangGraphSnapshot contenant l’état du message.

limit

number

Limite facultative du nombre de messages à envoyer.

toolOptions
ToolOptions

Options d’outil facultatives pour la personnalisation.

Retours

Promise<OperationResult>

Résolution d’une promesse sur une opérationResult indiquant la réussite ou l’échec.