Instructions to use agentionai/Signal-3.8-27B-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use agentionai/Signal-3.8-27B-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Use Docker
docker model run hf.co/agentionai/Signal-3.8-27B-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use agentionai/Signal-3.8-27B-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "agentionai/Signal-3.8-27B-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "agentionai/Signal-3.8-27B-GGUF", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/agentionai/Signal-3.8-27B-GGUF:Q4_K_M
- Ollama
How to use agentionai/Signal-3.8-27B-GGUF with Ollama:
ollama run hf.co/agentionai/Signal-3.8-27B-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use agentionai/Signal-3.8-27B-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "agentionai/Signal-3.8-27B-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use agentionai/Signal-3.8-27B-GGUF with Docker Model Runner:
docker model run hf.co/agentionai/Signal-3.8-27B-GGUF:Q4_K_M
- Lemonade
How to use agentionai/Signal-3.8-27B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Signal-3.8-27B-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use agentionai/Signal-3.8-27B-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use agentionai/Signal-3.8-27B-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf agentionai/Signal-3.8-27B-GGUF:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "agentionai/Signal-3.8-27B-GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Signal 3.8 27B
This is Qwen3.8-27B that gets to the answer faster.
Recommended settings Temperature 0.6, top-p 0.95, top-k 20, min-p 0.05, presence_penalty 1.0, KV cache q8_0 or f16. Keep min-p and presence_penalty on: without them, long generations can run into repetition on some draws (a 4-bit value cache makes that deterministic). If you enable the MTP draft head on recent mainline llama.cpp, also pass
--no-spec-draft-backend-sampling— the default backend draft sampling does not apply your sampler to accepted draft tokens, which can let repetition run away regardless of the settings above.
The tiers in this repository were rebuilt on 2026-09-13. The first release's tiers could, rarely, repeat an answer line when sampling without the draft head; the rebuilt tiers showed no loop or cap in 55 traces under the same conditions. If you downloaded before that date, re-download.
AgentionAI Signal is a minimally invasive fine-tune of Qwen3.8-27B designed for lower generation latency and better token efficiency. On our held-out general-prompt evaluation, Signal produces 25% fewer answer tokens and uses 41% fewer thinking tokens, while matching or improving the measured answer quality of the base model.
The result is faster end-to-end generation. On 40 chat prompts with the draft head on, same hardware and sampling, Signal finished the batch in 19% less total wall time and 28% less median wall time than the untouched Qwen3.8-27B, from fewer answer tokens and higher draft acceptance.
Signal gets there by being more direct rather than by truncating answers. It removes unnecessary preambles, excessive formatting, sign-offs, and explanatory narration while preserving the substance of the response. In thinking mode, it keeps the useful reasoning steps while spending fewer tokens describing the process.
Signal is trained by self-distillation: on Qwen3.8-27B's own answers, generated under an instruction to be direct that the released model no longer needs. No external data and no other model's outputs went into it, which is why it keeps the base model's knowledge and voice intact.
It is a drop-in GGUF replacement for llama.cpp setups that already run Qwen3.8-27B.
What changes, measured
We evaluated Signal against the untouched Qwen3.8-27B, both at Q8_0 in llama.cpp, using the same server, sampling settings and prompts: 60 general and 40 coding prompts with thinking off, 30 and 20 of them with thinking on, plus GSM8K. All prompts were held out from tuning. The numbers are for the tiers rebuilt on 2026-09-13.
| base Q8_0 | Signal | change | |
|---|---|---|---|
| general answers, median tokens | 243 | 183 | -25% |
| answers opening with a preamble ("Sure!", "Great question") | 13% | 3% | -77% |
| answers with markdown headers | 47% | 37% | -21% |
| answers with bold | 85% | 75% | -12% |
| coding answers, median tokens | 159 | 153 | -4% |
| coding answers, p90 tokens | 1026 | 963 | -6% |
Thinking mode, same prompts with reasoning on:
| base Q8_0 | Signal | change | |
|---|---|---|---|
| reasoning tokens, general prompts, median | 153 | 91 | -41% |
| reasoning tokens, coding prompts, median | 225 | 158 | -30% |
| reasoning tokens, GSM8K, median | 119 | 90 | -24% |
Quality, exact match on GSM8K:
| base Q8_0 | Signal | |
|---|---|---|
| thinking off, 60 problems | 98.3% | 100% |
| thinking on, 40 problems | 92.5% | 95.0% |
Signal was also run on 100 problems in each mode: 98.0% with thinking off, 96.0% with thinking on. The table uses the problems the base model was run on.
Shorter is not cheaper: no answer in the 150-prompt style set was cut off early (0 answers ending on a header or a colon, 0 unclosed code blocks). With reasoning on at a 6,000-token budget, 6 of Signal's 250 traces ran to the budget against 3 of the base model's 90, the same rate. On a separate loop check of 55 thinking-mode traces (math, GSM8K, coding and general prompts, Q5_K_M on mainline llama.cpp with and without the draft head, q8_0 KV cache) no trace looped or hit the cap.
Faster with speculative decoding
Qwen3.8-27B carries a built-in multi-token-prediction draft head. Signal's answers are more predictable, so the drafter agrees with the model more often:
Draft acceptance and decode speed with --spec-type draft-mtp, both models Q8_0 on the same
machine (Strix Halo, Vulkan), 200-token greedy runs for the fixed-draft rows:
| prompt / draft length | base acceptance | Signal acceptance | decode speed vs base |
|---|---|---|---|
| prose, draft 3 | 39% | 45% | +9% |
| prose, draft 4 | 35% | 41% | +14% |
| structured output (JSON), draft 3 | 72% | 94% | +20% |
| structured output (JSON), draft 4 | 66% | 87% | +24% |
| chat prompts, sampled at 0.7, adaptive draft ≤4 (40 prompts) | 57% | 56% | — |
Combined with the shorter answers, the measured batch above finishes in about four fifths of the total wall time (and under three quarters of the median) of the base model on the same hardware, with the draft head on.
Why shorter is not worse
Chain-of-thought length is not mostly a function of problem difficulty. A recent study of reasoning models (Lotfi, Kirichenko, Li and Liu, Quantized Reasoning Models Think They Need to Think Longer, but They Do Not, arXiv:2606.00206) finds that a small set of hesitation and branching tokens ("Wait", "But", "Alternatively", "maybe") drives most of the excess: they are sampled at the positions where the model is least certain, each one opens a new line of reasoning, and in up to half of the failures the model had already reached the right answer before branching away from it. Suppressing those fifty tokens at decode time cut reasoning length by 12 to 23 percent across five models without hurting accuracy.
Signal reaches the same place from the opposite side. The penalty method tells the model what not to say, with a fixed bias on a fixed word list at every step. Signal was taught by example: it learned from the base model's own answers where it went straight to the point, so nothing is banned and nothing is penalised at decode time. The model still branches where a branch does work; it has simply stopped preferring the detour where the direct continuation was as good.
Using it as an agent
Signal works as a coding/agent model, and the terseness is an asset there: it spends fewer tokens
per step, so tool-driven loops run faster and cost less. On Terminal-Bench 2.0
(real fix-a-repo and sysadmin tasks scored by each task's own test suite), Signal solved 8 of 10
tasks at AP-Q4_K_XL, finishing most shared tasks faster than the base model. Single trial per task,
so treat that as "handles real agentic work and is terser/faster," not a precise pass rate. It is also
strong on long-input, short-output work — reviewing or auditing a large codebase, where it reads the
whole context and returns focused findings instead of a wall of prose.
One limitation to design around. Signal is tuned to be concise, so it is not the right tool for a single very long generation — asking it to emit one file of tens of thousands of tokens in one shot, where it can lapse into repeating itself. Two easy mitigations, both good agent practice anyway:
- Structure work as multiple manageable files rather than one giant file. Each step stays in the length range where Signal is at its best.
- For a genuinely large single artifact, use the base model (or Signal with a capped output length and an explicit "write it out in full" instruction).
Keeping presence_penalty 1.0 and min-p 0.05 (above) also suppresses the repetition on longer
outputs; raising presence_penalty much higher is not recommended, as it can degrade very long
generations.
Files
Nine tiers from IQ3_XXS to Q8_0, one folder each. AP = Agention Precision: tier names refer to the base ftype, the per-tensor types are chosen for accuracy per gigabyte using Agention Precision recipes. All built from Signal's BF16 (rebuilt 2026-09-13) using our custom imatrix; KLD and top-1 are against that BF16 on a held-out 2026 corpus and wikitext-2, -c 2048. VRAM is the file size: this is a dense model, nothing offloads.
| tier | size | eff. bpw | KLD held-out | top-1 | KLD wikitext | what |
|---|---|---|---|---|---|---|
Q8_0 |
27.05 GiB | 8.26 | 0.0040 | 94.7% | 0.0046 | reference quality; every number below was measured on this file |
AP-Q6_K |
20.89 GiB | 6.57 | 0.0055 | 94.5% | 0.0075 | Q6_K with imatrix |
AP-Q5_K_M |
18.19 GiB | 5.72 | 0.0081 | 94.0% | 0.0093 | Q5_K_M with imatrix |
AP-Q4_K_XL |
16.35 GiB | 5.14 | 0.0124 | 93.3% | 0.0148 | precision tier — matched unsloth's UD-Q4_K_XL on the base model at the same size |
AP-Q4_K_M |
15.83 GiB | 4.98 | 0.0184 | 92.3% | 0.0218 | fast tier — +20% prefill over UD-Q4_K_M on the base model at the same size, some quality traded |
AP-IQ4_XS |
13.27 GiB | 4.17 | 0.0287 | 90.9% | 0.0327 | UD-IQ4_XS per-tensor map with our imatrix — same size |
AP-Q3_K_XL |
14.05 GiB | 4.41 | 0.0595 | 88.1% | 0.0562 | 3-bit body, Q6_K output + Q5_K embeddings — the 16 GB slot with headroom |
AP-IQ3_S |
12.38 GiB | 3.89 | 0.0661 | 87.9% | 0.0655 | i-quant 3-bit body, protected head — the value pick under 4-bit |
AP-IQ3_XXS |
11.39 GiB | 3.58 | 0.1003 | 85.7% | 0.1008 | smallest tier, most aggressive; quality traded for a long context in 16 GB |
Which one: AP-Q4_K_XL if 16.5 GiB fits, AP-IQ4_XS for the 13 GiB slot, AP-Q4_K_M when prefill
speed matters more than the last bit of quality, AP-Q6_K or Q8_0 when memory is no object. For a
16 GB card, the three-bit tiers leave room for a long context plus the MTP draft head or the vision
projector: AP-IQ3_XXS (11.4 GiB) fits 100K+ context with extras, AP-IQ3_S (12.4 GiB) is the value
pick with a protected head, and AP-Q3_K_XL (14.1 GiB) trades context room for a little more margin.
Running
Thinking on and off both work; the chat template is the original Qwen3.8 template.
Sampling: temperature 0.6, top-p 0.95, top-k 20, min-p 0.05, presence_penalty 1.0, as in the
commands below. The min-p cuts the low-probability tail that reasoning runaways are sampled from: on
five prompts that had run away at temperature 0.7 without min-p, Signal answered 14 of 15 draws at this
setting within an 8k budget, the base model 9 of 15 on the same prompts and settings. presence_penalty
1.0 further suppresses repetition on long outputs; keep it around 1.0 — much higher can degrade very
long generations. Use sampling rather than greedy decoding (we saw a single loop at temperature 0), and
do not raise the temperature to 1.0: on the smallest tier (AP-IQ3_XXS, 40 level-5 MATH-500 problems)
1.0 doubled the 90th-percentile reasoning length to the token cap and cost 12 points of accuracy
against 0.7.
KV cache: keep the cache at q8_0 or f16 for both K and V. A 4-bit value cache (-ctv q4_1 or
q4_0) makes long reasoning traces degenerate into a repeated phrase; we reproduced a user's
loop report with exactly that setting, and the same prompt is clean at q8_0.
llama.cpp
llama-server -hf agentionai/Signal-3.8-27B-GGUF:AP-Q4_K_XL \
--jinja -ngl 999 -fa on -c 65536 -ctk q8_0 -ctv q8_0 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.05 --presence-penalty 1.0
Add the built-in draft head for the throughput above (needs a build with --spec-type draft-mtp):
--spec-type draft-mtp --spec-draft-n-max 4 --no-spec-draft-backend-sampling
On recent mainline llama.cpp, pass
--no-spec-draft-backend-samplingwhenever you enable the draft head. The default offloads draft sampling to the backend, which does not apply min-p (or the rest of the sampler) to accepted draft tokens — so a repetition can run away regardless of your sampling settings. This flag routes draft verification back through the sampler and keeps the MTP speedup. Builds without the flag are unaffected (they never had backend draft sampling).
Thinking is on by default. To turn it off per request, send
"chat_template_kwargs": {"enable_thinking": false} with the chat completion.
vLLM (NVIDIA Blackwell)
A community NVFP4 (W4A16) build for vLLM, MTP included, is at Shockem/Signal-3.8-27B-NVFP4: 2x RTX 5060 Ti 16 GB, TP=2, 200k context, FP8 KV, ~50-70 tok/s, total solution wall time roughly half of the stock model. The BF16 source for your own quants is agentionai/Signal-3.8-27B.
Ollama / LM Studio
Import the GGUF as any Qwen3.8-27B file. Use the sampling settings above; the template is embedded in the file.
Method and tooling
Signal is trained by self-distillation on the base model's own answers; no external data. The tiers are
built with our own Rust tooling, agention-infer: gguf-pack for
byte-exact, content-addressed tier builds and validation, gguf-info for inspection, and a per-tensor
distortion solver behind the Agention Precision recipes. Every tier is measured against Signal's own
BF16 on a held-out 2026 corpus before it ships.
Vision
Signal keeps Qwen3.8-27B's image input. The vision encoder and projector are untouched by the
tune, so the base model's own mmproj-BF16.gguf is at
the repository root, 0.87 GiB. Download it alongside any tier:
Support AgentionAI
Signal3.8 is released freely. If it saves you compute or makes Qwen more useful, you can sponsor continued tuning, quantization and benchmarking on GitHub.
- Downloads last month
- 17,069
3-bit
4-bit
5-bit
6-bit
8-bit
Model tree for agentionai/Signal-3.8-27B-GGUF
Base model
Qwen/Qwen3.8-27B