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