Skip to content

feat(anthropic): Emit gen_ai.chat spans for synchronous messages.stream()#5565

Open
alexander-alderman-webb wants to merge 18 commits intowebb/anthropic/only-raw-message-stream-eventsfrom
webb/anthropic/new-patch
Open

feat(anthropic): Emit gen_ai.chat spans for synchronous messages.stream()#5565
alexander-alderman-webb wants to merge 18 commits intowebb/anthropic/only-raw-message-stream-eventsfrom
webb/anthropic/new-patch

Conversation

@alexander-alderman-webb
Copy link
Contributor

@alexander-alderman-webb alexander-alderman-webb commented Feb 27, 2026

Description

Patch Messages.stream() and MessageStreamManager.__enter__() to create AI Client Spans.

Re-use existing code for setting attributes on AI Client Spans based on function arguments, and adapt tests that return a synchronous response stream with create(stream=True).

Issues

Reminders

@github-actions
Copy link
Contributor

github-actions bot commented Feb 27, 2026

Semver Impact of This PR

🟡 Minor (new features)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

Pydantic Ai

  • Support ImageUrl content type in span instrumentation by ericapisani in #5629
  • Add tool description to execute_tool spans by ericapisani in #5596

Other

  • (anthropic) Emit gen_ai.chat spans for synchronous messages.stream() by alexander-alderman-webb in #5565
  • (crons) Add owner field to MonitorConfig by julwhitney13 in #5610
  • (otlp) Add collector_url option to OTLPIntegration by sl0thentr0py in #5603

Bug Fixes 🐛

  • (celery) Propagate user-set headers by sentrivana in #5581
  • (utils) Avoid double serialization of strings in safe_serialize by ericapisani in #5587

Documentation 📚

  • (openai-agents) Remove inapplicable comment by alexander-alderman-webb in #5495
  • Add AGENTS.md by sentrivana in #5579
  • Add set_attribute example to changelog by sentrivana in #5578

Internal Changes 🔧

Anthropic

  • Factor out streamed result handling by alexander-alderman-webb in #5563
  • Skip accumulation logic for unexpected types in streamed response by alexander-alderman-webb in #5564

Openai Agents

  • Do not fail on new tool fields by alexander-alderman-webb in #5625
  • Stop expecting a specific function name by alexander-alderman-webb in #5623
  • Set streaming header when library uses with_streaming_response() by alexander-alderman-webb in #5583
  • Replace mocks with httpx for streamed responses by alexander-alderman-webb in #5580
  • Replace mocks with httpx in non-MCP tool tests by alexander-alderman-webb in #5602
  • Replace mocks with httpx in MCP tool tests by alexander-alderman-webb in #5605
  • Replace mocks with httpx in handoff tests by alexander-alderman-webb in #5604
  • Replace mocks with httpx in API error test by alexander-alderman-webb in #5601
  • Replace mocks with httpx in non-error single-response tests by alexander-alderman-webb in #5600
  • Remove test for unreachable state by alexander-alderman-webb in #5584
  • Expect namespace tool field for new openai versions by alexander-alderman-webb in #5599

Other

  • (httpx) Resolve type checking failures by alexander-alderman-webb in #5626
  • (pyramid) Support alpha suffixes in version parsing by alexander-alderman-webb in #5618
  • Add httpx to linting requirements by alexander-alderman-webb in #5644
  • Remove CodeQL action by sentrivana in #5616
  • Normalize dots in package names in populate_tox.py by alexander-alderman-webb in #5574
  • Do not run actions on potel-base by sentrivana in #5614

🤖 This preview updates automatically when you update the PR.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 27, 2026

Codecov Results 📊

13 passed | Total: 13 | Pass Rate: 100% | Execution Time: 12.87s

All tests are passing successfully.

❌ Patch coverage is 0.00%. Project has 14087 uncovered lines.

Files with missing lines (1)
File Patch % Lines
anthropic.py 7.55% ⚠️ 306 Missing

Generated by Codecov Action

@alexander-alderman-webb alexander-alderman-webb changed the title feat(anthropic): Emit gen_ai.chat spans for messages.stream() feat(anthropic): Emit gen_ai.chat spans for synchronous messages.stream() Feb 27, 2026
@alexander-alderman-webb alexander-alderman-webb marked this pull request as ready for review March 12, 2026 09:28
@alexander-alderman-webb alexander-alderman-webb requested a review from a team as a code owner March 12, 2026 09:28
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants