Braintrust TypeScript SDK - Braintrust

Documentation Index

Fetch the complete documentation index at: /docs/llms.txt

Use this file to discover all available pages before exploring further.

Skip to main content

This page provides a complete, auto-generated reference for the Braintrust TypeScript SDK. For usage guidance on important APIs, see the API Reference. Also see the Braintrust TypeScript SDK on GitHub.

​ Installation

npm

pnpm

npm install braintrust
pnpm add braintrust

Starting with v2.0.0, if you’re using the Vercel AI SDK integration or other features that require schema validation, you must install zod as a peer dependency: npm install zod

​ Functions

​ addAzureBlobHeaders

addAzureBlobHeaders function

​

headers

Record

​

url

string

​ BaseExperiment

Use this to specify that the dataset should actually be the data from a previous (base) experiment. If you do not specify a name, Braintrust will automatically figure out the best base experiment to use based on your git history (or fall back to timestamps).

​

options

Object

​

options.name

string

The name of the base experiment to use. If unspecified, Braintrust will automatically figure out the best base using your git history (or fall back to timestamps).

​ BraintrustMiddleware

Creates a Braintrust middleware for AI SDK v2 that automatically traces generateText and streamText calls with comprehensive metadata and metrics.

​

config

MiddlewareConfig

Configuration options for the middleware

​ buildLocalSummary

buildLocalSummary function

​

evaluator

EvaluatorDef

​

evaluator.evalName

string

required

​

evaluator.projectName

string

required

​

evaluator.baseExperimentId

string

An optional experiment id to use as a base. If specified, the new experiment will be summarized and compared to this experiment. This takes precedence over baseExperimentName if specified.

​

evaluator.baseExperimentName

string

An optional experiment name to use as a base. If specified, the new experiment will be summarized and compared to this experiment.

​

evaluator.data

EvalData

required

A function that returns a list of inputs, expected outputs, and metadata.

​

evaluator.description

string

An optional description for the experiment.

​

evaluator.errorScoreHandler

ErrorScoreHandler

Optionally supply a custom function to specifically handle score values when tasks or scoring functions have errored. A default implementation is exported as defaultErrorScoreHandler which will log a 0 score to the root span for any scorer that was not run.

​

evaluator.experimentName

string

An optional name for the experiment.

​

evaluator.flushBeforeScoring

boolean

Flushes spans before calling scoring functions

​

evaluator.gitMetadataSettings

Object

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

​

evaluator.isPublic

boolean

Whether the experiment should be public. Defaults to false.

​

evaluator.maxConcurrency

number

The maximum number of tasks/scorers that will be run concurrently. Defaults to undefined, in which case there is no max concurrency.

​

evaluator.metadata

Record

Optional additional metadata for the experiment.

​

evaluator.parameters

Parameters | RemoteEvalParameters | Promise

A set of parameters that will be passed to the evaluator. Can be:

​

evaluator.projectId

string

If specified, uses the given project ID instead of the evaluator’s name to identify the project.

​

evaluator.repoInfo

null | Object

Optionally explicitly specify the git metadata for this experiment. This takes precedence over gitMetadataSettings if specified.

​

evaluator.scores

EvalScorer[]

required

A set of functions that take an input, output, and expected value and return a score.

​

evaluator.signal

AbortSignal

An abort signal that can be used to stop the evaluation.

​

evaluator.state

BraintrustState

If specified, uses the logger state to initialize Braintrust objects. If unspecified, falls back to the global state (initialized using your API key).

​

evaluator.summarizeScores

boolean

Whether to summarize the scores of the experiment after it has run. Defaults to true.

​

evaluator.task

EvalTask

required

A function that takes an input and returns an output.

​

evaluator.timeout

number

The duration, in milliseconds, after which to time out the evaluation. Defaults to undefined, in which case there is no timeout.

​

evaluator.trialCount

number

The number of times to run the evaluator per input. This is useful for evaluating applications that have non-deterministic behavior and gives you both a stronger aggregate measure and a sense of the variance in the results.

​

evaluator.update

boolean

Whether to update an existing experiment with experiment_name if one exists. Defaults to false.

​

results

EvalResult[]

​

precomputedScores

ScoreAccumulator

​ constructLogs3OverflowRequest

constructLogs3OverflowRequest function

​

key

string

​ createFinalValuePassThroughStream

Create a stream that passes through the final value of the stream. This is used to implement BraintrustStream.finalValue().

​

onFinal

Object

A function to call with the final value of the stream.

​

onError

Object

​ currentExperiment

Returns the currently-active experiment (set by init). Returns undefined if no current experiment has been set.

​

options

OptionalStateArg

​ currentLogger

Returns the currently-active logger (set by initLogger). Returns undefined if no current logger has been set.

​

options

unknown

​ currentSpan

Return the currently-active span for logging (set by one of the traced methods). If there is no active span, returns a no-op span object, which supports the same interface as spans but does no logging.See Span for full details.

​

options

OptionalStateArg

​ defaultErrorScoreHandler

defaultErrorScoreHandler function

​

args

Object

​

args.data

EvalCase

required

​

args.rootSpan

Span

required

​

args.unhandledScores

string[]

required

​ deserializePlainStringAsJSON

deserializePlainStringAsJSON function

​

s

string

​ devNullWritableStream

devNullWritableStream function

​ Eval

Eval function

​

name

string

​

evaluator

Evaluator

​

evaluator.baseExperimentId

string

​

evaluator.baseExperimentName

string

An optional experiment name to use as a base. If specified, the new experiment will be summarized and compared to this experiment.

​

evaluator.data

EvalData

required

A function that returns a list of inputs, expected outputs, and metadata.

​

evaluator.description

string

An optional description for the experiment.

​

evaluator.errorScoreHandler

ErrorScoreHandler

​

evaluator.experimentName

string

An optional name for the experiment.

​

evaluator.flushBeforeScoring

boolean

Flushes spans before calling scoring functions

​

evaluator.gitMetadataSettings

Object

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

​

evaluator.isPublic

boolean

Whether the experiment should be public. Defaults to false.

​

evaluator.maxConcurrency

number

The maximum number of tasks/scorers that will be run concurrently. Defaults to undefined, in which case there is no max concurrency.

​

evaluator.metadata

Record

Optional additional metadata for the experiment.

​

evaluator.parameters

Parameters | RemoteEvalParameters | Promise

A set of parameters that will be passed to the evaluator. Can be:

​

evaluator.projectId

string

If specified, uses the given project ID instead of the evaluator’s name to identify the project.

​

evaluator.repoInfo

null | Object

Optionally explicitly specify the git metadata for this experiment. This takes precedence over gitMetadataSettings if specified.

​

evaluator.scores

EvalScorer[]

required

A set of functions that take an input, output, and expected value and return a score.

​

evaluator.signal

AbortSignal

An abort signal that can be used to stop the evaluation.

​

evaluator.state

BraintrustState

If specified, uses the logger state to initialize Braintrust objects. If unspecified, falls back to the global state (initialized using your API key).

​

evaluator.summarizeScores

boolean

Whether to summarize the scores of the experiment after it has run. Defaults to true.

​

evaluator.task

EvalTask

required

A function that takes an input and returns an output.

​

evaluator.timeout

number

The duration, in milliseconds, after which to time out the evaluation. Defaults to undefined, in which case there is no timeout.

​

evaluator.trialCount

number

​

evaluator.update

boolean

Whether to update an existing experiment with experiment_name if one exists. Defaults to false.

​

reporterOrOpts

string | ReporterDef | EvalOptions

​ flush

Flush any pending rows to the server.

​

options

OptionalStateArg

​ getContextManager

getContextManager function

​ getIdGenerator

Factory function that creates a new ID generator instance each time.This eliminates global state and makes tests parallelizable. Each caller gets their own generator instance.

​ getPromptVersions

Get the versions for a prompt.

​

projectId

string

The ID of the project to query

​

promptId

string

The ID of the prompt to get versions for

​ getSpanParentObject

Mainly for internal use. Return the parent object for starting a span in a global context. Applies precedence: current span > propagated parent string > experiment > logger.

​

options

unknown

​

options.parent

string

​ init

Log in, and then initialize a new experiment in a specified project. If the project does not exist, it will be created.

​

options

Readonly

Options for configuring init().

​

options.project

string

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

The URL of the Braintrust App. Defaults to https://www.braintrust.dev. You should not need to change this unless you are doing the “Full” deployment.

​

options.disableSpanCache

boolean

If true, disables the local span cache used to optimize scorer access to trace data. When disabled, scorers will always fetch spans from the server. Defaults to false.

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

The name of a specific organization to connect to. Since API keys are scoped to organizations, this parameter is usually unnecessary unless you are logging in with a JWT.

​

options.forceLogin

boolean

​

options.baseExperiment

string

​

options.baseExperimentId

string

​

options.dataset

AnyDataset | DatasetRef

​

options.description

string

​

options.experiment

string

​

options.gitMetadataSettings

GitMetadataSettings

​

options.isPublic

boolean

​

options.metadata

Record

​

options.projectId

string

​

options.repoInfo

RepoInfo

​

options.setCurrent

boolean

​

options.state

BraintrustState

​

options.update

boolean

​ initDataset

Create a new dataset in a specified project. If the project does not exist, it will be created.

​

options

Readonly

Options for configuring initDataset().

​

options.project

string

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.dataset

string

​

options.description

string

​

options.metadata

Record

​

options.projectId

string

​

options.state

BraintrustState

​

options.version

string

​ initExperiment

Alias for init(options).

​

options

Readonly

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.baseExperiment

string

​

options.baseExperimentId

string

​

options.dataset

AnyDataset | DatasetRef

​

options.description

string

​

options.experiment

string

​

options.gitMetadataSettings

GitMetadataSettings

​

options.isPublic

boolean

​

options.metadata

Record

​

options.projectId

string

​

options.repoInfo

RepoInfo

​

options.setCurrent

boolean

​

options.state

BraintrustState

​

options.update

boolean

​ initFunction

Creates a function that can be used as a task or scorer in the Braintrust evaluation framework. The returned function wraps a Braintrust function and can be passed directly to Eval().When used as a task:

const myFunction = initFunction({projectName: "myproject", slug: "myfunction"});
await Eval("test", {
  task: myFunction,
  data: testData,
  scores: [...]
});

When used as a scorer:

const myScorer = initFunction({projectName: "myproject", slug: "myscorer"});
await Eval("test", {
  task: someTask,
  data: testData,
  scores: [myScorer]
});

​

options

Object

Options for the function.

​

options.projectName

string

required

The project name containing the function.

​

options.slug

string

required

The slug of the function to invoke.

​

options.state

BraintrustState

Optional Braintrust state to use.

​

options.version

string

Optional version of the function to use. Defaults to latest.

​ initLogger

Create a new logger in a specified project. If the project does not exist, it will be created.

​

options

Readonly

Additional options for configuring init().

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.orgProjectMetadata

OrgProjectMetadata

​

options.projectId

string

​

options.projectName

string

​

options.setCurrent

boolean

​

options.state

BraintrustState

​ invoke

Invoke a Braintrust function, returning a BraintrustStream or the value as a plain Javascript object.

​

args

unknown

The arguments for the function (see InvokeFunctionArgs for more details).

​

args.functionType

"tool" | "parameters" | "task" | "scorer" | "tag" | "llm" | "custom_view" | "facet" | "preprocessor" | "classifier"

The type of the global function to invoke. If unspecified, defaults to ‘scorer’ for backward compatibility.

​

args.function_id

string

The ID of the function to invoke.

​

args.globalFunction

string

The name of the global function to invoke.

​

args.input

Input

required

The input to the function. This will be logged as the input field in the span.

​

args.messages

Object | Object | Object | Object | Object | Object | Object[]

Additional OpenAI-style messages to add to the prompt (only works for llm functions).

​

args.metadata

Record

Additional metadata to add to the span. This will be logged as the metadata field in the span. It will also be available as the {{metadata}} field in the prompt and as the metadata argument to the function.

​

args.mode

null | "text" | "auto" | "parallel" | "json"

The mode of the function. If “auto”, will return a string if the function returns a string, and a JSON object otherwise. If “parallel”, will return an array of JSON objects with one object per tool call.

​

args.parent

string | Exportable

The parent of the function. This can be an existing span, logger, or experiment, or the output of .export() if you are distributed tracing. If unspecified, will use the same semantics as traced() to determine the parent and no-op if not in a tracing context.

​

args.projectId

string

The ID of the project to use for execution context (API keys, project defaults, etc.). This is not the project the function belongs to, but the project context for the invocation.

​

args.projectName

string

The name of the project containing the function to invoke.

​

args.promptSessionFunctionId

string

The ID of the function in the prompt session to invoke.

​

args.promptSessionId

string

The ID of the prompt session to invoke the function from.

​

args.schema

unknown

A Zod schema to validate the output of the function and return a typed value. This is only used if stream is false.

​

args.slug

string

The slug of the function to invoke.

​

args.state

BraintrustState

(Advanced) This parameter allows you to pass in a custom login state. This is useful for multi-tenant environments where you are running functions from different Braintrust organizations.

​

args.stream

Stream

Whether to stream the function’s output. If true, the function will return a BraintrustStream, otherwise it will return the output of the function as a JSON object.

​

args.strict

boolean

Whether to use strict mode for the function. If true, the function will throw an error if the variable names in the prompt do not match the input keys.

​

args.tags

string[]

Tags to add to the span. This will be logged as the tags field in the span.

​

args.version

string

The version of the function to invoke.

​

args.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

args.appUrl

string

​

args.disableSpanCache

boolean

​

args.fetch

Object

A custom fetch implementation to use.

​

args.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

args.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

args.orgName

string

​

args.forceLogin

boolean

​ isTemplateFormat

isTemplateFormat function

​

v

unknown

​ loadParameters

Load parameters from the specified project.

​

options

LoadParametersByProjectNameOptions

Options for configuring loadParameters().

​ loadPrompt

Load a prompt from the specified project.

​

options

LoadPromptOptions

Options for configuring loadPrompt().

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.defaults

DefaultPromptArgs

​

options.environment

string

​

options.id

string

​

options.noTrace

boolean

​

options.projectId

string

​

options.projectName

string

​

options.slug

string

​

options.state

BraintrustState

​

options.version

string

​ log

Log a single event to the current experiment. The event will be batched and uploaded behind the scenes.

​

event

ExperimentLogFullArgs

The event to log. See Experiment.log for full details.

​

event.input

unknown

required

​

event.id

string

required

​ logError

logError function

​

span

Span

​

span.id

string

required

Row ID of the span.

​

span.kind

"span"

required

​

span.rootSpanId

string

required

Root span ID of the span.

​

span.spanId

string

required

Span ID of the span.

​

span.spanParents

string[]

required

Parent span IDs of the span.

​

error

unknown

​ login

Log into Braintrust. This will prompt you for your API token, which you can find at https://www.braintrust.dev/app/token. This method is called automatically by init().

​

options

unknown

Options for configuring login().

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

Login again, even if you have already logged in (by default, this function will exit quickly if you have already logged in)

​ loginToState

loginToState function

​

options

LoginOptions

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​ newId

newId function

​ parseCachedHeader

parseCachedHeader function

​

value

undefined | null | string

​ parseTemplateFormat

parseTemplateFormat function

​

value

unknown

​

defaultFormat

TemplateFormat

​ permalink

Format a permalink to the Braintrust application for viewing the span represented by the provided slug.Links can be generated at any time, but they will only become viewable after the span and its root have been flushed to the server and ingested.If you have a Span object, use Span.link instead.

​

slug

string

The identifier generated from Span.export.

​

opts

Object

Optional arguments.

​

opts.appUrl

string

The app URL to use. If not provided, the app URL will be inferred from the state.

​

opts.orgName

string

The org name to use. If not provided, the org name will be inferred from the state.

​

opts.state

BraintrustState

The login state to use. If not provided, the global state will be used.

​ pickLogs3OverflowObjectIds

pickLogs3OverflowObjectIds function

​

row

Record

​ promptDefinitionToPromptData

promptDefinitionToPromptData function

​

promptDefinition

unknown

​

promptDefinition.model

string

required

​

promptDefinition.params

objectOutputType | objectOutputType | objectOutputType | objectOutputType | objectOutputType

​

promptDefinition.templateFormat

"none" | "mustache" | "nunjucks"

​

rawTools

Object[]

​ registerOtelFlush

Register a callback to flush OTEL spans. This is called by @braintrust/otel when it initializes a BraintrustSpanProcessor/Exporter.When ensureSpansFlushed is called (e.g., before a BTQL query in scorers), this callback will be invoked to ensure OTEL spans are flushed to the server.Also disables the span cache, since OTEL spans aren’t in the local cache and we need BTQL to see the complete span tree (both native + OTEL spans).

​

callback

Object

​ renderMessage

renderMessage function

​

render

Object

​

message

T

​ renderPromptParams

renderPromptParams function

​

params

undefined | objectOutputType | objectOutputType | objectOutputType | objectOutputType | objectOutputType

​

args

Record

​

options

Object

​

options.strict

boolean

​

options.templateFormat

TemplateFormat

​ renderTemplateContent

renderTemplateContent function

​

template

string

​

variables

Record

​

escape

Object

​

options

Object

​

options.strict

boolean

​

options.templateFormat

TemplateFormat

​ Reporter

Reporter function

​

name

string

​

reporter

ReporterBody

​ reportFailures

reportFailures function

​

evaluator

EvaluatorDef

​

evaluator.evalName

string

required

​

evaluator.projectName

string

required

​

evaluator.baseExperimentId

string

​

evaluator.baseExperimentName

string

An optional experiment name to use as a base. If specified, the new experiment will be summarized and compared to this experiment.

​

evaluator.data

EvalData

required

A function that returns a list of inputs, expected outputs, and metadata.

​

evaluator.description

string

An optional description for the experiment.

​

evaluator.errorScoreHandler

ErrorScoreHandler

​

evaluator.experimentName

string

An optional name for the experiment.

​

evaluator.flushBeforeScoring

boolean

Flushes spans before calling scoring functions

​

evaluator.gitMetadataSettings

Object

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

​

evaluator.isPublic

boolean

Whether the experiment should be public. Defaults to false.

​

evaluator.maxConcurrency

number

The maximum number of tasks/scorers that will be run concurrently. Defaults to undefined, in which case there is no max concurrency.

​

evaluator.metadata

Record

Optional additional metadata for the experiment.

​

evaluator.parameters

Parameters | RemoteEvalParameters | Promise

A set of parameters that will be passed to the evaluator. Can be:

​

evaluator.projectId

string

If specified, uses the given project ID instead of the evaluator’s name to identify the project.

​

evaluator.repoInfo

null | Object

Optionally explicitly specify the git metadata for this experiment. This takes precedence over gitMetadataSettings if specified.

​

evaluator.scores

EvalScorer[]

required

A set of functions that take an input, output, and expected value and return a score.

​

evaluator.signal

AbortSignal

An abort signal that can be used to stop the evaluation.

​

evaluator.state

BraintrustState

If specified, uses the logger state to initialize Braintrust objects. If unspecified, falls back to the global state (initialized using your API key).

​

evaluator.summarizeScores

boolean

Whether to summarize the scores of the experiment after it has run. Defaults to true.

​

evaluator.task

EvalTask

required

A function that takes an input and returns an output.

​

evaluator.timeout

number

The duration, in milliseconds, after which to time out the evaluation. Defaults to undefined, in which case there is no timeout.

​

evaluator.trialCount

number

​

evaluator.update

boolean

Whether to update an existing experiment with experiment_name if one exists. Defaults to false.

​

failingResults

EvalResult[]

​

__namedParameters

ReporterOpts

​ runEvaluator

runEvaluator function

​

experiment

null | Experiment

​

evaluator

EvaluatorDef

​

evaluator.evalName

string

required

​

evaluator.projectName

string

required

​

evaluator.baseExperimentId

string

​

evaluator.baseExperimentName

string

An optional experiment name to use as a base. If specified, the new experiment will be summarized and compared to this experiment.

​

evaluator.data

EvalData

required

A function that returns a list of inputs, expected outputs, and metadata.

​

evaluator.description

string

An optional description for the experiment.

​

evaluator.errorScoreHandler

ErrorScoreHandler

​

evaluator.experimentName

string

An optional name for the experiment.

​

evaluator.flushBeforeScoring

boolean

Flushes spans before calling scoring functions

​

evaluator.gitMetadataSettings

Object

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

​

evaluator.isPublic

boolean

Whether the experiment should be public. Defaults to false.

​

evaluator.maxConcurrency

number

The maximum number of tasks/scorers that will be run concurrently. Defaults to undefined, in which case there is no max concurrency.

​

evaluator.metadata

Record

Optional additional metadata for the experiment.

​

evaluator.parameters

Parameters | RemoteEvalParameters | Promise

A set of parameters that will be passed to the evaluator. Can be:

​

evaluator.projectId

string

If specified, uses the given project ID instead of the evaluator’s name to identify the project.

​

evaluator.repoInfo

null | Object

Optionally explicitly specify the git metadata for this experiment. This takes precedence over gitMetadataSettings if specified.

​

evaluator.scores

EvalScorer[]

required

A set of functions that take an input, output, and expected value and return a score.

​

evaluator.signal

AbortSignal

An abort signal that can be used to stop the evaluation.

​

evaluator.state

BraintrustState

If specified, uses the logger state to initialize Braintrust objects. If unspecified, falls back to the global state (initialized using your API key).

​

evaluator.summarizeScores

boolean

Whether to summarize the scores of the experiment after it has run. Defaults to true.

​

evaluator.task

EvalTask

required

A function that takes an input and returns an output.

​

evaluator.timeout

number

The duration, in milliseconds, after which to time out the evaluation. Defaults to undefined, in which case there is no timeout.

​

evaluator.trialCount

number

​

evaluator.update

boolean

Whether to update an existing experiment with experiment_name if one exists. Defaults to false.

​

progressReporter

ProgressReporter

​

filters

Filter[]

​

stream

undefined | Object

​

parameters

InferParameters

​

collectResults

boolean

​

enableCache

boolean

​ setFetch

Set the fetch implementation to use for requests. You can specify it here, or when you call login.

​

fetch

Object

The fetch implementation to use.

​ setMaskingFunction

Set a global masking function that will be applied to all logged data before sending to Braintrust. The masking function will be applied after records are merged but before they are sent to the backend.

​

maskingFunction

null | Object

A function that takes a JSON-serializable object and returns a masked version. Set to null to disable masking.

​ spanComponentsToObjectId

spanComponentsToObjectId function

​

__namedParameters

Object

​

__namedParameters.components

SpanComponentsV3

required

​

__namedParameters.state

BraintrustState

​ startSpan

Lower-level alternative to traced. This allows you to start a span yourself, and can be useful in situations where you cannot use callbacks. However, spans started with startSpan will not be marked as the “current span”, so currentSpan() and traced() will be no-ops. If you want to mark a span as current, use traced instead.See traced for full details.

​

args

unknown

​

args.event

StartSpanEventArgs

​

args.name

string

​

args.parent

string

​

args.parentSpanIds

ParentSpanIds | MultiParentSpanIds

​

args.propagatedEvent

StartSpanEventArgs

​

args.spanAttributes

Record

​

args.spanId

string

​

args.startTime

number

​

args.type

SpanType

​ summarize

Summarize the current experiment, including the scores (compared to the closest reference experiment) and metadata.

​

options

Object

Options for summarizing the experiment.

​

options.comparisonExperimentId

string

The experiment to compare against. If None, the most recent experiment on the origin’s main branch will be used.

​

options.summarizeScores

boolean

Whether to summarize the scores. If False, only the metadata will be returned.

​ traceable

A synonym for wrapTraced. If you’re porting from systems that use traceable, you can use this to make your codebase more consistent.

​

fn

F

​

args

unknown

​

args.event

StartSpanEventArgs

​

args.name

string

​

args.parent

string

​

args.parentSpanIds

ParentSpanIds | MultiParentSpanIds

​

args.propagatedEvent

StartSpanEventArgs

​

args.spanAttributes

Record

​

args.spanId

string

​

args.startTime

number

​

args.type

SpanType

​

args.setCurrent

boolean

​ traced

Toplevel function for starting a span. It checks the following (in precedence order):

and creates a span under the first one that is active. Alternatively, if parent is specified, it creates a span under the specified parent row. If none of these are active, it returns a no-op span object.See Span.traced for full details.

​

callback

Object

​

args

unknown

​

args.event

StartSpanEventArgs

​

args.name

string

​

args.parent

string

​

args.parentSpanIds

ParentSpanIds | MultiParentSpanIds

​

args.propagatedEvent

StartSpanEventArgs

​

args.spanAttributes

Record

​

args.spanId

string

​

args.startTime

number

​

args.type

SpanType

​

args.setCurrent

boolean

​ updateSpan

Update a span using the output of span.export(). It is important that you only resume updating to a span once the original span has been fully written and flushed, since otherwise updates to the span may conflict with the original span.

​

__namedParameters

unknown

​

__namedParameters.exported

string

required

​ uploadLogs3OverflowPayload

Upload a logs3 overflow payload to the signed URL. This is a standalone function that can be used by both SDK and app code.

​

upload

Object

The overflow upload metadata from the API

​

upload.fields

Record

​

upload.headers

Record

​

upload.key

string

required

​

upload.method

"POST" | "PUT"

required

​

upload.signedUrl

string

required

​

payload

string

The JSON payload string to upload

​

fetchFn

Object

Optional custom fetch function (defaults to global fetch)

​ utf8ByteLength

utf8ByteLength function

​

value

string

​ withCurrent

Runs the provided callback with the span as the current span.

​

span

Span

​

span.id

string

required

Row ID of the span.

​

span.kind

"span"

required

​

span.rootSpanId

string

required

Root span ID of the span.

​

span.spanId

string

required

Span ID of the span.

​

span.spanParents

string[]

required

Parent span IDs of the span.

​

callback

Object

​

state

undefined | BraintrustState

​ withDataset

withDataset function

​

project

string

​

callback

Object

​

options

Readonly

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.dataset

string

​

options.description

string

​

options.metadata

Record

​

options.projectId

string

​

options.state

BraintrustState

​

options.version

string

​ withExperiment

withExperiment function

​

project

string

​

callback

Object

​

options

Readonly

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.baseExperiment

string

​

options.baseExperimentId

string

​

options.dataset

DatasetRef | AnyDataset

​

options.description

string

​

options.experiment

string

​

options.gitMetadataSettings

Object

​

options.isPublic

boolean

​

options.metadata

Record

​

options.projectId

string

​

options.repoInfo

null | Object

​

options.setCurrent

boolean

​

options.state

BraintrustState

​

options.update

boolean

​

options.setCurrent

boolean

​ withLogger

withLogger function

​

callback

Object

​

options

Readonly

​

options.apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

options.appUrl

string

​

options.disableSpanCache

boolean

​

options.fetch

Object

A custom fetch implementation to use.

​

options.noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

options.onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

options.orgName

string

​

options.forceLogin

boolean

​

options.orgProjectMetadata

OrgProjectMetadata

​

options.projectId

string

​

options.projectName

string

​

options.setCurrent

boolean

​

options.state

BraintrustState

​

options.setCurrent

boolean

​ withParent

withParent function

​

parent

string

​

callback

Object

​

state

undefined | BraintrustState

​ wrapAgentClass

wrapAgentClass function

​

AgentClass

any

​

options

WrapAISDKOptions

​ wrapAISDK

Wraps Vercel AI SDK methods with Braintrust tracing. Returns wrapped versions of generateText, streamText, generateObject, streamObject, Agent, experimental_Agent, and ToolLoopAgent that automatically create spans and log inputs, outputs, and metrics.

​

aiSDK

T

​

options

WrapAISDKOptions

​ wrapAISDKModel

Wrap an ai-sdk model (created with .chat(), .completion(), etc.) to add tracing. If Braintrust is not configured, this is a no-op

​

model

T

​ wrapAnthropic

Wrap an Anthropic object (created with new Anthropic(...)) to add tracing. If Braintrust is not configured, nothing will be traced. If this is not an Anthropic object, this function is a no-op.Currently, this only supports the v4 API.

​

anthropic

T

​ wrapClaudeAgentSDK

Wraps the Claude Agent SDK with Braintrust tracing. This returns wrapped versions of query and tool that automatically trace all agent interactions.

​

sdk

T

The Claude Agent SDK module

​ wrapGoogleGenAI

Wrap a Google GenAI module (imported with import * as googleGenAI from '@google/genai') to add tracing. If Braintrust is not configured, nothing will be traced.

​

googleGenAI

T

The Google GenAI module

​ wrapMastraAgent

wrapMastraAgent function

​

agent

T

​

_options

Object

​

_options.name

string

​

_options.span_name

string

​ wrapOpenAI

Wrap an OpenAI object (created with new OpenAI(...)) to add tracing. If Braintrust is not configured, nothing will be traced. If this is not an OpenAI object, this function is a no-op.Currently, this supports both the v4 and v5 API.

​

openai

T

​ wrapOpenAIv4

wrapOpenAIv4 function

​

openai

T

​ wrapTraced

Wrap a function with traced, using the arguments as input and return value as output. Any functions wrapped this way will automatically be traced, similar to the @traced decorator in Python. If you want to correctly propagate the function’s name and define it in one go, then you can do so like this:

const myFunc = wrapTraced(async function myFunc(input) {
 const result = await client.chat.completions.create({
   model: "gpt-3.5-turbo",
   messages: [{ role: "user", content: input }],
 });
 return result.choices[0].message.content ?? "unknown";
},
// Optional: if you're using a framework like NextJS that minifies your code, specify the function name and it will be used for the span name
{ name: "myFunc" },
);

Now, any calls to myFunc will be traced, and the input and output will be logged automatically. If tracing is inactive, i.e. there is no active logger or experiment, it’s just a no-op.

​

fn

F

The function to wrap.

​

args

unknown

Span-level arguments (e.g. a custom name or type) to pass to traced.

​

args.event

StartSpanEventArgs

​

args.name

string

​

args.parent

string

​

args.parentSpanIds

ParentSpanIds | MultiParentSpanIds

​

args.propagatedEvent

StartSpanEventArgs

​

args.spanAttributes

Record

​

args.spanId

string

​

args.startTime

number

​

args.type

SpanType

​

args.setCurrent

boolean

​ Classes

​ Attachment

Represents an attachment to be uploaded and the associated metadata. Attachment objects can be inserted anywhere in an event, allowing you to log arbitrary file data. The SDK will asynchronously upload the file to object storage and replace the Attachment object with an AttachmentReference.Properties

​

reference

Object

The object that replaces this Attachment at upload time.

Methodsdata(), debugInfo(), upload()

​ BaseAttachment

BaseAttachment classProperties

​

reference

Object | Object

Methodsdata(), debugInfo(), upload()

​ BraintrustState

BraintrustState classProperties

​

apiUrl

null | string

​

appPublicUrl

null | string

​

appUrl

null | string

​

currentExperiment

undefined | Experiment

​

currentLogger

undefined | Logger

​

currentParent

IsoAsyncLocalStorage

​

currentSpan

IsoAsyncLocalStorage

​

fetch

Object

​

gitMetadataSettings

Object

​

id

string

​

loggedIn

boolean

​

loginToken

null | string

​

orgId

null | string

​

orgName

null | string

​

parametersCache

ParametersCache

​

promptCache

PromptCache

​

proxyUrl

null | string

​

spanCache

SpanCache

​

contextManager

unknown

​

idGenerator

unknown

MethodsapiConn(), appConn(), bgLogger(), copyLoginInfo(), disable(), enforceQueueSizeLimit(), flushOtel(), httpLogger(), login(), loginReplaceApiConn(), proxyConn(), registerOtelFlush(), resetIdGenState(), resetLoginInfo(), serialize(), setFetch(), setMaskingFunction(), setOverrideBgLogger(), toJSON(), toString(), deserialize()

​ BraintrustStream

A Braintrust stream. This is a wrapper around a ReadableStream of BraintrustStreamChunk, with some utility methods to make them easy to log and convert into various formats.Methods[asyncIterator](), copy(), finalValue(), toReadableStream(), parseRawEvent(), serializeRawEvent()

​ CachedSpanFetcher

Cached span fetcher that handles fetching and caching spans by type.Caching strategy:

MethodsgetSpans()

​ CodeFunction

CodeFunction classProperties

​

description

string

​

handler

Fn

​

ifExists

"replace" | "error" | "ignore"

​

metadata

Record

​

name

string

​

parameters

ZodType

​

project

Project

​

returns

ZodType

​

slug

string

​

type

"tool" | "parameters" | "task" | "scorer" | "tag" | "llm" | "custom_view" | "facet" | "preprocessor" | "classifier"

Methodskey()

​ CodePrompt

CodePrompt classProperties

​

description

string

​

functionType

"tool" | "parameters" | "task" | "scorer" | "tag" | "llm" | "custom_view" | "facet" | "preprocessor" | "classifier"

​

id

string

​

ifExists

"replace" | "error" | "ignore"

​

metadata

Record

​

name

string

​

project

Project

​

prompt

Object

​

slug

string

​

toolFunctions

Object | Object | GenericCodeFunction[]

MethodstoFunctionDefinition()

​ ContextManager

ContextManager classMethodsgetCurrentSpan(), getParentSpanIds(), runInContext()

​ Dataset

A dataset is a collection of records, such as model inputs and expected outputs, which represent data you can use to evaluate and fine-tune models. You can log production data to datasets, curate them with interesting examples, edit/delete records, and run evaluations against them.You should not create Dataset objects directly. Instead, use the braintrust.initDataset() method.Properties

​

id

unknown

​

loggingState

unknown

​

name

unknown

​

project

unknown

Methods[asyncIterator](), clearCache(), close(), delete(), fetch(), fetchedData(), flush(), getState(), insert(), summarize(), update(), version(), isDataset()

​ EvalResultWithSummary

EvalResultWithSummary classProperties

​

results

EvalResult[]

​

summary

ExperimentSummary

MethodstoJSON(), toString()

​ Experiment

An experiment is a collection of logged events, such as model inputs and outputs, which represent a snapshot of your application at a particular point in time. An experiment is meant to capture more than just the model you use, and includes the data you use to test, pre- and post- processing code, comparison metrics (scores), and any other metadata you want to include.Experiments are associated with a project, and two experiments are meant to be easily comparable via their inputs. You can change the attributes of the experiments in a project (e.g. scoring functions) over time, simply by changing what you log.You should not create Experiment objects directly. Instead, use the braintrust.init() method.Properties

​

dataset

AnyDataset

​

kind

"experiment"

​

id

unknown

​

loggingState

unknown

​

name

unknown

​

project

unknown

Methods[asyncIterator](), clearCache(), close(), export(), fetch(), fetchBaseExperiment(), fetchedData(), flush(), getState(), log(), logFeedback(), startSpan(), summarize(), traced(), updateSpan(), version()

​ ExternalAttachment

Represents an attachment that resides in an external object store and the associated metadata.ExternalAttachment objects can be inserted anywhere in an event, similar to Attachment objects, but they reference files that already exist in an external object store rather than requiring upload. The SDK will replace the ExternalAttachment object with an AttachmentReference during logging.Properties

​

reference

Object

The object that replaces this ExternalAttachment at upload time.

Methodsdata(), debugInfo(), upload()

​ FailedHTTPResponse

FailedHTTPResponse classProperties

​

data

string

​

status

number

​

text

string

​ IDGenerator

Abstract base class for ID generatorsMethodsgetSpanId(), getTraceId(), shareRootSpanId()

​ JSONAttachment

Represents a JSON object that should be stored as an attachment.JSONAttachment is a convenience function that creates an Attachment from JSON data. It’s particularly useful for large JSON objects that would otherwise bloat the trace size.The JSON data is automatically serialized and stored as an attachment with content type “application/json”.Properties

​

reference

Object

The object that replaces this Attachment at upload time.

Methodsdata(), debugInfo(), upload()

​ LazyValue

LazyValue classProperties

​

hasSucceeded

unknown

Methodsget(), getSync()

​ Logger

Logger classProperties

​

kind

"logger"

​

asyncFlush

unknown

​

id

unknown

​

loggingState

unknown

​

org_id

unknown

​

project

unknown

Methodsexport(), flush(), log(), logFeedback(), startSpan(), traced(), updateSpan()

​ LoginInvalidOrgError

LoginInvalidOrgError classProperties

​

message

string

​ NoopSpan

A fake implementation of the Span API which does nothing. This can be used as the default span.Properties

​

id

string

Row ID of the span.

​

kind

"span"

​

rootSpanId

string

Root span ID of the span.

​

spanId

string

Span ID of the span.

​

spanParents

string[]

Parent span IDs of the span.

Methodsclose(), end(), export(), flush(), getParentInfo(), link(), log(), logFeedback(), permalink(), setAttributes(), startSpan(), startSpanWithParents(), state(), toString(), traced()

​ ObjectFetcher

ObjectFetcher classProperties

​

id

unknown

Methods[asyncIterator](), clearCache(), fetch(), fetchedData(), getState(), version()

​ Project

Project classProperties

​

id

string

​

name

string

​

parameters

ParametersBuilder

​

prompts

PromptBuilder

​

scorers

ScorerBuilder

​

tools

ToolBuilder

MethodsaddCodeFunction(), addParameters(), addPrompt(), publish()

​ ProjectNameIdMap

ProjectNameIdMap classMethodsgetId(), getName(), resolve()

​ Prompt

Prompt classProperties

​

id

unknown

​

name

unknown

​

options

unknown

​

projectId

unknown

​

prompt

unknown

​

promptData

unknown

​

slug

unknown

​

templateFormat

unknown

​

version

unknown

Methodsbuild(), buildWithAttachments(), fromPromptData(), isPrompt(), renderPrompt()

​ PromptBuilder

PromptBuilder classMethodscreate()

​ ReadonlyAttachment

A readonly alternative to Attachment, which can be used for fetching already-uploaded Attachments.Properties

​

reference

Object | Object

Attachment metadata.

MethodsasBase64Url(), data(), metadata(), status()

​ ReadonlyExperiment

A read-only view of an experiment, initialized by passing open: true to init().Properties

​

id

unknown

​

loggingState

unknown

​

name

unknown

Methods[asyncIterator](), asDataset(), clearCache(), fetch(), fetchedData(), getState(), version()

​ ScorerBuilder

ScorerBuilder classMethodscreate()

​ SpanFetcher

Fetcher for spans by root_span_id, using the ObjectFetcher pattern. Handles pagination automatically via cursor-based iteration.Properties

​

id

unknown

Methods[asyncIterator](), clearCache(), fetch(), fetchedData(), getState(), version()

​ SpanImpl

Primary implementation of the Span interface. See Span for full details on each method.We suggest using one of the various traced methods, instead of creating Spans directly. See Span.startSpan for full details.Properties

​

kind

"span"

​

id

unknown

Row ID of the span.

​

rootSpanId

unknown

Root span ID of the span.

​

spanId

unknown

Span ID of the span.

​

spanParents

unknown

Parent span IDs of the span.

Methodsclose(), end(), export(), flush(), getParentInfo(), link(), log(), logFeedback(), permalink(), setAttributes(), setSpanParents(), startSpan(), startSpanWithParents(), state(), toString(), traced()

​ TestBackgroundLogger

TestBackgroundLogger classMethodsdrain(), flush(), log(), setMaskingFunction()

​ ToolBuilder

ToolBuilder classMethodscreate()

​ UUIDGenerator

ID generator that uses UUID4 for both span and trace IDsMethodsgetSpanId(), getTraceId(), shareRootSpanId()

​ Interfaces

​ AttachmentParams

AttachmentParams interfaceProperties

​

contentType

string

​

data

string | ArrayBuffer | Blob

​

filename

string

​

state

BraintrustState

​ BackgroundLoggerOpts

BackgroundLoggerOpts interfaceProperties

​

noExitFlush

boolean

​

onFlushError

Object

​ ContextParentSpanIds

ContextParentSpanIds interfaceProperties

​

rootSpanId

string

​

spanParents

string[]

​ DatasetSummary

Summary of a dataset’s scores and metadata.Properties

​

dataSummary

undefined | DataSummary

Summary of the dataset’s data.

​

datasetName

string

Name of the dataset.

​

datasetUrl

string

URL to the experiment’s page in the Braintrust app.

​

projectName

string

Name of the project that the dataset belongs to.

​

projectUrl

string

URL to the project’s page in the Braintrust app.

​ DataSummary

Summary of a dataset’s data.Properties

​

newRecords

number

New or updated records added in this session.

​

totalRecords

number

Total records in the dataset.

​ EvalHooks

EvalHooks interfaceProperties

​

expected

Expected

The expected output for the current evaluation.

​

meta

Object

​

metadata

unknown

The metadata object for the current evaluation. You can mutate this object to add or remove metadata.

​

parameters

InferParameters

The current parameters being used for this specific task execution. Array parameters are converted to single values.

​

reportProgress

Object

Report progress that will show up in the playground.

​

span

Span

The task’s span.

​

tags

undefined | string[]

The tags for the current evaluation.

​

trialIndex

number

The index of the current trial (0-based). This is useful when trialCount > 1.

​ Evaluator

Evaluator interfaceProperties

​

baseExperimentId

string

​

baseExperimentName

string

An optional experiment name to use as a base. If specified, the new experiment will be summarized and compared to this experiment.

​

data

EvalData

A function that returns a list of inputs, expected outputs, and metadata.

​

description

string

An optional description for the experiment.

​

errorScoreHandler

ErrorScoreHandler

​

experimentName

string

An optional name for the experiment.

​

flushBeforeScoring

boolean

Flushes spans before calling scoring functions

​

gitMetadataSettings

Object

Optional settings for collecting git metadata. By default, will collect all git metadata fields allowed in org-level settings.

​

isPublic

boolean

Whether the experiment should be public. Defaults to false.

​

maxConcurrency

number

The maximum number of tasks/scorers that will be run concurrently. Defaults to undefined, in which case there is no max concurrency.

​

metadata

Record

Optional additional metadata for the experiment.

​

parameters

Parameters | RemoteEvalParameters | Promise

A set of parameters that will be passed to the evaluator. Can be:

​

projectId

string

If specified, uses the given project ID instead of the evaluator’s name to identify the project.

​

repoInfo

null | Object

Optionally explicitly specify the git metadata for this experiment. This takes precedence over gitMetadataSettings if specified.

​

scores

EvalScorer[]

A set of functions that take an input, output, and expected value and return a score.

​

signal

AbortSignal

An abort signal that can be used to stop the evaluation.

​

state

BraintrustState

If specified, uses the logger state to initialize Braintrust objects. If unspecified, falls back to the global state (initialized using your API key).

​

summarizeScores

boolean

Whether to summarize the scores of the experiment after it has run. Defaults to true.

​

task

EvalTask

A function that takes an input and returns an output.

​

timeout

number

The duration, in milliseconds, after which to time out the evaluation. Defaults to undefined, in which case there is no timeout.

​

trialCount

number

​

update

boolean

Whether to update an existing experiment with experiment_name if one exists. Defaults to false.

​ ExperimentSummary

Summary of an experiment’s scores and metadata.Properties

​

comparisonExperimentName

string

The experiment scores are baselined against.

​

experimentId

string

ID of the experiment. May be undefined if the eval was run locally.

​

experimentName

string

Name of the experiment.

​

experimentUrl

string

URL to the experiment’s page in the Braintrust app.

​

metrics

Record

​

projectId

string

​

projectName

string

Name of the project that the experiment belongs to.

​

projectUrl

string

URL to the project’s page in the Braintrust app.

​

scores

Record

Summary of the experiment’s scores.

​ Exportable

Exportable interface

​ ExternalAttachmentParams

ExternalAttachmentParams interfaceProperties

​

contentType

string

​

filename

string

​

state

BraintrustState

​

url

string

​ FunctionEvent

FunctionEvent interfaceProperties

​

description

string

​

function_data

Object | Object | Object | Object | Object | Object | Object | Object | Object

​

function_type

"tool" | "parameters" | "task" | "scorer" | "tag" | "llm" | "custom_view" | "facet" | "preprocessor" | "classifier"

​

if_exists

"replace" | "error" | "ignore"

​

metadata

Record

​

name

string

​

project_id

string

​

prompt_data

Object

​

slug

string

​ GetThreadOptions

Options for getThread().Properties

​

preprocessor

string

The preprocessor to use for extracting the thread. If not specified, uses the project default preprocessor, falling back to the global “thread” preprocessor.

​ InvokeFunctionArgs

Arguments for the invoke function.Properties

​

functionType

"tool" | "parameters" | "task" | "scorer" | "tag" | "llm" | "custom_view" | "facet" | "preprocessor" | "classifier"

The type of the global function to invoke. If unspecified, defaults to ‘scorer’ for backward compatibility.

​

function_id

string

The ID of the function to invoke.

​

globalFunction

string

The name of the global function to invoke.

​

input

Input

The input to the function. This will be logged as the input field in the span.

​

messages

Object | Object | Object | Object | Object | Object | Object[]

Additional OpenAI-style messages to add to the prompt (only works for llm functions).

​

metadata

Record

​

mode

null | "text" | "auto" | "parallel" | "json"

​

parent

string | Exportable

​

projectId

string

​

projectName

string

The name of the project containing the function to invoke.

​

promptSessionFunctionId

string

The ID of the function in the prompt session to invoke.

​

promptSessionId

string

The ID of the prompt session to invoke the function from.

​

schema

unknown

A Zod schema to validate the output of the function and return a typed value. This is only used if stream is false.

​

slug

string

The slug of the function to invoke.

​

state

BraintrustState

​

stream

Stream

​

strict

boolean

Whether to use strict mode for the function. If true, the function will throw an error if the variable names in the prompt do not match the input keys.

​

tags

string[]

Tags to add to the span. This will be logged as the tags field in the span.

​

version

string

The version of the function to invoke.

​ LoginOptions

Options for logging in to Braintrust.Properties

​

apiKey

string

The API key to use. If the parameter is not specified, will try to use the BRAINTRUST_API_KEY environment variable.

​

appUrl

string

​

disableSpanCache

boolean

​

fetch

Object

A custom fetch implementation to use.

​

noExitFlush

boolean

By default, the SDK installs an event handler that flushes pending writes on the beforeExit event. If true, this event handler will not be installed.

​

onFlushError

Object

Calls this function if there’s an error in the background flusher.

​

orgName

string

​ LogOptions

LogOptions interfaceProperties

​

asyncFlush

IsAsyncFlush

​

computeMetadataArgs

Record

​

linkArgs

LinkArgs

​ MetricSummary

Summary of a metric’s performance.Properties

​

diff

number

Difference in metric between the current and reference experiment.

​

improvements

number

Number of improvements in the metric.

​

metric

number

Average metric across all examples.

​

name

string

Name of the metric.

​

regressions

number

Number of regressions in the metric.

​

unit

string

Unit label for the metric.

​ ObjectMetadata

ObjectMetadata interfaceProperties

​

fullInfo

Record

​

id

string

​

name

string

​ ParentExperimentIds

ParentExperimentIds interfaceProperties

​

experiment_id

string

​ ParentProjectLogIds

ParentProjectLogIds interfaceProperties

​

log_id

"g"

​

project_id

string

​ ReporterBody

ReporterBody interface

​ ScoreSummary

Summary of a score’s performance.Properties

​

diff

number

Difference in score between the current and reference experiment.

​

improvements

number

Number of improvements in the score.

​

name

string

Name of the score.

​

regressions

number

Number of regressions in the score.

​

score

number

Average score across all examples.

​ Span

A Span encapsulates logged data and metrics for a unit of work. This interface is shared by all span implementations.We suggest using one of the various traced methods, instead of creating Spans directly. See Span.traced for full details.Properties

​

id

string

Row ID of the span.

​

kind

"span"

​

rootSpanId

string

Root span ID of the span.

​

spanId

string

Span ID of the span.

​

spanParents

string[]

Parent span IDs of the span.

​ SpanData

Span data returned by getSpans().Properties

​

input

unknown

​

metadata

Record

​

output

unknown

​

span_attributes

Object

​

span_id

string

​

span_parents

string[]

​ Trace

Interface for trace objects that can be used by scorers. Both the SDK’s LocalTrace class and the API wrapper’s WrapperTrace implement this.

Was this page helpful?

YesNo