Evaluation
All numbers below come from one harness, run on Qwen3.5-4B and on this model with identical settings: thinking on,
temperature 0.6, top_p 0.95, top_k 20, no presence penalty, and at most 32,768 output tokens. An answer that runs
past the budget counts as wrong. We report these settings instead of Qwen's card settings (temperature 1.0 with a
presence penalty of 1.5), so the numbers here are not comparable with Qwen's published figures.
Table with columns: Benchmark, Qwen3.5-4B, Underdog Poodle 4B| Benchmark | Qwen3.5-4B | Underdog Poodle 4B |
|---|
| BFCL-V4, official harness | 56.8 | 65.3 |
| BFCL-120 (frozen 120-case subset of BFCL, 3 seeds) | 77.5 | 80.6 |
| IFEval (prompt-level, loose) | 60.6 | 85.4 |
| IFBench (prompt-level, loose) | 33.3 | 38.7 |
| Parallel calls (100 cases) | 69 | 77 |
| WebWalkerQA (150 questions, LLM judge) | 30.4 | 31.1 |
| τ³-bench average (4 domains) | 57.9 | 60.7 |
BFCL-V4 by category:
Table with columns: Category, Qwen3.5-4B, Underdog Poodle 4B| Category | Qwen3.5-4B | Underdog Poodle 4B |
|---|
| Non-live AST | 85.6 | 86.1 |
| Live | 81.0 | 79.1 |
| Multi-turn | 77.8 | 82.3 |
| Web search | 14.0 | 30.5 |
| Memory | 29.3 | 48.6 |
| Relevance detection | 87.5 | 81.3 |
| Irrelevance detection | 81.4 | 82.6 |
τ³-bench runs 2 trials per task with a 131,072-token context. The user simulator and the assertion judge are GPT-5.4
mini, the τ³ package defaults. An episode that fails to produce an official reward counts as a failure for both models.
BFCL-V4 uses the official prompts, checkers and score sheet. The one change is the web-search backend: searches go
through OpenRouter's web plugin instead of SerpAPI, and every result is cached so both models saw the same pages.
The model also finishes far more of its answers inside the token budget. On IFEval, 98% of its answers finish
against 63% for Qwen3.5-4B; on IFBench, 79% against 43%.
Use
Tested with vLLM 0.32.0 (Python 3.12, NVIDIA H100). The model uses Qwen3.5's chat template and tool-call format:
pip install vllm==0.32.0vllm serve ConwayResearch/Underdog-Poodle-4B \ --tool-call-parser qwen3_coder --reasoning-parser qwen3 --enable-auto-tool-choice
Keep thinking on (the default) and use temperature 0.6, top_p 0.95, top_k 20:
curl -s http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{ "model": "ConwayResearch/Underdog-Poodle-4B", "messages": [{"role": "user", "content": "Where is my order 48213?"}], "tools": [{"type": "function", "function": { "name": "get_order_status", "description": "Look up the shipping status of an order.", "parameters": {"type": "object", "properties": {"order_id": {"type": "string"}}, "required": ["order_id"]} }}], "temperature": 0.6, "top_p": 0.95, "top_k": 20}'
License
Apache-2.0, inherited from Qwen3.5-4B. Post training by ConwayResearch; see NOTICE.