Views
No views yet
xyntetik-runner)xyntetik-runner — tool calls that still parse when the budget runs outWhen a tool call runs past its token budget, Runner closes it to the smallest schema-legal document, so the arguments still parse.
finish_reason: "length" with an empty or malformed tool_calls the caller has to repair or retry. Runner does forced-truncation recovery: once a JSON document starts, it emits a legal ending when the budget expires. On local models — tight context, slow generation — that is the difference between an agent loop that finishes and one that retries from scratch.tool_choice:"required", temperature 0, budgets 1→64):| engine | budget too small (1–16 tokens) | enough budget (64, control) |
|---|---|---|
| Runner | executable tool_calls, arguments parse | completes |
| vLLM 0.27.1 | no call; protocol framing leaks into content | completes |
| llama.cpp b10488 | no call; leak, then tool_calls with unparseable args | completes |
| Ollama 0.32.14 | no call; empty content, then HTTP 500 | completes |
| TensorRT-LLM 1.2.1 † | no call; <tool_call> leak, then empty content | completes |
| SGLang 0.5.17 † | no call; <tool_call> leak, then empty content | completes |
1# build the single binary (no deps), then serve this GGUF:
2runner -m NVIDIA-Nemotron-Nano-9B-v2-Q8_0.gguf --serve
3# point any OpenAI-compatible client at http://localhost:8080/v1xyntetik-runner (nemotron_h hybrid)nemotron_h, a state-space (SSM) + attention hybrid. This GGUF loads and decodes on xyntetik-runner (CPU / CUDA) and on stock llama.cpp (verified against b10353).runner -m NVIDIA-Nemotron-Nano-9B-v2-Q8_0.gguf --servexyntetik-runner --quantize --quant q8_0 from the bf16 GGUF base. After a quantizer fix (efb041a), runner's Q8_0 tensor data is byte-for-byte identical to what llama.cpp's own Q8_0 quantizer produces from the same input — all 122 quantized tensors and all 219 F32 tensors match exactly. Runner emits canonical ggml Q8_0: a runner-produced Q8_0 and a llama.cpp-produced Q8_0 of the same input are the same weights (only container metadata KV ordering differs).scripts/kld-compare.py):| Q8_0 file | mean KLD vs bf16 | top-1 agreement | top-8 overlap |
|---|---|---|---|
| this file (canonical runner Q8_0) | 2.46e-4 | 100.0% | 97.7% |
| llama.cpp Q8_0 (bartowski) | 2.46e-4 | 100.0% | 97.7% |
| pre-fix runner Q8_0 (non-canonical) | 2.41e-4 | 100.0% | 97.8% |
scripts/reference_compare.py (both engines served, exact generated UTF-8 from /v1/completions at temperature 0; 5 prompts × 32 tokens, CPU): 5/5 byte-identical vs llama.cpp ea12b27 — factual, code, counting, story, and JSON prompts all match exactly. Raw JSON: ssm-greedy-reference-2026-08-20/.NVIDIA-Nemotron-Nano-9B-v2-Q8_0.gguf.envelope.json) is included. Verdict: experimental — a dated measurement, not a standing quality claim (no per-model conformance gate report).nemotron_h) model by NVIDIA. All model weights, capabilities, and credit belong to NVIDIA; this repository only redistributes a quantized GGUF conversion of NVIDIA's weights.xyntetik-runner --quantize --quant q8_0 (canonical ggml Q8_0). GGUF sha256 d3224286484df1ae79c2b74d2a0913e1bbb5a364b0dd7c1061c95fa97ee608d7, ~8.81 GiB (9,458,093,632 bytes).