[bot] AWS Bedrock Runtime: `start_async_invoke()` not instrumented
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- aws, python
- Área
- api, observability
Línea de trabajo
Comienza con py/src/braintrust/integrations/bedrock_runtime/patchers.py y tracing.py, y después compara sus wrappers de métodos existentes con la implementación de lotes de Anthropic en py/src/braintrust/integrations/anthropic/tracing.py. La tarea está terminada cuando start_async_invoke queda registrado mediante el wrapper existente del cliente de Bedrock con un span TASK que contenga la información especificada de entrada, salida, metadatos y latencia, preservando al mismo tiempo la compatibilidad con ambos pins de la matriz de boto3.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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())
- Lenguaje dominante
- Python
- Estrellas
- 20
- Forks
- 18
- Merge medio
- 21 h 8 min
- PR fusionados (30 d)
- 81
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de braintrustdata/braintrust-sdk-python
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
braintrustdata/braintrust-sdk-python#797 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
braintrustdata/braintrust-sdk-python#774 ·
Los mantenedores suelen responder en 1 día
-
Migrate legacy HTTPConnection callers to the policy-aware Transport incrementallyPosiblemente ocupada @AbhiPrasad la tomó hace 1 día. Abiertopython
braintrustdata/braintrust-sdk-python#839 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
new-integration
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
braintrustdata/braintrust-sdk-python#808 ·
Los mantenedores suelen responder en 1 día
-
new-integration
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
braintrustdata/braintrust-sdk-python#807 ·
Los mantenedores suelen responder en 1 día
Todos los issues de braintrustdata/braintrust-sdk-python
Issues similares
-
comp/tools duplicate P2 sweeper:risk-compatibility tool/mcp type/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
NousResearch/hermes-agent#132042 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deepset-ai/haystack#13092 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EverMind-AI/Raven#845 ·
Los mantenedores suelen responder en 1 día
-
[Feature] 移除「切换到旧版知识库」入口Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
AstrBotDevs/AstrBot#10340 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
BasedHardware/omi#20401 · 1 comentario ·
Los mantenedores suelen responder en 1 día