Anthropic plugin ignores parallel_tool_calls=False unless tool_choice is also set
Maintainers usually reply within 1 day
@sarankumar1325 is already working on this.
Since Oct 22, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- python
- Domain
- backend-api-design
Research direction
The issue identifies livekit-plugins-anthropic/livekit/plugins/anthropic/llm.py and explains that disable_parallel_tool_use is added only when tool_choice is given. Start by reading that branch and checking the two linked open pull requests (#8082 and #8086) for existing work. Done means requests with tools and parallel_tool_calls=False send the specified automatic tool choice, while explicit tool_choice behavior remains unchanged.
Written by the indexing model from the issue text.
Description
Bug Description
What happens: anthropic.LLM(parallel_tool_calls=False), or passing parallel_tool_calls=False to chat(), has no effect unless a tool_choice is also given, so Claude can still return several tool calls in one turn.
Why: in livekit-plugins-anthropic/livekit/plugins/anthropic/llm.py, disable_parallel_tool_use is only added inside the if is_given(tool_choice) branch. Anthropic's API carries that flag on the tool_choice object, so when only parallel_tool_calls is set, the setting is dropped.
I opened livekit/agents#8067 with a fix but can't sign the CLA, so I'm leaving this report for a maintainer to fix directly.
Expected Behavior
When parallel_tool_calls is set and tools are present but no tool_choice is given, send tool_choice={"type": "auto", "disable_parallel_tool_use": not parallel_tool_calls}. Requests with an explicit tool_choice (including "none") shouldn't change.
Reproduction Steps
1.
2.
3.
...
- Sample code snippet, or a GitHub Gist link -
Operating System
na
Models Used
na
Package Versions
na
Session/Room/Call IDs
na
Proposed Solution
na
Additional Context
na
Screenshots and Recordings
na
- Dominant language
- Python
- Stars
- 14.6k
- Forks
- 3.9k
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 204
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from livekit/agents
-
Assistant markup is stripped from chat history when expressive mode is offPossibly taken @ShivamSharma43 claimed this 16 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hostsMay be free again @AbarnaaSree claimed this 55 days ago, and no pull request is open. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
livekit/agents#7022 · 1 comment ·
Maintainers usually reply within 1 day
-
Python AgentServer health check (GET /) returns 200 before the worker has registered with LiveKitPossibly taken @ninglinLiu claimed this today. Open
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
OpenAI Realtime engine: expose the WebSocket close code and reason to subclassesPossibly taken @ninglinLiu claimed this 1 day ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
AstrBotDevs/AstrBot#10720 ·
Maintainers usually reply within 1 day
-
fix(xiaomi): curated picker list still offers six ids that return 400 (plan-limited vs retired)Opencause/upstream comp/cli P2 provider/other tool/file type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NousResearch/hermes-agent#143900 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 85/100
WLAN-Pi/wlanpi-profiler#341 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day