- How your application behaves with real user inputs
- Where failures and edge cases occur
- Performance bottlenecks and token usage
- Data for building evaluation datasets
Anatomy of a trace
A trace represents a single request or interaction in your application. Each trace contains one or more spans.
- LLM API calls
- Vector database searches
- Tool or function invocations
- Agent reasoning steps
- Scoring functions
- Input: The data sent to this step
- Output: The result produced
- Metadata: Model parameters, tags, custom data
- Metrics: Latency, token counts, costs
- Scores: Quality metrics (added later)
How to instrument
Braintrust provides three approaches to instrumentation, from simple to advanced:Wrap AI providers
Automatically log all LLM calls
Integrate frameworks
Use existing framework integrations
Custom tracing
Manually instrument your code
What gets captured
Every instrumented request automatically captures:- Request inputs and outputs
- Model parameters (model name, temperature, etc.)
- Timing information (start time, duration)
- Token usage and costs
- Nested function calls and tool invocations
- Errors and exceptions
- Custom metadata you add
Provider and framework support
Braintrust integrates with all major AI providers and frameworks:- AI Providers: OpenAI, Anthropic, Gemini, AWS Bedrock, Azure, Mistral, Together, Groq, and many more
- Frameworks: LangChain, LangGraph, OpenTelemetry, Vercel AI SDK, LlamaIndex, DSPy, Pydantic AI, and many more
Next steps
Get started instrumenting your application:- Wrap AI provider clients for automatic logging
- Integrate with frameworks like LangChain or OpenTelemetry
- Add custom tracing for application logic
- Capture user feedback like thumbs up/down