Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[bot] AWS Bedrock Runtime: `start_async_invoke()` not instrumented

Fechada
#524 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
74/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
aws, python
Domínio
api, observability

Direção de pesquisa

Comece por py/src/braintrust/integrations/bedrock_runtime/patchers.py e tracing.py e, em seguida, compare os wrappers de métodos existentes com a implementação de lote do Anthropic em py/src/braintrust/integrations/anthropic/tracing.py. O trabalho estará concluído quando start_async_invoke estiver registrado por meio do wrapper existente do cliente Bedrock com um span TASK contendo as informações especificadas de entrada, saída, metadados e latência, preservando o suporte para ambos os pins da matriz do boto3.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bot-automation integration: bedrock_runtime

Summary

The AWS Bedrock Runtime start_async_invoke() API is not instrumented. Calls to client.start_async_invoke(...) produce zero Braintrust tracing. This method submits an asynchronous model invocation job — output is written to an S3 bucket — and is the Bedrock analog to batch inference APIs that are already instrumented for Anthropic (messages.batches.create()) and tracked as gaps for OpenAI (#295), Mistral (#272), and Google GenAI (#332).

The Bedrock Runtime integration was completed in #279 (closed 2026-06-16) and instruments the four synchronous execution surfaces. start_async_invoke was not included.

What is missing

Bedrock Runtime method Description Instrumented?
client.converse(...) Synchronous unified chat Yes
client.converse_stream(...) Streaming unified chat Yes
client.invoke_model(...) Synchronous raw model invocation Yes
client.invoke_model_with_response_stream(...) Streaming raw invocation Yes
client.start_async_invoke(...) Asynchronous model invocation job No
API details
  • Endpoint: POST /async-invoke
  • Purpose: Submit a long-running async model invocation. The caller supplies modelId, modelInput (provider-specific JSON), and outputDataConfig (S3 output location). The API returns an invocationArn immediately; output is written to S3 when complete.
  • Poll for results: Status checked via client.get_async_invoke(invocationArn=...) or client.list_async_invokes().
  • Use case: Large-scale batch generation workloads where latency is not time-sensitive (similar to Anthropic's Message Batches API or OpenAI's Batch API).
Minimum instrumentation for start_async_invoke

At minimum, start_async_invoke should create a span capturing:

Span field Content
input modelInput (parsed JSON body), modelId
output invocationArn, submission HTTP status
metadata provider: "bedrock", model (from modelId), S3 output location, clientRequestToken if set
metrics Submission latency

Span type should be SpanTypeAttribute.TASK, matching the Anthropic batch pattern.

Availability

start_async_invoke is in both boto3 matrix pins:

  • boto3==1.43.29 (latest)
  • boto3==1.34.116 (floor)

It is in the bedrock-runtime service (not bedrock-agent-runtime), so it is reachable via the same wrap_bedrock_client(client) helper that wraps the existing four methods.

Braintrust docs status

not_found — The AWS Bedrock integration page documents tracing for converse and invoke_model. No mention of async invocation.

Upstream sources

Local files inspected

  • py/src/braintrust/integrations/bedrock_runtime/patchers.py — defines ConversePatcher, ConverseStreamPatcher, InvokeModelPatcher, InvokeModelWithResponseStreamPatcher, composed into BedrockRuntimeClientMethodsPatcher; zero references to start_async_invoke
  • py/src/braintrust/integrations/bedrock_runtime/tracing.py — _converse_wrapper, _converse_stream_wrapper, _invoke_model_wrapper, _invoke_model_stream_wrapper only; no async invoke wrappers
  • py/src/braintrust/integrations/bedrock_runtime/integration.py — registers BedrockRuntimeClientMethodsPatcher; no async invoke registration
  • py/src/braintrust/integrations/anthropic/tracing.py — Anthropic messages.batches.create() IS instrumented as a task-type span — reference implementation for this pattern
  • py/pyproject.toml — [tool.braintrust.matrix.boto3] pins: latest = "boto3==1.43.29", "1.34.116" = "boto3==1.34.116"

Relationship to existing issues

  • #279 (closed) completed the Bedrock Runtime integration for converse, converse_stream, invoke_model, invoke_model_with_response_stream; start_async_invoke was not in scope
  • #295 tracks the analogous OpenAI Batch API gap (client.batches.create())
  • #272 tracks the analogous Mistral Batch Jobs API gap (client.batch.jobs.create())
  • #332 tracks the analogous Google GenAI Batch API gap (client.batches.create())
Linguagem predominante
Python
Estrelas
22
Forks
27
Merge médio
14h 49min
PRs com merge (30d)
126

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de braintrustdata/braintrust-sdk-python

Todas as issues de braintrustdata/braintrust-sdk-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.