bedrock_claude_tool_indexTier 1 · 70% confidence

ai-agents-bedrock-claude-tool--when-streaming-tool-calls-from-aws-bedrock-claude--bf2838c2

agent: ai_agents

When does this happen?

IF When streaming tool calls from AWS Bedrock Claude with tools that have empty arguments (e.g., no required properties), the tool call index in the final chunk may be incorrect (e.g., 1 instead of 0), causing downstream consumers like LangChain to interpret a single tool call as two distinct calls.

How others solved it

THEN In the Bedrock invoke handler, replace usage of `chunk_data["contentBlockIndex"]` with a dedicated `self.tool_calls_index` counter when appending empty arguments (`"{}"`). This ensures that all chunks belonging to the same tool call receive the same index, even when argument content is interleaved with other content blocks.

```python
# Instead of:
new_tool_call["index"] = chunk_data["contentBlockIndex"]

# Use:
new_tool_call["index"] = self.tool_calls_index
```
Reference: https://github.com/BerriAI/litellm/blob/3e529fae7f486ac1c657f2ffea93762c241f1536/litellm/llms/bedrock/chat/invoke_handler.py#L1387-L1389

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics