Skip to content

Commit 0751e6b

Browse files
committed
Update documentation
1 parent 44c9f2f commit 0751e6b

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

docs/blog.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Squeez: Task-Conditioned Tool-Output Pruning for Coding Agents
22

33
<p align="center">
4-
<img src="assets/squeez_mascot.png" alt="Squeez mascot" width="180">
4+
<img src="https://raw.githubusercontent.com/KRLabsOrg/squeez/main/blog/assets/squeez_mascot.png" alt="Squeez mascot" width="180">
55
</p>
66

77
We trained and open-sourced **Squeez-2B**, a compact model for pruning tool output in coding agents. Given a focused query and one raw tool observation, it returns the smallest verbatim evidence block that the agent should inspect next. On our held-out benchmark it reaches **0.86 recall at 92% compression**, outperforming a zero-shot **Qwen 3.5 35B A3B** baseline by **11 recall points** at essentially the same compression level. The model, dataset, and code are released on [Hugging Face](https://huggingface.co/KRLabsOrg/squeez-2b), [the dataset hub](https://huggingface.co/datasets/KRLabsOrg/tool-output-extraction-swebench), and [GitHub](https://github.com/KRLabsOrg/squeez).
@@ -80,7 +80,7 @@ Two properties of the task matter. First, the output is **verbatim**. We do not
8080
The overall pipeline is shown below:
8181

8282
<p align="center">
83-
<img src="assets/squeez_overview.svg" alt="Squeez pipeline: from raw tool output through span annotation to generative model" width="920">
83+
<img src="https://raw.githubusercontent.com/KRLabsOrg/squeez/main/blog/assets/squeez_overview.svg" alt="Squeez pipeline: from raw tool output through span annotation to generative model" width="920">
8484
</p>
8585

8686
The benchmark is built from two sources. The first is [SWE-bench](https://openreview.net/forum?id=VTF8yNQM66), which provides real GitHub issue-resolution tasks over real repositories. We clone repository snapshots and execute 14 tool types against them — file reads, grep, Git log and blame, test runners, linters, type checkers, package installation, curl, and others — collecting **10,713** raw observations that reflect the kind of output a coding agent encounters during issue resolution.
@@ -147,7 +147,7 @@ Three results matter most. First, **task-specific training matters**: a fine-tun
147147
The recall-compression trade-off is shown below. Squeez-2B occupies the upper-left region: high recall with strong compression.
148148

149149
<p align="center">
150-
<img src="assets/squeez_results_chart.svg" alt="Recall vs compression across all models" width="920">
150+
<img src="https://raw.githubusercontent.com/KRLabsOrg/squeez/main/blog/assets/squeez_results_chart.svg" alt="Recall vs compression across all models" width="920">
151151
</p>
152152

153153
The aggregate numbers are only part of the story. Below are four qualitative patterns from the held-out test set.
@@ -196,7 +196,7 @@ Qwen 35B selects a semantically similar but wrong block from a later request. Th
196196
**The kubectl example** illustrates the intended use case at a glance. The full observation contains 250 lines of pod description; the relevant evidence is a two-line block reporting `OOMKilled` and the exit code.
197197

198198
<p align="center">
199-
<img src="assets/squeez_qualitative_example.svg" alt="kubectl example: 2 relevant lines from 250" width="920">
199+
<img src="https://raw.githubusercontent.com/KRLabsOrg/squeez/main/blog/assets/squeez_qualitative_example.svg" alt="kubectl example: 2 relevant lines from 250" width="920">
200200
</p>
201201

202202
**Remaining errors.** The strongest failures of Squeez-2B are semantically adjacent but incorrect selections. In a build log containing both a Dockerfile syntax error and a Python `SyntaxError`, Squeez correctly finds the Dockerfile error but also includes the nearby Python error. Qwen 35B picks *only* the Python error and misses the Dockerfile error entirely. This pattern — correct evidence plus some extra noise — accounts for most of the gap between Squeez's 0.86 recall and its 0.80 precision.

docs/index.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,18 @@ From 42 lines of middleware code, Squeez extracts only the block relevant to the
2626
2727
## Highlights
2828
29-
- **~86% compression** — keeps only the evidence block the agent needs
29+
- **92% compression, 0.86 recall** — keeps only the evidence block the agent needs
3030
- **CLI + Python API**`cat file | squeez "task"` or `ToolOutputExtractor`
31-
- **Two backends** — vLLM server (fast) or local transformers (no server)
31+
- **Four backends** — vLLM server, local transformers, encoder, and pooled classifier
3232
- **Config-driven** — YAML config, env vars, or CLI args
3333
- **Agent-ready** — works with Claude Code, Codex CLI, OpenCode via instruction files
34-
- **Open dataset**grounded canonical rows plus derived Qwen and encoder views
34+
- **27 tool types**trained on real SWE-bench workflows and synthetic multi-ecosystem outputs
3535
3636
## Links
3737
38+
- [Paper (arXiv:2604.04979)](https://arxiv.org/abs/2604.04979)
39+
- [Model (HuggingFace)](https://huggingface.co/KRLabsOrg/squeez-2b)
40+
- [Dataset (HuggingFace)](https://huggingface.co/datasets/KRLabsOrg/tool-output-extraction-swebench)
3841
- [GitHub](https://github.com/KRLabsOrg/squeez)
3942
- [PyPI](https://pypi.org/project/squeez/)
40-
- [HuggingFace Dataset](https://huggingface.co/datasets/KRLabsOrg/tool-output-extraction-swebench)
43+
- [Blog Post](blog.md)

0 commit comments

Comments
 (0)