[bot] Anthropic Beta Messages `compaction` parameter (on-demand compaction) not captured in span metadata
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- ruby
- Domínio
- observability
Direção de pesquisa
Leia lib/braintrust/contrib/anthropic/instrumentation/beta_messages.rb, com foco em METADATA_FIELDS, BETA_METADATA_FIELDS e capture_beta_fields; lib/braintrust/contrib/anthropic/patcher.rb identifica o ponto de integração. Adicione a captura dos metadados da requisição para compaction na instrumentação beta e, em seguida, confira os testes existentes da instrumentação beta de Messages para confirmar que o campo aparece nas requisições de compaction. O issue não indica nenhum arquivo de teste.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
<!-- provider-gap-audit: anthropic-compaction-param-not-captured -->
Summary
Anthropic's compact-2026-09-04 beta (released September 2026) lets callers trigger on-demand compaction of a conversation via a top-level compaction request parameter on client.beta.messages.create, returning a signed compaction block (stop_reason: "compaction", a summary in content, and a signature) in place of a normal reply. This is a distinct, documented execution mode of the beta Messages API. The compaction parameter is not captured anywhere in this repo's Anthropic beta instrumentation.
What is missing
BetaMessages::InstanceMethods::METADATA_FIELDSandBETA_METADATA_FIELDSdo not includecompaction, so a request that sets it is traced identically to a normal message request — the metadata gives no indication the call was a compaction request.capture_beta_fieldsexplicitly special-casesbetasandoutput_formatbut has no equivalent handling forcompaction.- The response's
stop_reason: "compaction"is still captured generically viafinalize_metadata's existingstop_reasonhandling, but without the request-sidecompactionfield, there's no way to see why a compaction response was produced versus e.g. hitting a stop sequence.
Braintrust docs status
supported (in another Braintrust SDK, not Ruby) — https://docs.braintrust.dev/integrations/ai-providers/anthropic documents, for the Python SDK, that Messages spans capture request parameters including compaction, context_management, and diagnostics, and separately that OTel export sums anthropic.compaction spans for token accounting. The Ruby-specific sections of the same page describe no equivalent compaction metadata capture — this is a concrete Ruby-specific parity gap against Braintrust's own Python instrumentation of the identical upstream beta.
Upstream sources
- Anthropic Claude Platform release notes: on-demand compaction, beta header
compact-2026-09-04(September 2026) — https://platform.claude.com/docs/en/release-notes/overview - Anthropic Messages API reference (beta):
compactionrequest parameter — https://platform.claude.com/docs/en/api/beta/messages/create - Official
anthropicRuby SDK release 1.71.0: "feat(api): add compaction parameter and signed compaction blocks (beta)" — https://github.com/anthropics/anthropic-sdk-ruby/pull/235 anthropic-sdk-rubyhelpers.mddocuments thecompact-2026-09-04beta header and the resulting message'sstop_reason: :compaction/message.content.first.contentshape — https://github.com/anthropics/anthropic-sdk-ruby/blob/main/helpers.md
Local repo files inspected
lib/braintrust/contrib/anthropic/instrumentation/beta_messages.rb—METADATA_FIELDS(lines 29–32),BETA_METADATA_FIELDS(lines 35–37), andcapture_beta_fields(lines 146–166) have nocompactionhandlinglib/braintrust/contrib/anthropic/instrumentation/messages.rb— stable (non-beta)METADATA_FIELDS(lines 25–28), shown for contrast;compactionis beta-only upstream so this file is unaffectedlib/braintrust/contrib/anthropic/patcher.rb— confirmsBetaMessagesPatcheris the integration point that would need the added field
- Linguagem predominante
- Ruby
- Estrelas
- 9
- Forks
- 11
- Merge médio
- 1d 11h
- PRs com merge (30d)
- 3
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de braintrustdata/braintrust-sdk-ruby
-
[bot] OpenAI Responses API `compact()` (server-side conversation compaction) not instrumentedAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
[BOT ISSUE] OpenAI Chat Completions missing reasoning model and web search metadata parametersAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 64/100
Todas as issues de braintrustdata/braintrust-sdk-ruby
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
Websockify heartbeat for vnc_containerTalvez já em andamento @robinkar assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
needs verification
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 7 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
akitaonrails/ai-book-2026#13 ·
-
Mend: dependency security vulnerability
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
Mantenedores costumam responder em até 1 dia