Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

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

已關閉
#524 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
3/5
預估耗時
1-2 天
新手友好度
74/100
Issue 類型
功能
描述清晰度
描述清楚
活躍度
冷清
技術堆疊
aws, python
領域
api, observability

研究方向

從 py/src/braintrust/integrations/bedrock_runtime/patchers.py 和 tracing.py 開始,然後將其中現有的方法包裝器與 py/src/braintrust/integrations/anthropic/tracing.py 中的 Anthropic 批次實作進行比較。完成的標準是:透過現有的 Bedrock 用戶端包裝器註冊 start_async_invoke,並使用包含指定輸入、輸出、中繼資料和延遲資訊的 TASK span,同時保留對兩個 boto3 矩陣 pin 的支援。

由索引模型根據 Issue 內容生成。

描述

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())
主要語言
Python
星號
22
分支
27
平均合併
11 小時 46 分鐘
30 天內合併 PR
137

環境準備

  • 提供 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

braintrustdata/braintrust-sdk-python 的其他 Issue

查看 braintrustdata/braintrust-sdk-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。