Freigeben über


McpToolRegistrationService class

Entdecken Sie MCP-Server und Listentools, die für den LangChain Orchestrator formatiert sind. Verwendet listToolServers zum Abrufen von Serverkonfigurationen und getTools zum Aufzählen von Tools.

Stellt außerdem Methoden zum Senden des Chatverlaufs an die MCP-Plattform zur Analyse von Echtzeit-Bedrohungsschutz (RTP) bereit.

Konstruktoren

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Erstellen Sie einen McpToolRegistrationService.

Methoden

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

Registriert MCP-Toolserver und aktualisiert Agent-Optionen mit ermittelten Tools und Serverkonfigurationen. Rufen Sie dies auf, um den dynamischen LangChain-Toolzugriff basierend auf der aktuellen MCP-Umgebung zu aktivieren.

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

Sendet den Chatverlauf von einem LangGraph CompiledStateGraph an die MCP-Plattform.

Dies ist die api auf höchster Ebene und am einfachsten zu verwenden. Er ruft den aktuellen Zustand aus dem Diagramm ab, extrahiert Nachrichten, konvertiert sie in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform für den Echtzeit-Bedrohungsschutz.

Beispiel

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)

Ruft Nachrichten aus einer BaseChatMessageHistory-Instanz ab und sendet sie an die MCP-Plattform.

Verwenden Sie diese API beim Arbeiten mit langChains Speicherabstraktionen (z. B. InMemoryChatMessageHistory, RedisChatMessageHistory usw.).

Beispiel

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

Sendet ein Array von LangChain-Nachrichten an die MCP-Plattform für den Echtzeit-Bedrohungsschutz.

Dies ist die API auf der niedrigsten Ebene, die unformatierte BaseMessage-Arrays akzeptiert. Verwenden Sie diese Methode, wenn Sie bereits Nachrichten extrahiert haben oder über eine benutzerdefinierte Nachrichtenquelle verfügen, die nicht von den APIs auf höherer Ebene abgedeckt wird.

Diese Methode konvertiert das bereitgestellte BaseMessage-Array in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform. Leere Arrays werden as-is gesendet, um die Benutzernachricht bei der Plattform zu registrieren.

Beispiel

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)

Extrahiert Nachrichten aus einem LangGraph StateSnapshot und sendet sie an die MCP-Plattform.

Verwenden Sie diese API, wenn Sie bereits über einen StateSnapshot (z. B. von einem vorherigen graph.getState() Aufruf) verfügen und den Abrufstatus nicht mehr abrufen möchten.

Beispiel

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

Details zum Konstruktor

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

Erstellen Sie einen McpToolRegistrationService.

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

Parameter

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

Optionaler Konfigurationsanbieter. Wenn nicht angegeben, wird standardmäßig "defaultLangChainToolingConfigurationProvider" festgelegt.

Details zur Methode

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

Registriert MCP-Toolserver und aktualisiert Agent-Optionen mit ermittelten Tools und Serverkonfigurationen. Rufen Sie dies auf, um den dynamischen LangChain-Toolzugriff basierend auf der aktuellen MCP-Umgebung zu aktivieren.

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

Parameter

agent

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

Die LangChain-Agent-Instanz, zu der MCP-Server hinzugefügt werden.

authorization
Authorization

Autorisierungsobjekt für den Tokenaustausch.

authHandlerName

string

Der Name des Authentifizierungshandlers, der für den Tokenaustausch verwendet werden soll.

turnContext
TurnContext

Der TurnContext der aktuellen Anforderung.

authToken

string

Optionales Bearertoken für DEN MCP-Serverzugriff.

Gibt zurück

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

Die aktualisierte Agent-Instanz mit registrierten MCP-Servern.

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

Sendet den Chatverlauf von einem LangGraph CompiledStateGraph an die MCP-Plattform.

Dies ist die api auf höchster Ebene und am einfachsten zu verwenden. Er ruft den aktuellen Zustand aus dem Diagramm ab, extrahiert Nachrichten, konvertiert sie in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform für den Echtzeit-Bedrohungsschutz.

Beispiel

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>

Parameter

turnContext
TurnContext

Der Turnkontext, der Unterhaltungsinformationen enthält.

graph

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

Die LangGraph CompiledStateGraph-Instanz. Der Diagrammstatus muss ein Array "Nachrichten" enthalten.

config

RunnableConfig<Record<string, any>>

Die RunnableConfig mit thread_id und anderer Konfiguration.

limit

number

Optionaler Grenzwert für die Anzahl der zu sendenden Nachrichten.

toolOptions
ToolOptions

Optionale Tooloptionen für die Anpassung.

Gibt zurück

Promise<OperationResult>

Eine Zusage, die in ein OperationResult aufgelöst wird, das den Erfolg oder Fehler angibt.

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

Ruft Nachrichten aus einer BaseChatMessageHistory-Instanz ab und sendet sie an die MCP-Plattform.

Verwenden Sie diese API beim Arbeiten mit langChains Speicherabstraktionen (z. B. InMemoryChatMessageHistory, RedisChatMessageHistory usw.).

Beispiel

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>

Parameter

turnContext
TurnContext

Der Turnkontext, der Unterhaltungsinformationen enthält.

chatHistory

BaseChatMessageHistory

Die BaseChatMessageHistory-Instanz, aus der Nachrichten abgerufen werden sollen.

limit

number

Optionaler Grenzwert für die Anzahl der zu sendenden Nachrichten.

toolOptions
ToolOptions

Optionale Tooloptionen für die Anpassung.

Gibt zurück

Promise<OperationResult>

Eine Zusage, die in ein OperationResult aufgelöst wird, das den Erfolg oder Fehler angibt.

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

Sendet ein Array von LangChain-Nachrichten an die MCP-Plattform für den Echtzeit-Bedrohungsschutz.

Dies ist die API auf der niedrigsten Ebene, die unformatierte BaseMessage-Arrays akzeptiert. Verwenden Sie diese Methode, wenn Sie bereits Nachrichten extrahiert haben oder über eine benutzerdefinierte Nachrichtenquelle verfügen, die nicht von den APIs auf höherer Ebene abgedeckt wird.

Diese Methode konvertiert das bereitgestellte BaseMessage-Array in das ChatHistoryMessage-Format und sendet sie an die MCP-Plattform. Leere Arrays werden as-is gesendet, um die Benutzernachricht bei der Plattform zu registrieren.

Beispiel

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>

Parameter

turnContext
TurnContext

Der Turnkontext, der Unterhaltungsinformationen enthält.

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

Array von zu sendenden LangChain BaseMessage-Objekten.

limit

number

Optionaler Grenzwert für die Anzahl der zu sendenden Nachrichten.

toolOptions
ToolOptions

Optionale Tooloptionen für die Anpassung.

Gibt zurück

Promise<OperationResult>

Eine Zusage, die in ein OperationResult aufgelöst wird, das den Erfolg oder Fehler angibt.

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

Extrahiert Nachrichten aus einem LangGraph StateSnapshot und sendet sie an die MCP-Plattform.

Verwenden Sie diese API, wenn Sie bereits über einen StateSnapshot (z. B. von einem vorherigen graph.getState() Aufruf) verfügen und den Abrufstatus nicht mehr abrufen möchten.

Beispiel

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>

Parameter

turnContext
TurnContext

Der Turnkontext, der Unterhaltungsinformationen enthält.

stateSnapshot

StateSnapshot

Der LangGraph StateSnapshot, der den Nachrichtenstatus enthält.

limit

number

Optionaler Grenzwert für die Anzahl der zu sendenden Nachrichten.

toolOptions
ToolOptions

Optionale Tooloptionen für die Anpassung.

Gibt zurück

Promise<OperationResult>

Eine Zusage, die in ein OperationResult aufgelöst wird, das den Erfolg oder Fehler angibt.