[CRITICAL/base] Register qwen3_coder tool parser as hermes alias

Without this: --tool-call-parser qwen3_coder causes api_server.py to crash
with KeyError at line 537: 'invalid tool call parser: qwen3_coder'
This is AFTER the --reasoning-parser crash (fixed in b446763) - even if
argparse passes, this KeyError kills the server.

Qwen3 models use Hermes-compatible tool calling format:
  <tool_call>{"name": "func", "arguments": {...}}</tool_call>
So registering qwen3_coder -> Hermes2ProToolParser is semantically correct.

This was the SECOND startup blocker preventing the benchmark task from
completing. The first was --reasoning-parser (fixed). Together these
explain why task_id=3905102 has been stuck at status=running for 84+ minutes.

Startup sequence that was failing:
  1. argparse --reasoning-parser qwen3 -> CRASH (fixed b446763)
  2. ToolParserManager.get_tool_parser('qwen3_coder') -> KeyError (fixed NOW)
  3. Qwen3_5MoeForCausalLM not in registry -> crash (fixed 08dc010)

All three must be fixed for the server to start.
This commit is contained in:
muh-bot
2026-08-06 06:10:43 +00:00
parent b73c8ea60b
commit 9a7fd70150

View File

@@ -4,6 +4,14 @@ from .internlm2_tool_parser import Internlm2ToolParser
from .llama_tool_parser import Llama3JsonToolParser
from .mistral_tool_parser import MistralToolParser
# Register qwen3_coder as alias for hermes parser.
# Qwen3 models use Hermes-compatible tool calling format:
# <tool_call>{"name": "func", "arguments": {...}}</tool_call>
# computility-run.yaml specifies --tool-call-parser qwen3_coder
# which must be registered or server startup crashes with KeyError.
ToolParserManager.register_module(
"qwen3_coder", module=Hermes2ProToolParser)
__all__ = [
"ToolParser", "ToolParserManager", "Hermes2ProToolParser",
"MistralToolParser", "Internlm2ToolParser", "Llama3JsonToolParser"