Commit a927ce3
authored
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
- src/gaia
- agents/base
- llm/providers
- tests/unit
- agents
0 commit comments