Braintrust 자동 인스트루먼트 — LLM 호출 캡처

Braintrust 자동 인스트루먼트

매 LLM 호출을 감싸서 일일이 트레이싱 코드를 넣는 건 번거로워요. Braintrust 자동 인스트루먼트는 지원하는 AI 라이브러리를 시작 시 패치해서, 클라이언트 하나하나를 감싸지 않아도 모든 LLM 호출을 캡처해요. 예제는 OpenAI를 쓰지만 Braintrust는 많은 프로바이더와 프레임워크를 지원해요.

출처: https://www.braintrust.dev/docs/instrument/trace-llm-calls

Python 예제

Python 자동 인스트루먼트는 auto_instrument()로 지원 라이브러리를 시작 시 패치해요.

pip install braintrust openai
export BRAINTRUST_API_KEY="your-api-key"
export OPENAI_API_KEY="your-api-key"
import os
import braintrust

# 시작 시 한 번 호출 — 모든 LLM 호출이 자동으로 트레이싱됨
braintrust.auto_instrument()
braintrust.init_logger(
    api_key=os.environ["BRAINTRUST_API_KEY"],
    project="My Project (Python)",
)

from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
response = client.responses.create(
    model="gpt-5-mini",
    input="What is the capital of France?",
)

braintrust.auto_instrument()는 지원하는 Python 통합을 기본으로 모두 켜요. 개별 통합을 끄려면 특정 키워드에 False를 넘겨요.

braintrust.auto_instrument(openrouter=False)

끌 수 있는 대표 파라미터(기본 True): openai, anthropic, litellm, ai_sdk, pydantic_ai, google_genai, instructor, openrouter, mistral, huggingface_hub, transformers, agno, agentscope, claude_agent_sdk, cursor_sdk, dspy, adk, langchain, llamaindex, openai_agents, cohere, autogen, crewai, strands, temporal, livekit_agents, pipecat.

로컬 개발에서는 Python SDK가 .env.braintrust 파일에서 BRAINTRUST_API_KEY를 읽을 수도 있어요. 파일을 .gitignore에 넣어 키가 커밋되지 않게 해요.

TypeScript 예제

TypeScript 자동 인스트루먼트는 시작 훅을 써서 지원 AI 라이브러리를 자동 패치해요.

npm install braintrust openai
import { initLogger } from "braintrust";
import OpenAI from "openai";

initLogger({
  apiKey: process.env.BRAINTRUST_API_KEY,
  projectName: "My Project (TypeScript)",
});

const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await client.responses.create({
  model: "gpt-5-mini",
  input: "What is the capital of France?",
});

실행할 때는 --import 플래그로 자동 인스트루먼트를 켜요.

node --import braintrust/hook.mjs app.js

개별 통합을 끄려면 BRAINTRUST_DISABLE_INSTRUMENTATION(콤마 구분)을 사용하거나, 코드에서 configureInstrumentation()을 호출해요. Vite·Next.js·Webpack 같은 번들러는 전용 플러그인(braintrust/vite, braintrust/next 등)을 써요.

더 알아보기