Skip to content

Commit a927ce3

Browse files
authored
fix(agents): support parallel tool_calls (#944) (#946)
Closes #944. ## Why this matters GAIA's default tool-calling model (Gemma-4-E4B-it-GGUF, set in #865) emits multiple `tool_calls` per turn on multi-intent inputs. The agent loop rejected those, retried with a misleading "malformed arguments" prompt, and bailed with zero tools fired. Result: the default model couldn't handle multi-intent utterances at all. After this PR, multi-intent utterances work — N parallel calls drain in one loop iteration, errors don't short-circuit, and assistant text emitted alongside tool_calls (some Gemma variants do this) is preserved instead of dropped. ## Test plan - [x] `pytest tests/unit/agents/test_parallel_tool_calls.py` — 5 new integration tests covering the issue's acceptance criteria - [x] `pytest tests/unit/test_tool_call_priority.py` — 4 new parser tests + 1 updated for the new shape - [x] `pytest tests/unit/` — full suite still green (2 pre-existing context-overflow flakes are unrelated, fail on main too) - [x] `python util/lint.py --all` — clean - [ ] Live repro from the issue (Gemma-4-E4B + 4-event utterance against running Lemonade) — happy to run on hardware if a sanity check is wanted before merge
1 parent 60ee037 commit a927ce3

4 files changed

Lines changed: 867 additions & 52 deletions

File tree

0 commit comments

Comments
 (0)