McpToolRegistrationService class

ค้นหาเซิร์ฟเวอร์ MCP และเครื่องมือรายการที่จัดรูปแบบสําหรับ LangChain Orchestrator ใช้ listToolServers เพื่อดึงข้อมูลการกําหนดค่าเซิร์ฟเวอร์และ getTools เพื่อแจกแจงเครื่องมือ

นอกจากนี้ยังมีวิธีการส่งประวัติการแชทไปยังแพลตฟอร์ม MCP สําหรับการวิเคราะห์ภัยคุกคามแบบเรียลไทม์ (RTP)

ผู้ผลิต

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

สร้าง McpToolRegistrationService

วิธีการ

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

ลงทะเบียนเซิร์ฟเวอร์เครื่องมือ MCP และอัปเดตตัวเลือกตัวแทนด้วยเครื่องมือและการกําหนดค่าเซิร์ฟเวอร์ที่ค้นพบ เรียกสิ่งนี้เพื่อเปิดใช้งานการเข้าถึงเครื่องมือ LangChain แบบไดนามิกตามสภาพแวดล้อม MCP ปัจจุบัน

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

ส่งประวัติการสนทนาจาก LangGraph CompiledStateGraph ไปยังแพลตฟอร์ม MCP

นี่คือ API ระดับสูงสุดและใช้งานง่ายที่สุด ซึ่งดึงสถานะปัจจุบันจากกราฟ แยกข้อความ แปลงเป็นรูปแบบ ChatHistoryMessage และส่งไปยังแพลตฟอร์ม MCP สําหรับการป้องกันภัยคุกคามแบบเรียลไทม์

ตัวอย่าง

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)

เรียกใช้ข้อความจากอินสแตนซ์ BaseChatMessageHistory และส่งไปยังแพลตฟอร์ม MCP

ใช้ API นี้เมื่อทํางานกับนามธรรมหน่วยความจําของ LangChain (เช่น InMemoryChatMessageHistory, RedisChatMessageHistory และอื่น ๆ)

ตัวอย่าง

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

ส่งอาร์เรย์ของข้อความ LangChain ไปยังแพลตฟอร์ม MCP เพื่อการป้องกันภัยคุกคามแบบเรียลไทม์

นี่คือ API ระดับต่ําสุดที่ยอมรับอาร์เรย์ baseMessage ดิบ ใช้สิ่งนี้เมื่อคุณได้แยกข้อความออกมาแล้ว หรือมีแหล่งข้อความแบบกําหนดเองที่ไม่ครอบคลุมโดย API ระดับที่สูงกว่า

วิธีนี้แปลงอาร์เรย์ BaseMessage ที่ให้มาเป็นรูปแบบ ChatHistoryMessage และส่งไปยังแพลตฟอร์ม MCP อาร์เรย์ที่ว่างเปล่าจะถูกส่ง as-is เพื่อลงทะเบียนข้อความผู้ใช้ด้วยแพลตฟอร์ม

ตัวอย่าง

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)

แยกข้อความจาก LangGraph StateSnapshot และส่งไปยังแพลตฟอร์ม MCP

ใช้ API นี้เมื่อคุณมี StateSnapshot (เช่น จากการเรียกก่อนหน้า graph.getState() ) อยู่แล้ว และต้องการหลีกเลี่ยงสถานะการดึงข้อมูลอีกครั้ง

ตัวอย่าง

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

รายละเอียดคอนสตรักเตอร์

McpToolRegistrationService(IConfigurationProvider<LangChainToolingConfiguration>)

สร้าง McpToolRegistrationService

new McpToolRegistrationService(configProvider?: IConfigurationProvider<LangChainToolingConfiguration>)

พารามิเตอร์

configProvider

IConfigurationProvider<LangChainToolingConfiguration>

ตัวให้บริการการกําหนดค่าทางเลือก ค่าเริ่มต้นเป็น defaultLangChainToolingConfigurationProvider ถ้าไม่ได้ระบุ

รายละเอียดวิธีการ

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

ลงทะเบียนเซิร์ฟเวอร์เครื่องมือ MCP และอัปเดตตัวเลือกตัวแทนด้วยเครื่องมือและการกําหนดค่าเซิร์ฟเวอร์ที่ค้นพบ เรียกสิ่งนี้เพื่อเปิดใช้งานการเข้าถึงเครื่องมือ LangChain แบบไดนามิกตามสภาพแวดล้อม MCP ปัจจุบัน

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

พารามิเตอร์

agent

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

อินสแตนซ์ของตัวแทน LangChain ที่จะเพิ่มเซิร์ฟเวอร์ MCP

authorization
Authorization

ออบเจ็กต์การตรวจสอบสําหรับการแลกเปลี่ยนโทเค็น

authHandlerName

string

ชื่อของตัวจัดการการรับรองความถูกต้องเพื่อใช้สําหรับการแลกเปลี่ยนโทเค็น

turnContext
TurnContext

TurnContext ของคําขอปัจจุบัน

authToken

string

โทเค็นแบเรอร์ทางเลือกสําหรับการเข้าถึงเซิร์ฟเวอร์ MCP

การส่งคืน

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

อินสแตนซ์ของ Agent ที่อัปเดตแล้วด้วยเซิร์ฟเวอร์ MCP ที่ลงทะเบียน

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

ส่งประวัติการสนทนาจาก LangGraph CompiledStateGraph ไปยังแพลตฟอร์ม MCP

นี่คือ API ระดับสูงสุดและใช้งานง่ายที่สุด ซึ่งดึงสถานะปัจจุบันจากกราฟ แยกข้อความ แปลงเป็นรูปแบบ ChatHistoryMessage และส่งไปยังแพลตฟอร์ม MCP สําหรับการป้องกันภัยคุกคามแบบเรียลไทม์

ตัวอย่าง

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>

พารามิเตอร์

turnContext
TurnContext

เปลี่ยนบริบทที่ประกอบด้วยข้อมูลการสนทนา

graph

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

อินสแตนซ์ LangGraph CompiledStateGraph สถานะกราฟต้องมีอาร์เรย์ 'ข้อความ'

config

RunnableConfig<Record<string, any>>

การกําหนดค่า RunnableConfig ที่ประกอบด้วย thread_id และการกําหนดค่าอื่น ๆ

limit

number

ขีดจํากัดที่เลือกได้สําหรับจํานวนข้อความที่จะส่ง

toolOptions
ToolOptions

ตัวเลือกเครื่องมือทางเลือกสําหรับการกําหนดเอง

การส่งคืน

Promise<OperationResult>

สัญญาจะแก้ไขการ OperationResult ที่ระบุความสําเร็จหรือความล้มเหลว

sendChatHistoryFromChatHistoryAsync(TurnContext, BaseChatMessageHistory, number, ToolOptions)

เรียกใช้ข้อความจากอินสแตนซ์ BaseChatMessageHistory และส่งไปยังแพลตฟอร์ม MCP

ใช้ API นี้เมื่อทํางานกับนามธรรมหน่วยความจําของ LangChain (เช่น InMemoryChatMessageHistory, RedisChatMessageHistory และอื่น ๆ)

ตัวอย่าง

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>

พารามิเตอร์

turnContext
TurnContext

เปลี่ยนบริบทที่ประกอบด้วยข้อมูลการสนทนา

chatHistory

BaseChatMessageHistory

อินสแตนซ์ BaseChatMessageHistory เพื่อดึงข้อมูลข้อความ

limit

number

ขีดจํากัดที่เลือกได้สําหรับจํานวนข้อความที่จะส่ง

toolOptions
ToolOptions

ตัวเลือกเครื่องมือทางเลือกสําหรับการกําหนดเอง

การส่งคืน

Promise<OperationResult>

สัญญาจะแก้ไขการ OperationResult ที่ระบุความสําเร็จหรือความล้มเหลว

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

ส่งอาร์เรย์ของข้อความ LangChain ไปยังแพลตฟอร์ม MCP เพื่อการป้องกันภัยคุกคามแบบเรียลไทม์

นี่คือ API ระดับต่ําสุดที่ยอมรับอาร์เรย์ baseMessage ดิบ ใช้สิ่งนี้เมื่อคุณได้แยกข้อความออกมาแล้ว หรือมีแหล่งข้อความแบบกําหนดเองที่ไม่ครอบคลุมโดย API ระดับที่สูงกว่า

วิธีนี้แปลงอาร์เรย์ BaseMessage ที่ให้มาเป็นรูปแบบ ChatHistoryMessage และส่งไปยังแพลตฟอร์ม MCP อาร์เรย์ที่ว่างเปล่าจะถูกส่ง as-is เพื่อลงทะเบียนข้อความผู้ใช้ด้วยแพลตฟอร์ม

ตัวอย่าง

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>

พารามิเตอร์

turnContext
TurnContext

เปลี่ยนบริบทที่ประกอบด้วยข้อมูลการสนทนา

messages

BaseMessage<MessageStructure<MessageToolSet>, MessageType>[]

อาร์เรย์ของวัตถุ LangChain BaseMessage ที่จะส่ง

limit

number

ขีดจํากัดที่เลือกได้สําหรับจํานวนข้อความที่จะส่ง

toolOptions
ToolOptions

ตัวเลือกเครื่องมือทางเลือกสําหรับการกําหนดเอง

การส่งคืน

Promise<OperationResult>

สัญญาจะแก้ไขการ OperationResult ที่ระบุความสําเร็จหรือความล้มเหลว

sendChatHistoryFromStateAsync(TurnContext, StateSnapshot, number, ToolOptions)

แยกข้อความจาก LangGraph StateSnapshot และส่งไปยังแพลตฟอร์ม MCP

ใช้ API นี้เมื่อคุณมี StateSnapshot (เช่น จากการเรียกก่อนหน้า graph.getState() ) อยู่แล้ว และต้องการหลีกเลี่ยงสถานะการดึงข้อมูลอีกครั้ง

ตัวอย่าง

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>

พารามิเตอร์

turnContext
TurnContext

เปลี่ยนบริบทที่ประกอบด้วยข้อมูลการสนทนา

stateSnapshot

StateSnapshot

LangGraph StateSnapshot ที่ประกอบด้วยสถานะข้อความ

limit

number

ขีดจํากัดที่เลือกได้สําหรับจํานวนข้อความที่จะส่ง

toolOptions
ToolOptions

ตัวเลือกเครื่องมือทางเลือกสําหรับการกําหนดเอง

การส่งคืน

Promise<OperationResult>

สัญญาจะแก้ไขการ OperationResult ที่ระบุความสําเร็จหรือความล้มเหลว