• Stefy Lanza (nextime / spora )'s avatar
    read the chat template to tell qwen3_xml tool calls from hermes (v0.4.61) · a9e7ed0e
    Stefy Lanza (nextime / spora ) authored
    A pod serving Qwen3.8-27B logged, on every single tool-using request,
    
      hermes_tool_parser ... json.decoder.JSONDecodeError: Expecting value
    
    on text that begins
    
      <tool_call>
      <function=agenda_udienze>
      <parameter=dal>2026-10-21</parameter>
    
    vLLM reads that with `qwen3_xml`; `hermes` expects JSON inside <tool_call> and
    cannot. Buffered, coderai's own parser rescued the call out of the text, which
    is why this stayed invisible. STREAMED, vLLM had already consumed those tokens
    into tool-call deltas it then failed to emit, so the call was simply gone and
    the stream ended at </think>.
    
    A name cannot separate the two syntaxes -- Qwen2.5 and the Hermes-style
    finetunes genuinely are hermes, and qwen3_xml does not read JSON at all -- so
    the mapping cannot just be changed. The model's TEMPLATE decides instead: it is
    the model's own statement of what it emits, and this one says
    
      "If you choose to call a function ONLY reply in the following format:
       <tool_call>\n<function=example_function_name>\n<parameter=...>"
    
    with no JSON form anywhere in its 8,952 bytes.
    
    Read, not guessed, and never fatal: a repo id is fetched rather than looked up
    in the cache (on a rented pod nothing is cached the first time), an unreadable
    template leaves the name table's answer alone, and every failure path returns
    "" -- a pod that will not launch is worse than one that reads tool calls with
    the wrong parser. An explicit tool_call_parser still wins, "off" included.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01S8LAP3ueNzQJtwzhgVbq66
    a9e7ed0e
Name
Last commit
Last update
..
admin Loading commit data...
api Loading commit data...
backends Loading commit data...
broker Loading commit data...
cluster Loading commit data...
compose Loading commit data...
frontproxy Loading commit data...
models Loading commit data...
ocr Loading commit data...
openai Loading commit data...
pydantic Loading commit data...
queue Loading commit data...
tasks Loading commit data...
util Loading commit data...
__init__.py Loading commit data...
cli.py Loading commit data...
config.py Loading commit data...
main.py Loading commit data...
ocr_fleet_workers.py Loading commit data...
platform_paths.py Loading commit data...
system_app.py Loading commit data...