Qwen3-32B fine-tuned for autonomous agentic tool use with inline reasoning. Trained via two-stage QLoRA on 44,672 multi-turn tool-call conversations with <think> reasoning traces.
Convert (qwople_convert.py): Unified to Hermes/OpenAI multi-turn format with <tool_call> XML + <tool_response> tags
V3 refinement (qwople_v3_data.py): Replaced synthetic reasoning injection with REAL <think> traces from dedicated reasoning datasets. Conversations >50 messages truncated to first 5 + last 20 turns.
Earlier v1 dataset (not used for final model)
24,063 examples from terminalbench (8K), APIGen (5K), code-act (5K), smolagents (1.7K), hermes-fc (1.9K). Used template-based reasoning injection (qwople_inject_reasoning.py) — replaced by v3's real traces.
Known Quirks
⚠️ Read these before deploying. Qwople has several format inconsistencies that affect inference.
1. Inconsistent tool-call token emission
The model sometimes emits <tool_call> as a special token (correctly parsed by vLLM's --tool-call-parser hermes) and sometimes as raw text tokens in the content field. This means:
vLLM with --tool-call-parser hermes: Works for ~60% of tool calls. The rest appear as raw <tool_call>...</tool_call> text in content.
Recommendation: Use a fallback regex parser on content to catch the raw-token emissions. The enhanced chat UI (qwople_backup.tar.gz) includes this fallback.
2. --reasoning-parser breaks --tool-call-parser
Do NOT use --reasoning-parser deepseek_r1 together with --tool-call-parser hermes in vLLM. The reasoning parser consumes <think> tokens and adjacent tokens, which prevents the hermes tool parser from seeing the <tool_call> block. Tool calling silently fails (returns empty tool_calls: []).
Fix: Use --tool-call-parser hermes alone (no reasoning parser). The <think> blocks appear inline in content and can be parsed client-side.
3. Malformed JSON in tool calls
~5% of tool call emissions have malformed JSON — typically extra trailing } characters or unbalanced braces. The fallback parser needs progressive brace-trimming to handle this.
4. System prompt dependency
Without a system prompt that explicitly describes available tools, the model often answers directly without calling tools. A system prompt like "You have access to tools. Use them when appropriate." is required for reliable tool use.
5. Over-eager reasoning
The model produces verbose <think> blocks (often 200-500 tokens) before even simple actions. This is a feature of the Fable reasoning style, not a bug — but it adds latency.
6. Conversation truncation artifacts
Training conversations were truncated to first 5 + last 20 messages for long trajectories. The model may lose context in the middle of very long multi-turn conversations.
Fable reasoning examples — 1,502 examples (3.4%)
Original Qwable/Fable distillation data, preserved in the mix to prevent catastrophic forgetting of reasoning style.
Derived from Ebumping/Qwen3-32B-Fable-Distill
Earlier pipeline sources (downloaded, used for v1 data, superseded by v3)
These datasets were part of the data pipeline exploration. They informed the final dataset design but were not in the final v3 training set: