@langchain/core
Version:
Core LangChain.js abstractions and schemas
52 lines • 2.25 kB
text/typescript
import { BaseMessage } from "./base.cjs";
import { HumanMessage } from "./human.cjs";
/** Which feature added a message, and that feature's fields. */
export interface NotificationMetadata {
/** The feature that added the message, e.g. `"async_subagent"`. */
source: string;
/** The feature's fields, documented by that feature. */
data?: Record<string, unknown>;
}
/**
* Return a copy of `message` marked as added by the agent harness.
*
* Use it for a human message the user didn't type, such as a background task
* update or a conversation summary. It sets `additional_kwargs.lc_source`
* and, when `data` is given, `additional_kwargs.lc_data`. Any earlier
* `lc_source` and `lc_data` are removed first. LangChain's chat model
* integrations don't send these keys to the model.
*
* It doesn't change the content. Write the content the model reads yourself.
*
* Anyone who can send input to a thread can set these keys. Don't use them to
* decide whether to trust a message.
*
* `mergeMessageRuns` and chunk `concat` join a notification with adjacent
* human messages; the merged message keeps the metadata and concatenates
* `lc_source`.
*
* @param message - The message to mark.
* @param metadata - The feature that added the message and its fields. `data` must be JSON-serializable.
* @returns A shallow copy of `message`, with the same `id`.
*
* @example
* ```typescript
* import { HumanMessage, addNotificationMetadata } from "@langchain/core/messages";
*
* const message = addNotificationMetadata(
* new HumanMessage("Background task t_42 finished."),
* { source: "async_subagent", data: { task_id: "t_42", status: "success" } }
* );
* ```
*/
export declare function addNotificationMetadata(message: HumanMessage, metadata: NotificationMetadata): HumanMessage;
/**
* Return the notification metadata of `message`.
*
* @param message - The message to read.
* @returns The metadata `addNotificationMetadata` set, or `undefined` for a
* message without a string `lc_source`. `data` is a copy of `lc_data`, left out
* unless `lc_data` is an object.
*/
export declare function getNotificationMetadata(message: BaseMessage): NotificationMetadata | undefined;
//# sourceMappingURL=notification.d.cts.map