CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-langchain

TypeScript framework for building LLM-powered applications with agents, tools, middleware, and model interoperability

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

messages.mddocs/api-reference/

Messages API Reference

Complete API reference for standardized message types in LangChain conversations.

Message Classes

/**
 * Base message class
 */
class BaseMessage {
  content: string | ContentBlock[];
  additional_kwargs?: Record<string, any>;
  response_metadata?: Record<string, any>;

  constructor(content: string | ContentBlock[], kwargs?: Record<string, any>);
}

/**
 * AI/Assistant message
 */
class AIMessage extends BaseMessage {
  constructor(content: string | ContentBlock[], kwargs?: Record<string, any>);
}

/**
 * Human/User message
 */
class HumanMessage extends BaseMessage {
  constructor(content: string | ContentBlock[], kwargs?: Record<string, any>);
}

/**
 * System instructions message
 */
class SystemMessage extends BaseMessage {
  constructor(content: string, kwargs?: Record<string, any>);
}

/**
 * Tool result message
 */
class ToolMessage extends BaseMessage {
  tool_call_id: string;

  constructor(content: string, tool_call_id: string, kwargs?: Record<string, any>);
}

Message Chunk Classes

/**
 * Base message chunk for streaming
 */
class BaseMessageChunk extends BaseMessage {}

/**
 * AI message chunk
 */
class AIMessageChunk extends BaseMessageChunk {}

/**
 * Human message chunk
 */
class HumanMessageChunk extends BaseMessageChunk {}

/**
 * System message chunk
 */
class SystemMessageChunk extends BaseMessageChunk {}

/**
 * Tool message chunk
 */
class ToolMessageChunk extends BaseMessageChunk {
  tool_call_id: string;
}

Content Block Type

/**
 * Content block types for multimodal content
 */
type ContentBlock =
  | string
  | { type: "text"; text: string }
  | { type: "image_url"; image_url: string | { url: string; detail?: string } }
  | { type: "image"; source: { type: "base64"; media_type: string; data: string } };

Message Utility Functions

/**
 * Filter messages based on criteria
 */
function filterMessages(
  messages: BaseMessage[],
  options: FilterMessagesOptions
): BaseMessage[];

interface FilterMessagesOptions {
  /**
   * Include messages of these types
   */
  includeTypes?: Array<"human" | "ai" | "system" | "tool">;

  /**
   * Exclude messages of these types
   */
  excludeTypes?: Array<"human" | "ai" | "system" | "tool">;

  /**
   * Include only last N messages
   */
  last?: number;

  /**
   * Include only first N messages
   */
  first?: number;
}

/**
 * Trim messages to fit within token limit
 */
function trimMessages(
  messages: BaseMessage[],
  options: TrimMessagesOptions
): BaseMessage[];

interface TrimMessagesOptions {
  /**
   * Maximum number of tokens
   */
  maxTokens: number;

  /**
   * Token counter function
   */
  tokenCounter?: (messages: BaseMessage[]) => number;

  /**
   * Strategy for trimming
   * - "first": Keep first messages
   * - "last": Keep last messages (default)
   * - "middle": Keep first and last, remove middle
   */
  strategy?: "first" | "last" | "middle";

  /**
   * Minimum messages to keep
   */
  minMessages?: number;
}

docs

glossary.md

index.md

quick-reference.md

task-index.md

tile.json