@langgraph-js/sdk
Version:
The UI SDK for LangGraph - seamlessly integrate your AI agents with frontend interfaces
92 lines (91 loc) • 3.4 kB
TypeScript
import { Message, AIMessage, ToolMessage } from "@langchain/langgraph-sdk";
import { RenderMessage } from "./LangGraphClient.js";
import { SpendTime } from "./SpendTime.js";
/**
* @zh StreamingMessageType 类用于判断消息的类型。
* @en The StreamingMessageType class is used to determine the type of a message.
*/
export declare class StreamingMessageType {
static isTool(m: Message): m is ToolMessage;
static isToolAssistant(m: Message): m is AIMessage;
}
/**
* @zh MessageProcessor 类用于统一处理 Message 相关的逻辑,避免重复处理。
* @en The MessageProcessor class is used to uniformly handle Message-related logic and avoid duplicate processing.
*/
export declare class MessageProcessor {
/** 流式消息缓存 */
private streamingMessage;
/** 图发过来的更新信息 */
private graphMessages;
spendTime: SpendTime;
constructor();
/**
* @zh 获取流式消息
* @en Get streaming messages
*/
getStreamingMessages(): RenderMessage[];
/**
* @zh 设置流式消息
* @en Set streaming messages
*/
setStreamingMessages(messages: RenderMessage[]): void;
/**
* @zh 清空流式消息
* @en Clear streaming messages
*/
clearStreamingMessages(): void;
/**
* @zh 获取图消息
* @en Get graph messages
*/
getGraphMessages(): RenderMessage[];
/**
* @zh 设置图消息
* @en Set graph messages
*/
setGraphMessages(messages: RenderMessage[]): void;
/**
* @zh 更新流式消息
* @en Update streaming message
*/
updateStreamingMessage(message: RenderMessage): void;
/**
* @zh 将 graphMessages 和 streamingMessage 合并,并返回新的消息数组
* @en Combine graphMessages and streamingMessage and return a new message array
*/
combineGraphMessagesWithStreamingMessages(): RenderMessage[];
/**
* @zh 克隆消息对象
* @en Clone message object
*/
cloneMessage(message: Message): Message;
/**
* @zh 为消息附加额外的信息,如耗时、唯一 ID 等。
* @en Attaches additional information to messages, such as spend time, unique ID, etc.
*/
attachInfoForMessage(messages: RenderMessage[]): RenderMessage[];
/**
* @zh 组合工具消息,将 AI 的工具调用和工具的执行结果关联起来。
* @en Composes tool messages, associating AI tool calls with tool execution results.
*/
composeToolMessages(messages: RenderMessage[]): RenderMessage[];
/**
* @zh 生成用于 UI 中的流式渲染的消息
* @en Generate messages used for streaming rendering in the UI
*/
renderMessages(graphState: any, getGraphNodeNow: () => {
name: string;
}, messagesMetadata: Record<string, any>): RenderMessage[];
foldTreeMessages(messages: RenderMessage[], graphState?: {
task_store?: Record<string, {
messages: RenderMessage[];
}>;
}, messagesMetadata?: Record<string, any>): RenderMessage[];
private beforeFold;
/**
* @zh 统一的消息处理入口,按顺序执行所有处理步骤
* @en Unified message processing entry point, executing all processing steps in order
*/
processMessages(messages: RenderMessage[], graphState?: any, messagesMetadata?: Record<string, any>): RenderMessage[];
}