Class: MaximLangchainTracer

Defined in: src/lib/logger/langchain/tracer.ts:65

LangChain callback handler for automatic observability with the Maxim platform.

Extends LangChain’s BaseCallbackHandler to automatically trace and log LangChain application executions including LLM calls, chains, tools, and retrievers. Seamlessly integrates with existing LangChain applications to provide comprehensive observability without code changes.

MaximLangchainTracer

Example

import { MaximLangchainTracer } from '@maximai/maxim-js';
import { ChatOpenAI } from '@langchain/openai';

// Basic setup
const maxim = new Maxim({ apiKey: 'your-api-key' });
const logger = await maxim.logger({ id: 'langchain-app' });
const tracer = new MaximLangchainTracer(logger);

// Use with LangChain models
const model = new ChatOpenAI({
  openAIApiKey: process.env.OPENAI_API_KEY,
  modelName: "gpt-4o-mini",
  callbacks: [tracer],
  metadata: {
    maxim: {
      generationName: "basic-openai-chat",
      generationTags: { testType: "basic", model: "openai" }
    },
  },
});

const response = await model.invoke("Hello world");
// Automatically logged to Maxim

Extends

  • BaseCallbackHandler

Constructors

Constructor

new MaximLangchainTracer(logger, input?): MaximLangchainTracer

Defined in: src/lib/logger/langchain/tracer.ts:87

Creates a new MaximLangchainTracer instance.

Parameters

logger

MaximLogger

The Maxim logger instance to use for tracing

input?

BaseCallbackHandlerInput

Optional LangChain callback handler configuration

Returns

MaximLangchainTracer

Examples

const maxim = new Maxim({ apiKey: 'your-api-key' });
const logger = await maxim.logger({ id: 'my-app' });
const tracer = new MaximLangchainTracer(logger);
// With custom callback configuration
const tracer = new MaximLangchainTracer(logger, {
  ignoreLLM: false,
  ignoreChain: false,
  ignoreAgent: false
});

Overrides

BaseCallbackHandler.constructor

Properties

name

readonly name: "MaximLangchainTracer" = "MaximLangchainTracer"

Defined in: src/lib/logger/langchain/tracer.ts:66

Overrides

BaseCallbackHandler.name

Methods

handleChainEnd()

handleChainEnd(outputs, runId, _parentRunId?, tags?, _kwargs?): void

Defined in: src/lib/logger/langchain/tracer.ts:226

Called at the end of a Chain run, with the outputs and the run ID.

Parameters

outputs

ChainValues

runId

string

_parentRunId?

string

tags?

string[]

_kwargs?

Returns

void

Overrides

BaseCallbackHandler.handleChainEnd


handleChainError()

handleChainError(err, runId, _parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:252

Called if a Chain run encounters an error

Parameters

err

any

runId

string

_parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleChainError


handleChainStart()

handleChainStart(_chain, inputs, runId, parentRunId?, tags?, metadata?, _runType?, runName?): void

Defined in: src/lib/logger/langchain/tracer.ts:156

Called at the start of a Chain run, with the chain name and inputs and the run ID.

Parameters

_chain

Serialized

inputs

ChainValues

runId

string

parentRunId?

string

tags?

string[]

metadata?

Record<string, unknown>

_runType?

string

runName?

string

Returns

void

Overrides

BaseCallbackHandler.handleChainStart


handleChatModelStart()

handleChatModelStart(llm, messages, runId, parentRunId?, extraParams?, tags?, metadata?, runName?): Promise<void>

Defined in: src/lib/logger/langchain/tracer.ts:412

Called at the start of a Chat Model run, with the prompt(s) and the run ID.

Parameters

llm

Serialized

messages

BaseMessage[][]

runId

string

parentRunId?

string

extraParams?

Record<string, unknown>

tags?

string[]

metadata?

Record<string, unknown>

runName?

string

Returns

Promise<void>

Overrides

BaseCallbackHandler.handleChatModelStart


handleLLMEnd()

handleLLMEnd(output, runId, parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:353

Called at the end of an LLM/ChatModel run, with the output and the run ID.

Parameters

output

LLMResult

runId

string

parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleLLMEnd


handleLLMError()

handleLLMError(err, runId, parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:383

Called if an LLM/ChatModel run encounters an error

Parameters

err

any

runId

string

parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleLLMError


handleLLMStart()

handleLLMStart(llm, prompts, runId, parentRunId?, extraParams?, tags?, metadata?, name?): Promise<void>

Defined in: src/lib/logger/langchain/tracer.ts:277

Called at the start of an LLM or Chat Model run, with the prompt(s) and the run ID.

Parameters

llm

Serialized

prompts

string[]

runId

string

parentRunId?

string

extraParams?

Record<string, unknown>

tags?

string[]

metadata?

Record<string, unknown>

name?

string

Returns

Promise<void>

Overrides

BaseCallbackHandler.handleLLMStart


handleRetrieverEnd()

handleRetrieverEnd(documents, runId, parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:534

Parameters

documents

DocumentInterface<Record<string, any>>[]

runId

string

parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleRetrieverEnd


handleRetrieverStart()

handleRetrieverStart(_retriever, query, runId, parentRunId?, tags?, metadata?, name?): void

Defined in: src/lib/logger/langchain/tracer.ts:488

Parameters

_retriever

Serialized

query

string

runId

string

parentRunId?

string

tags?

string[]

metadata?

Record<string, unknown>

name?

string

Returns

void

Overrides

BaseCallbackHandler.handleRetrieverStart


handleToolEnd()

handleToolEnd(output, runId, parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:609

Called at the end of a Tool run, with the tool output and the run ID.

Parameters

output

any

runId

string

parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleToolEnd


handleToolError()

handleToolError(error, runId, parentRunId?, tags?): void

Defined in: src/lib/logger/langchain/tracer.ts:665

Called if a Tool run encounters an error

Parameters

error

any

runId

string

parentRunId?

string

tags?

string[]

Returns

void

Overrides

BaseCallbackHandler.handleToolError


handleToolStart()

handleToolStart(tool, input, runId, parentRunId?, tags?, metadata?, runName?): void

Defined in: src/lib/logger/langchain/tracer.ts:562

Called at the start of a Tool run, with the tool name and input and the run ID.

Parameters

tool

Serialized

input

string

runId

string

parentRunId?

string

tags?

string[]

metadata?

Record<string, unknown>

runName?

string

Returns

void

Overrides

BaseCallbackHandler.handleToolStart