Exeyyy's picture
Upload README.md with huggingface_hub
ef83f42 verified
|
Raw
History Blame Contribute Delete
5.48 kB
---
license: apache-2.0
base_model: Qwen/Qwen2.5-Coder-3B-Instruct
library_name: gguf
pipeline_tag: text-generation
language:
- en
tags:
- gguf
- exe-ai-terminal
- extended-workflow
- guardian
- tool-use
- llama.cpp
---
<div align="center">
<img src="exe-guard-hero.png" alt="Exe Guard Dynamic β€” Extended Workflow guardian for the Exe AI Terminal" width="100%">
</div>
# Exe Guard Dynamic
A tiny guardian model for the **Extended Workflow** feature of the **Exe AI Terminal**
**Website to the Main AI Agent Harness: https://exe-hq.net**
When a tool step fails, it reads the report of that failure and writes the **one
instruction** the user should send next to fix it β€” a corrected command, the real
file, a path inside the shared folder. It suggests; it never acts.
![Per-case results β€” base 42% vs. trained 100% on 24 tool-repair cases](diagramm-detail.png)
## What it does
The guardian watches tool calls and speaks up only when a step failed in a way a
person would want a suggestion for. It is built for exactly six kinds of failure:
| # | Failure | The fix it should name |
|---|---|---|
| 1 | Command typo (`npm run buld`) | the correctly spelled command |
| 2 | Wrong Python environment (a `.venv/` exists) | `.venv/bin/python3 …` (never a global `pip install`, never `source activate`) |
| 3 | `edit_file` old-text not found | read the file first, then edit with the exact text |
| 4 | Binary / unreadable file | the readable file (e.g. the `.log`), or `run_command` for archives |
| 5 | Path rejected (outside the shared folders) | a path inside the released folder |
| 6 | Run stopped after a timeout | re-run in the background |
It answers in **one imperative English sentence**, no greeting, no explanation.
## Intended use
Drop-in as the small background model behind the Exe AI Terminal's Extended Workflow.
It is a specialist: it turns a failed-step report into a single corrective instruction.
**Out of scope:** general chat, code generation, vision, or any use outside the
failed-step-repair task. It is not a general assistant.
## Files
All builds carry an importance matrix (imatrix) computed from the model's own task
data, and were tested on 24 held-out repair cases at `temperature 0.1`. "Test" is the
number of those 24 cases solved correctly β€” a task metric, not perplexity.
| File | Type | Bits | Size | Test (of 24) |
|---|---|---|---|---|
| `Exe-Guard-Dynamic-Q8_0.gguf` | K/legacy | 8 | 3.06 GB | 24 / 24 |
| `Exe-Guard-Dynamic-Q6_K.gguf` | K-quant | 6.5 | 2.36 GB | 24 / 24 |
| `Exe-Guard-Dynamic-Q5_K_M.gguf` | K-quant | 5.5 | 2.07 GB | 24 / 24 |
| `Exe-Guard-Dynamic-Q4_K_M.gguf` | K-quant | 4.8 | 1.80 GB | 24 / 24 |
| `Exe-Guard-Dynamic-Q4_K_S.gguf` | K-quant | 4.5 | 1.71 GB | 24 / 24 |
| **`Exe-Guard-Dynamic-IQ4_XS.gguf`** | **I-quant Β· recommended** | **4.25** | **1.62 GB** | **24 / 24** |
| `Exe-Guard-Dynamic-Q3_K_L.gguf` | K-quant | 4.0 | 1.59 GB | 19 / 24 |
| `Exe-Guard-Dynamic-Q3_K_M.gguf` | K-quant | 3.9 | 1.48 GB | 20 / 24 |
| `Exe-Guard-Dynamic-IQ3_M.gguf` | I-quant | 3.66 | 1.39 GB | 24 / 24 |
| `Exe-Guard-Dynamic-IQ3_S.gguf` | I-quant | 3.44 | 1.36 GB | 24 / 24 |
| `Exe-Guard-Dynamic-Q2_K.gguf` | K-quant | 3.0 | 1.19 GB | 24 / 24 |
| `Exe-Guard-Dynamic-IQ2_M.gguf` | I-quant | 2.7 | 1.06 GB | 23 / 24 |
| `Exe-Guard-Dynamic-IQ2_S.gguf` | I-quant | 2.5 | 0.99 GB | 22 / 24 |
| `Exe-Guard-Dynamic-IQ2_XS.gguf` | I-quant | 2.06 | 0.96 GB | 22 / 24 |
| `Exe-Guard-Dynamic-IQ1_M.gguf` | I-quant Β· experimental | 1.75 | 0.79 GB | 9 / 24 |
| `Exe-Guard-Dynamic-IQ1_S.gguf` | I-quant Β· experimental | 1.56 | 0.74 GB | 10 / 24 |
| `Exe-Guard-Dynamic-f16.gguf` | full precision | 16 | 5.75 GB | 24 / 24 |
**`IQ4_XS` is the recommended build.** It is smaller than `Q4_K_M` and solves the
same 24 of 24 β€” every build here carries an importance matrix, and the I-quants use
it to spend their bits where the model actually needs them.
The same pattern holds further down: at low bit-widths the I-quants (IQ3, IQ2) beat
the K-quants of similar size (`Q3_K` drops to 19–20/24). The 1-bit builds are
included for the curious but are not recommended.
## Prompt and sampling
Two messages only β€” a fixed system instruction and the failure report β€” with
`temperature 0.1`, `max_tokens 200`, thinking off, context 4096. No conversation
history.
## Base model and license
- **Base:** [Qwen/Qwen2.5-Coder-3B-Instruct](https://huggingface.co/Qwen/Qwen2.5-Coder-3B-Instruct)
- **License:** Apache-2.0 (base and this derivative). You may use, modify, rebrand and
redistribute; the origin of the base model must be named β€” it is, here.
## Training
A thin LoRA adapter on top of the base, trained locally (Apple Silicon, MLX) on
synthetic examples of failed tool steps and their one-sentence corrections, built to
match the exact report format the terminal produces. The adapter was fused into the
base and then quantized.
## Evaluation
On 24 held-out repair cases at `temperature 0.1`, the untrained base solves **10 / 24
(42%)** and Exe Guard Dynamic solves **24 / 24 (100%)**. The base fails completely on
the two cases that need this training β€” wrong Python environment and wrong edit target
(0%) β€” which the trained model fixes entirely.
## Transparency
This is a fine-tuned derivative of an openly licensed base model, released with its
provenance, intended use, limits and evaluation stated above, in line with
transparency expectations for shared models (incl. the EU AI Act).