McpToolRegistrationService class

Individuare i server MCP ed elencare gli strumenti formattati per LangChain Orchestrator. Usa listToolServers per recuperare le configurazioni del server e getTools per enumerare gli strumenti.

Fornisce anche metodi per inviare la cronologia delle chat alla piattaforma MCP per l'analisi rtp (Threat Protection) in tempo reale.

Costruttori

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Costruire un McpToolRegistrationService.

Metodi

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

Registra i server degli strumenti MCP e aggiorna le opzioni dell'agente con gli strumenti individuati e le configurazioni del server. Chiama questa opzione per abilitare l'accesso dinamico agli strumenti LangChain in base all'ambiente MCP corrente.

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

Invia la cronologia delle chat da un LangGraph CompiledStateGraph alla piattaforma MCP.

Si tratta dell'API più semplice e di livello più semplice da usare. Recupera lo stato corrente dal grafico, estrae i messaggi, li converte in formato ChatHistoryMessage e li invia alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Esempio

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)

Recupera i messaggi da un'istanza baseChatMessageHistory e li invia alla piattaforma MCP.

Usare questa API quando si usano le astrazioni di memoria di LangChain (ad esempio, InMemoryChatMessageHistory, RedisChatMessageHistory e così via).

Esempio

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

Invia una matrice di messaggi LangChain alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Si tratta dell'API di livello più basso che accetta matrici BaseMessage non elaborate. Usare questa opzione quando sono già stati estratti messaggi o si dispone di un'origine messaggio personalizzata non coperta dalle API di livello superiore.

Questo metodo converte la matrice BaseMessage fornita in formato ChatHistoryMessage e le invia alla piattaforma MCP. Le matrici vuote vengono inviate as-is per registrare il messaggio utente con la piattaforma.

Esempio

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)

Estrae i messaggi da un LangGraph StateSnapshot e li invia alla piattaforma MCP.

Usare questa API quando si dispone già di stateSnapshot (ad esempio, da una chiamata precedente graph.getState() ) e si vuole evitare di recuperare di nuovo lo stato.

Esempio

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

Dettagli costruttore

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Costruire un McpToolRegistrationService.

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

Parametri

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

Provider di configurazione facoltativo. Il valore predefinito è DefaultLangChainToolingConfigurationProvider, se non specificato.

Dettagli metodo

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

Registra i server degli strumenti MCP e aggiorna le opzioni dell'agente con gli strumenti individuati e le configurazioni del server. Chiama questa opzione per abilitare l'accesso dinamico agli strumenti LangChain in base all'ambiente MCP corrente.

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

Parametri

agent

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

Istanza dell'agente LangChain a cui verranno aggiunti i server MCP.

authorization
Authorization

Oggetto di autorizzazione per lo scambio di token.

authHandlerName

string

Nome del gestore di autenticazione da usare per lo scambio di token.

turnContext
TurnContext

TurnContext della richiesta corrente.

authToken

string

Token di connessione facoltativo per l'accesso al server MCP.

Valori restituiti

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

Istanza aggiornata di Agent con server MCP registrati.

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

Invia la cronologia delle chat da un LangGraph CompiledStateGraph alla piattaforma MCP.

Si tratta dell'API più semplice e di livello più semplice da usare. Recupera lo stato corrente dal grafico, estrae i messaggi, li converte in formato ChatHistoryMessage e li invia alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Esempio

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>

Parametri

turnContext
TurnContext

Contesto del turno contenente informazioni sulla conversazione.

graph

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

Istanza LangGraph CompiledStateGraph. Lo stato del grafo deve contenere una matrice "messages".

config

RunnableConfig<Record<string, any>>

RunnableConfig contenente thread_id e altre configurazioni.

limit

number

Limite facoltativo per il numero di messaggi da inviare.

toolOptions
ToolOptions

Opzioni facoltative dello strumento per la personalizzazione.

Valori restituiti

Promise<OperationResult>

Promessa che viene risolta in un oggetto OperationResult che indica l'esito positivo o negativo.

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Recupera i messaggi da un'istanza baseChatMessageHistory e li invia alla piattaforma MCP.

Usare questa API quando si usano le astrazioni di memoria di LangChain (ad esempio, InMemoryChatMessageHistory, RedisChatMessageHistory e così via).

Esempio

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>

Parametri

turnContext
TurnContext

Contesto del turno contenente informazioni sulla conversazione.

chatHistory

BaseChatMessageHistory

Istanza baseChatMessageHistory da cui recuperare i messaggi.

limit

number

Limite facoltativo per il numero di messaggi da inviare.

toolOptions
ToolOptions

Opzioni facoltative dello strumento per la personalizzazione.

Valori restituiti

Promise<OperationResult>

Promessa che viene risolta in un oggetto OperationResult che indica l'esito positivo o negativo.

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

Invia una matrice di messaggi LangChain alla piattaforma MCP per la protezione dalle minacce in tempo reale.

Si tratta dell'API di livello più basso che accetta matrici BaseMessage non elaborate. Usare questa opzione quando sono già stati estratti messaggi o si dispone di un'origine messaggio personalizzata non coperta dalle API di livello superiore.

Questo metodo converte la matrice BaseMessage fornita in formato ChatHistoryMessage e le invia alla piattaforma MCP. Le matrici vuote vengono inviate as-is per registrare il messaggio utente con la piattaforma.

Esempio

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>

Parametri

turnContext
TurnContext

Contesto del turno contenente informazioni sulla conversazione.

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

Matrice di oggetti BaseMessage LangChain da inviare.

limit

number

Limite facoltativo per il numero di messaggi da inviare.

toolOptions
ToolOptions

Opzioni facoltative dello strumento per la personalizzazione.

Valori restituiti

Promise<OperationResult>

Promessa che viene risolta in un oggetto OperationResult che indica l'esito positivo o negativo.

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Estrae i messaggi da un LangGraph StateSnapshot e li invia alla piattaforma MCP.

Usare questa API quando si dispone già di stateSnapshot (ad esempio, da una chiamata precedente graph.getState() ) e si vuole evitare di recuperare di nuovo lo stato.

Esempio

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>

Parametri

turnContext
TurnContext

Contesto del turno contenente informazioni sulla conversazione.

stateSnapshot

StateSnapshot

LangGraph StateSnapshot contenente lo stato del messaggio.

limit

number

Limite facoltativo per il numero di messaggi da inviare.

toolOptions
ToolOptions

Opzioni facoltative dello strumento per la personalizzazione.

Valori restituiti

Promise<OperationResult>

Promessa che viene risolta in un oggetto OperationResult che indica l'esito positivo o negativo.