Skip to content

Releases: braintrustdata/braintrust-sdk-python

Python SDK v0.21.0

14 May 17:19
7babd57

Choose a tag to compare

Changelog

Features

  • (livekit) Add agents integration (#407)

Package: https://pypi.org/project/braintrust/0.21.0/

Full Changelog: py-sdk-v0.20.0...py-sdk-v0.21.0

Python SDK v0.20.0

13 May 14:48
b1dc8f5

Choose a tag to compare

Changelog

Features

  • (autogen) Trace agents inside teams (#419)
  • More explicit default git settings (#408)
  • (litellm) Trace text completion calls (#406)

Bug Fixes

  • (strands) Close spans with no-op OTEL provider (#420)
  • (cohere) Support chat stream context managers (#418)
  • (openai) Filter omit sentinel from metadata (#426)
  • (logger) Do not retry on 413s (#427)
  • Update GitPython constraint for security fix (#423)
  • Support autoevals inline score typing (#403)
  • (cohere) Preserve v2 stream citations (#391)
  • (mistral) Add conversation tool spans (#392)
  • (langchain) Normalize anthropic cache token metrics (#411)
  • (parameters) Improve dict types (#399)

Package: https://pypi.org/project/braintrust/0.20.0/

Full Changelog: py-sdk-v0.19.0...py-sdk-v0.20.0

Python SDK v0.19.0

04 May 16:45
16440ce

Choose a tag to compare

Changelog

Features

  • (openai) Trace streaming audio transcriptions (#375)
  • (anthropic) Add prompt cache ttl metrics (#344)
  • (temporal) Add temporal integrations auto instrumentation (#367)

Bug Fixes

  • (mistral) Add tool spans for completions (#381)
  • (cohere) Add tool spans for chat tool calls (#380)
  • (devserver) Honor evaluator.project_id when request omits it (#372)

Package: https://pypi.org/project/braintrust/0.19.0/

Full Changelog: py-sdk-v0.18.0...py-sdk-v0.19.0

Python SDK v0.18.0

29 Apr 18:04
4b0ec7f

Choose a tag to compare

Changelog

Features

  • (openai_agents) Pull cached tokens through into metrics (#364)
  • (perf/pydantic_ai) Simplify trace shaping (#357)
  • (perf/adk) Reduce tracing serialization overhead (#358)
  • (llamaindex) Add native LlamaIndex SDK integration (#355)

Bug Fixes

  • Make OpenAI wrapping compatible with ddtrace (#370)
  • Handle PEP 649 NameError in inspect.signature on Python 3.14 (#361)
  • Use Mapping instead of dict for EvalResult.scores (#360)

Maintenance

  • Modernize typing for Python 3.10+ minimum (#356)

Package: https://pypi.org/project/braintrust/0.18.0/

Full Changelog: py-sdk-v0.17.0...py-sdk-v0.18.0

Python SDK v0.17.0

27 Apr 18:24
3308c56

Choose a tag to compare

Changelog

Features

  • (strands) Add agents integration (#346)
  • (crewai) Add new tracing integration (#341)
  • (autogen) Add automatic instrumentation (#345)
  • (cohere) Trace audio transcription calls (#333)
  • (litellm) Instrument rerank and arerank (#323)
  • (mistral) Instrument beta conversations api (#324)

Bug Fixes

  • (pydantic_ai) Strip unnecessary wrapper tokens (#321)
  • (claude_agent_sdk) Preserve tool span output across back-to-back tool_use messages (#322)

Other Changes

  • Rm eval status page (#347)

Package: https://pypi.org/project/braintrust/0.17.0/

Full Changelog: py-sdk-v0.16.0...py-sdk-v0.17.0

Python SDK v0.16.0

17 Apr 15:54
489ce42

Choose a tag to compare

Changelog

Features

  • (cohere) Add integrations api support (#316)
  • (openai_agents) Support v0.14.0 TaskSpanData and TurnSpanData (#307)
  • (framework) Add classifier support to Eval (#282)

Bug Fixes

  • (openai) Re-export NamedWrapper from braintrust.oai for back-compat (#319)
  • (types) Re-export public top-level symbols with PEP 484 aliasing (#315)
  • (framework) Make classifier labels optional (#311)
  • (pydantic) Retype wrapper spans as task to stop cost double-counting (#312)
  • (google_genai) Serialize Content objects with nested binary Parts as attachments (#276)
  • Use Mapping for dict params, Any for ValidatedParameters (#289)
  • Use Sequence instead of list for input parameters (#287)
  • Use Mapping for Metadata and ParametersSchema type aliases (#285)
  • Use Sequence instead of Iterable for report_failures parameter (#284)
  • Use Mapping instead of dict for EvalParameters type alias (#281)

Maintenance

  • (nox) Centralize dependency pins in pyproject.toml (#300)
  • Replace Optional and Dict with modern syntax in logger.py (#291)

Other Changes

  • Widen BraintrustStreamChunk and annotate BraintrustStream.stream (#306)
  • Remove @dataclasses.dataclass from TaskProgressEvent (#305)

Package: https://pypi.org/project/braintrust/0.16.0/

Full Changelog: py-sdk-v0.15.0...py-sdk-v0.16.0

Python SDK v0.15.0

14 Apr 16:47
d258198

Choose a tag to compare

Changelog

Features

  • Add per-input trial_count support to Eval() (#274)
  • (mistral) Trace audio api calls (#275)
  • (anthropic) Trace beta managed agents apis (#270)
  • (mistral) Trace OCR API calls (#268)
  • (openai|litellm) Attach speech outputs (#267)
  • (litellm) Trace transcription calls (#264)
  • (litellm) Trace image generation calls (#261)
  • (openai) Trace responses api tool spans (#253)
  • (anthropic) Trace server tool content blocks as tool spans (#255)
  • (openai) Preserve streaming refusal output (#258)

Bug Fixes

  • CachedSpanFetcher no longer caches empty results permanently (#79)
  • (openai) Trace chat streaming audio attachments (#271)
  • (openai) Log audio file attachments (#265)
  • (adk) Avoid duplicate sync runner invocation spans (#252)
  • (integrations) Unify multimodal attachment materialization (#247)

Package: https://pypi.org/project/braintrust/0.15.0/

Full Changelog: py-sdk-v0.14.0...py-sdk-v0.15.0

Python SDK v0.14.0

10 Apr 16:14
3b34248

Choose a tag to compare

Changelog

Features

  • (openai) Trace images api calls (#245)
  • (openai) Instrument Audio API (speech, transcriptions, translations) (#232)

Bug Fixes

  • (framework) Split Output TypeVar into Output and Expected (#243)
  • (framework) Preserve defaults for unmatched callback params (#241)
  • (cli) Reject whitespace in python bundle filenames (#237)
  • Resolve reportUnknownMemberType under pyright strict mode (#242)
  • (anthropic) Capture structured output metadata (#238)
  • (claude_agent_sdk) Log ResultMessage metrices (#225)
  • (anthropic) Capture time_to_first_token when using .text_stream (#234)

Maintenance

  • Generated SDK types (#248)
  • Generated SDK types (#246)

Other Changes

  • Include sandbox runtime in list request (#227)

Package: https://pypi.org/project/braintrust/0.14.0/

Full Changelog: py-sdk-v0.13.0...py-sdk-v0.14.0

Python SDK v0.13.0

08 Apr 17:29
3a562f0

Choose a tag to compare

Changelog

Features

  • (google_genai) Trace interactions api methods (#210)
  • (openai) Migrate openai wrapper and add claude agent sdk integration (#206)
  • (integrations) Add mistral sdk integration (#199)

Bug Fixes

  • (openai) Preserve logprobs for streaming chat spans (#215)
  • (pydantic_ai) Support moved tool manager module (#224)
  • (claude_agent_sdk) Use result message output (#218)
  • (anthropic) Convert multimodal base64 inputs to attachments (#212)
  • Allow eval filtering with EvalCase objects (#211)
  • (claude_agent_sdk) Trace top-level query calls (#216)
  • (claude_agent_sdk) Serialize thinking blocks with type (#213)
  • (devserver) Tighten cors origin validation (#203)
  • (dspy) Add adapter callback tracing (#190)
  • (anthropic) Move ephemeral cache creation fields to metadata (#205)
  • (anthropic) Capture server-side tool usage metrics (#192)

Maintenance

  • Add minimum supported versions for genai and dspy (#220)
  • Generated SDK types (#221)

Package: https://pypi.org/project/braintrust/0.13.0/

Full Changelog: py-sdk-v0.12.1...py-sdk-v0.13.0

Python SDK v0.12.1

02 Apr 17:29
0daac2f

Choose a tag to compare

Changelog

Bug Fixes

  • (anthropic) Capture nested usage metrics and metadata (#189)
  • Encode request body as UTF-8 bytes to prevent Latin-1 corruption (#194)
  • Fix python sandbox parameters (#191)

Package: https://pypi.org/project/braintrust/0.12.1/

Full Changelog: py-sdk-v0.12.0...py-sdk-v0.12.1