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
| Mcp |
Costruire un McpToolRegistrationService. |
Metodi
| add |
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. |
| send |
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
|
| send |
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
|
| send |
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
|
| send |
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 Esempio
|
Dettagli costruttore
McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)
Costruire un McpToolRegistrationService.
new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)
Parametri
- configProvider
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.