[bot] AWS Bedrock Runtime: `start_async_invoke()` not instrumented
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
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), andoutputDataConfig(S3 output location). The API returns aninvocationArnimmediately; output is written to S3 when complete. - Poll for results: Status checked via
client.get_async_invoke(invocationArn=...)orclient.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
- AWS Bedrock Runtime API reference:
StartAsyncInvoke— https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_StartAsyncInvoke.html - boto3 Bedrock Runtime client docs:
start_async_invokemethod in thebedrock-runtimeservice - The method is in the GA (non-preview) service, available in both matrix pins
Local files inspected
py/src/braintrust/integrations/bedrock_runtime/patchers.py— definesConversePatcher,ConverseStreamPatcher,InvokeModelPatcher,InvokeModelWithResponseStreamPatcher, composed intoBedrockRuntimeClientMethodsPatcher; zero references tostart_async_invokepy/src/braintrust/integrations/bedrock_runtime/tracing.py—_converse_wrapper,_converse_stream_wrapper,_invoke_model_wrapper,_invoke_model_stream_wrapperonly; no async invoke wrapperspy/src/braintrust/integrations/bedrock_runtime/integration.py— registersBedrockRuntimeClientMethodsPatcher; no async invoke registrationpy/src/braintrust/integrations/anthropic/tracing.py— Anthropicmessages.batches.create()IS instrumented as atask-type span — reference implementation for this patternpy/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_invokewas 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
- 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-python
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
braintrustdata/braintrust-sdk-python#962 ·
Mantenedores costumam responder em até 1 dia
-
Temporal: add `workflow.Info.original_execution_run_id` to workflow span metadataTalvez já em andamento @Ehsan-hash assumiu há 2 dias. Abertafeature python
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
braintrustdata/braintrust-sdk-python#868 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
braintrustdata/braintrust-sdk-python#957 ·
Mantenedores costumam responder em até 1 dia
-
python
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
braintrustdata/braintrust-sdk-python#956 ·
Mantenedores costumam responder em até 1 dia
-
python
braintrustdata/braintrust-sdk-python#839 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de braintrustdata/braintrust-sdk-python
Issues semelhantes
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 68/100
FavioVazquez/showtime#101 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
rossant/awesome-math#199 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
nautechsystems/nautilus_trader#5365 ·
Mantenedores costumam responder em até 1 dia
-
Examples say cnxAbertadocumentation embedded
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia