Instructions to use 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
Use Docker
docker model run hf.co/0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "0xKitkat/Agnes-3.0-Flash-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": "0xKitkat/Agnes-3.0-Flash-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/0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
- Ollama
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with Ollama:
ollama run hf.co/0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf 0xKitkat/Agnes-3.0-Flash-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": "0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with Docker Model Runner:
docker model run hf.co/0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
- Lemonade
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Agnes-3.0-Flash-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-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 0xKitkat/Agnes-3.0-Flash-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use 0xKitkat/Agnes-3.0-Flash-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf 0xKitkat/Agnes-3.0-Flash-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 "0xKitkat/Agnes-3.0-Flash-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"
| license: apache-2.0 | |
| base_model: Agnes-AI/Agnes-3.0-Flash | |
| pipeline_tag: image-text-to-text | |
| language: | |
| - en | |
| - zh | |
| tags: | |
| - gguf | |
| - agnes | |
| - multimodal | |
| # Agnes-3.0-Flash GGUF | |
| **Follow [@procrastiness on Twitter/X](https://twitter.com/procrastiness) for more model releases and updates.** | |
| GGUF quantizations of the original [Agnes-AI/Agnes-3.0-Flash](https://huggingface.co/Agnes-AI/Agnes-3.0-Flash), released by 0xKitkat. **This is the normal model, with no abliteration or fine-tuning.** Approximately 33.1B parameters; all 72 decoder blocks and the original vision tower are retained. | |
| The original Apache-2.0 license is preserved. Downloads and local use require no hosted API subscription; you supply the hardware and electricity. The source revision is `8f0c484c363cdda8384195be4a5f7730f3915bde`. | |
| Available validated quants: Q4_K_M, Q5_K_M, Q6_K, Q8_0. All planned quants are published. | |
| <!-- GGUF-USAGE-BEGIN --> | |
| ## Recommended starting setup | |
| Start with **Q4_K_M**, a **4,096-token context**, **one concurrent request**, and **thinking disabled**. This is the configuration closest to the functional checks reported below. Use the embedded chat template; do not select a generic ChatML or Llama template manually. | |
| For normal chat, use the upstream sampling defaults: **temperature 1.0, top-p 0.95, top-k 20**. For repeatable troubleshooting or checking exact answers, use **temperature 0**. Start with **512 output tokens** for short answers or **2,048** for longer responses, keeping prompt + image tokens + output within the configured context. | |
| ### Choose a quant and hardware | |
| Download **one text GGUF**. Add the **F16 vision projector** only if you want image input. The projector is shared by all quants in this release. | |
| | Quant | When to choose it | | |
| |---|---| | |
| | **Q4_K_M** | Recommended first download; smallest planned file and the easiest fit on consumer hardware. | | |
| | **Q5_K_M** | More weight precision if you have additional memory; compare the measured results below. | | |
| | **Q6_K** | Higher precision with a larger memory footprint. | | |
| | **Q8_0** | Highest precision in this quant set; intended for larger-memory machines. | | |
| The validation table lists exact sizes for published files. **A quant being listed here does not mean its upload has finished**; check the available-files list and the Files tab. | |
| | Hardware | Suggested starting point | | |
| |---|---| | |
| | Single 8–16 GB GPU + 32 GB or more system RAM | Q4_K_M with CPU offloading. Use automatic fitting initially; lower GPU layers if needed. Generation will be slower than a full GPU fit. | | |
| | Single 24 GB GPU + 32 GB or more system RAM | Try Q4_K_M at 4K context. Leave room for buffers, display usage, and the projector; reduce GPU layers if allocation fails. | | |
| | Two 12 GB GPUs + about 32 GB system RAM | Q4_K_M, layer split `1,1`, 4K context. This release was exercised on two RTX 2060 12 GB GPUs. | | |
| | 48 GB or more GPU memory | Consider Q6_K or Q8_0 at 4K first, then increase context after checking memory use. | | |
| | CPU only, or Apple Silicon unified memory | Start with Q4_K_M and preferably 32 GB or more available system/unified memory. CPU-only and Metal performance were not benchmarked for this release. | | |
| These are starting recommendations, not exact minimums. Weight-file size excludes runtime buffers, recurrent state, attention cache, images, and other applications. A 16 GB machine is a poor fit for this approximately 33B model. CPU-only operation benefits from 48–64 GB RAM when other applications are running. | |
| ## 1. Install llama.cpp and the download tool | |
| Use a recent **llama.cpp** build with Qwen3.5 text and vision support. The release was tested with commit `56381e407c0ccfb3a6f71e668a27a901001d22ce`. Older bundled runtimes can reject the model architecture or load it incorrectly. | |
| ### Windows | |
| Install Python 3.10+ if needed, then open PowerShell: | |
| ```powershell | |
| winget install llama.cpp | |
| python -m pip install --upgrade huggingface_hub requests | |
| llama-server --version | |
| ``` | |
| Open a new terminal after installing if commands are not found. For NVIDIA acceleration, use a compatible CUDA build from the [official llama.cpp releases](https://github.com/ggml-org/llama.cpp/releases), extract the complete archive, and keep its DLLs alongside `llama-server.exe`. From that folder, replace `llama-server` in the commands below with `.\llama-server.exe`. Confirm the startup log detects your GPU; installing a package alone does not establish which backend it uses. | |
| ### macOS | |
| With [Homebrew](https://brew.sh/) and Python installed: | |
| ```bash | |
| brew install llama.cpp | |
| python3 -m venv .venv | |
| source .venv/bin/activate | |
| python -m pip install --upgrade huggingface_hub requests | |
| llama-server --version | |
| ``` | |
| ### Ubuntu / Debian: reproducible NVIDIA build | |
| Install a compatible NVIDIA driver and CUDA Toolkit first; `nvidia-smi` and `nvcc --version` should work. Then: | |
| ```bash | |
| sudo apt-get update | |
| sudo apt-get install -y git cmake build-essential libcurl4-openssl-dev python3-venv | |
| git clone https://github.com/ggml-org/llama.cpp | |
| cd llama.cpp | |
| git checkout 56381e407c0ccfb3a6f71e668a27a901001d22ce | |
| cmake -S . -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build --config Release -j 4 --target llama-server | |
| export PATH="$PWD/build/bin:$PATH" | |
| cd .. | |
| python3 -m venv .venv | |
| source .venv/bin/activate | |
| python -m pip install --upgrade huggingface_hub requests | |
| ``` | |
| For a CPU-only build, configure with `-DGGML_CUDA=OFF` and start the server with `-ngl 0`. Other backends and installation options are covered in the [llama.cpp installation guide](https://github.com/ggml-org/llama.cpp/blob/56381e407c0ccfb3a6f71e668a27a901001d22ce/docs/install.md) and [build guide](https://github.com/ggml-org/llama.cpp/blob/56381e407c0ccfb3a6f71e668a27a901001d22ce/docs/build.md). | |
| ## 2. Download the model | |
| Run these in the directory where you want the `agnes` folder. The public download does not require a paid account or hosted inference subscription. | |
| ```bash | |
| hf download 0xKitkat/Agnes-3.0-Flash-GGUF Agnes-3.0-Flash-Q4_K_M.gguf --local-dir agnes | |
| ``` | |
| For image input, also download: | |
| ```bash | |
| hf download 0xKitkat/Agnes-3.0-Flash-GGUF mmproj-Agnes-3.0-Flash-F16.gguf --local-dir agnes | |
| ``` | |
| For another published quant, replace `Q4_K_M` in the filename with `Q5_K_M`, `Q6_K`, or `Q8_0`. Rerun the same download command after an interruption. Allow disk space for the chosen file plus the approximately 0.93 GB projector if used. | |
| SHA-256 checksums are recorded in [release-manifest.json](./release-manifest.json). To calculate a local checksum: | |
| ```powershell | |
| Get-FileHash agnes/Agnes-3.0-Flash-Q4_K_M.gguf -Algorithm SHA256 | |
| ``` | |
| On Linux use `sha256sum agnes/Agnes-3.0-Flash-Q4_K_M.gguf`; on macOS use `shasum -a 256` with the same path. | |
| ## 3. Start the local server | |
| ### Text-only: single GPU or automatic fitting | |
| ```bash | |
| llama-server -m agnes/Agnes-3.0-Flash-Q4_K_M.gguf --alias agnes -c 4096 --parallel 1 --fit on --jinja --flash-attn on --batch-size 256 --ubatch-size 128 --threads 6 --temp 1.0 --top-p 0.95 --top-k 20 --host 127.0.0.1 --port 8080 | |
| ``` | |
| Open **http://127.0.0.1:8080** for the built-in chat UI. Keep the terminal running. The API is at **http://127.0.0.1:8080/v1**; its model name is **`agnes`**. This local server does not need an API key. If a client requires a nonempty key field, use `local`. | |
| The command lets llama.cpp choose GPU offloading with `--fit on`. If it runs out of GPU memory, specify a smaller layer count, for example `-ngl 20`, and adjust from there. Use `-ngl 0` for CPU-only inference. Six CPU threads is a starting value used in our checks; tune it for your CPU. | |
| ### Text and images: tested dual-GPU layout | |
| ```bash | |
| llama-server -m agnes/Agnes-3.0-Flash-Q4_K_M.gguf --mmproj agnes/mmproj-Agnes-3.0-Flash-F16.gguf --alias agnes -c 4096 --parallel 1 -ngl 99 --split-mode layer --tensor-split 1,1 --jinja --flash-attn on --batch-size 256 --ubatch-size 128 --threads 6 --temp 1.0 --top-p 0.95 --top-k 20 --host 127.0.0.1 --port 8080 | |
| ``` | |
| `-ngl 99` requests all eligible layers on the GPUs; it is not a claim that the model has 99 layers. `--tensor-split 1,1` distributes layers between two GPUs. On one GPU, use the first command and add `--mmproj agnes/mmproj-Agnes-3.0-Flash-F16.gguf`. For larger quants, lower the GPU layer count or let automatic fitting choose it. | |
| ### Thinking and context settings | |
| The API examples below explicitly disable thinking, matching release testing. To make this the server default for the web UI too, set `LLAMA_ARG_CHAT_TEMPLATE_KWARGS` **before** starting the server: | |
| ```powershell | |
| # PowerShell | |
| $env:LLAMA_ARG_CHAT_TEMPLATE_KWARGS = '{"enable_thinking":false}' | |
| ``` | |
| ```bash | |
| # Bash / zsh | |
| export LLAMA_ARG_CHAT_TEMPLATE_KWARGS='{"enable_thinking":false}' | |
| ``` | |
| For experimental thinking-on use, send `"chat_template_kwargs": {"enable_thinking": true, "reasoning_effort": "xhigh"}` in the request. The source template accepts `low`, `medium`, and `xhigh` effort (the actual pinned template uses `xhigh`, even though the upstream card describes `high`). Allocate more output tokens and context for reasoning. This release's measured results do **not** validate reasoning-on quality, tool calling, video, or the advertised 262,144-token context. Start at 4K; try 8K only after confirming adequate memory and prompt-plus-output space. | |
| ## 4. Use the API from Python | |
| Save as `chat_agnes.py`, then run `python chat_agnes.py` while the server is running: | |
| ```python | |
| import unicodedata | |
| import requests | |
| prompt = unicodedata.normalize("NFC", "Explain how a rainbow forms in three sentences.") | |
| response = requests.post( | |
| "http://127.0.0.1:8080/v1/chat/completions", | |
| json={ | |
| "model": "agnes", | |
| "messages": [{"role": "user", "content": prompt}], | |
| "temperature": 1.0, | |
| "top_p": 0.95, | |
| "top_k": 20, | |
| "max_tokens": 512, | |
| "chat_template_kwargs": {"enable_thinking": False}, | |
| "stream": False, | |
| }, | |
| timeout=1800, | |
| ) | |
| response.raise_for_status() | |
| print(response.json()["choices"][0]["message"]["content"]) | |
| ``` | |
| For deterministic checks, change `temperature` to `0` and add `"seed": 20260912`. Sampling defaults above come from the [original model](https://huggingface.co/Agnes-AI/Agnes-3.0-Flash); they are a starting point, not a new tuning benchmark. | |
| ### Ask about a local image | |
| Start the server with the projector. Save this as `image_agnes.py`, place an `image.jpg` alongside it, and run `python image_agnes.py`: | |
| ```python | |
| import base64 | |
| from pathlib import Path | |
| import requests | |
| encoded = base64.b64encode(Path("image.jpg").read_bytes()).decode("ascii") | |
| response = requests.post( | |
| "http://127.0.0.1:8080/v1/chat/completions", | |
| json={ | |
| "model": "agnes", | |
| "messages": [{ | |
| "role": "user", | |
| "content": [ | |
| {"type": "text", "text": "Describe the main objects in this image."}, | |
| {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{encoded}"}}, | |
| ], | |
| }], | |
| "temperature": 0, | |
| "max_tokens": 256, | |
| "chat_template_kwargs": {"enable_thinking": False}, | |
| "stream": False, | |
| }, | |
| timeout=1800, | |
| ) | |
| response.raise_for_status() | |
| print(response.json()["choices"][0]["message"]["content"]) | |
| ``` | |
| For PNG input, change the file path and use `data:image/png;base64,`. Begin with one modest-size image; image tokens also consume context. The API format follows [llama.cpp's multimodal server documentation](https://github.com/ggml-org/llama.cpp/blob/56381e407c0ccfb3a6f71e668a27a901001d22ce/docs/multimodal.md). | |
| ## Troubleshooting | |
| | Symptom | What to change | | |
| |---|---| | |
| | Unknown architecture, missing tensor, or unsupported operation | Update llama.cpp to the tested revision or a newer compatible build. This is a Qwen3.5 GGUF graph conversion, so older runtimes may not support it. | | |
| | GPU out of memory | Use Q4_K_M; reduce `-ngl`, context, or `--ubatch-size` to `64`; keep `--parallel 1`. Add the projector only when needed. | | |
| | Very slow generation | Check the startup log for actual GPU offloading. Q5/Q6/Q8 may spill heavily to CPU on 24 GB total VRAM. Try Q4 and close memory-heavy applications. | | |
| | Thought tags or unexpectedly long reasoning | Set `chat_template_kwargs.enable_thinking` to `false`, or set the server environment variable shown above. | | |
| | Output stops early | Check the response's `finish_reason`. Raise `max_tokens` if it is `length`, while ensuring sufficient context remains. | | |
| | Image request fails | Check that the matching projector is loaded and that the data URL's MIME type matches the image file. | | |
| | Unicode tokenization differs from Transformers | NFC-normalize text before sending it. Stock llama.cpp does not reproduce the upstream tokenizer's NFC normalization automatically. | | |
| Other applications must bundle a sufficiently recent compatible backend. LM Studio and Ollama were not part of this release's validation; the commands above use llama.cpp directly. | |
| <!-- GGUF-USAGE-END --> | |
| ## Validation | |
| | Quant | File GiB | 24 deterministic tasks | Native top-10 token overlap | 3 synthetic image checks | WikiText PPL | | |
| |---|---:|---:|---:|---:|---:| | |
| | Q4_K_M | 18.40 | 95.8% | 93.1% | 100.0% | 7.160 | | |
| | Q5_K_M | 21.42 | 95.8% | 95.6% | 100.0% | 7.113 | | |
| | Q6_K | 24.62 | 95.8% | 97.5% | 100.0% | 7.082 | | |
| | Q8_0 | 31.89 | 95.8% | 98.8% | 100.0% | 7.093 | | |
| These are small functional tests, not comprehensive capability benchmarks. Native-reference checks compare next-token distributions on 16 prompts with a layer-streamed upstream calculation using FP32 computation and FP16 residual storage. All generation checks use thinking disabled. Per-quant reports and SHA-256 hashes are included. Long-context limits, video, reasoning-on quality, and tool calling are not exhaustively tested here. | |
| WikiText perplexity uses eight 512-token chunks from a pinned WikiText-2 test corpus. Each normal quant must stay within 5% of the unmodified Q4 baseline. This is a subset loss check, not a full-corpus benchmark. | |
| Q4_K_M, Q5_K_M and Q6_K use a 32-chunk importance matrix computed from the unmodified Q8_0 model. Q8_0 is quantized directly from the original BF16 weights. The projector is F16 and is shared by all quants. | |
| ## Architecture mapping | |
| Agnes uses the same attention computation as the supported Qwen3.5 GGUF graph. Its additional parallel SwiGLU branch is preserved exactly by concatenating both branches' gate/up matrices and concatenating their down matrices on the input dimension. This is an algebraic graph conversion, not a trained modification. MTP speculative decoding weights are omitted from GGUF. The vision tower maps to the Qwen3.5 vision projector graph. Structural, rotary, tokenizer, and FP32 next-token equivalence tests are included. | |
| The upstream tokenizer applies NFC Unicode normalization; stock llama.cpp's Qwen3.5 tokenizer does not. For exact agreement on decomposed Unicode, normalize text with `unicodedata.normalize("NFC", text)` before rendering the chat prompt. Already-normalized English and Chinese text is unaffected. | |
| Original model and implementation: Agnes AI. Build code was generated with AI assistance and tested as reported. See the original license and upstream model card for attribution. | |