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
| Mcp |
Erstellen Sie einen McpToolRegistrationService. |
Methoden
| add |
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. |
| send |
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
|
| send |
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
|
| send |
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
|
| send |
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 Beispiel
|
Details zum Konstruktor
McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)
Erstellen Sie einen McpToolRegistrationService.
new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)
Parameter
- configProvider
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.