Instructions to use Infosec-Consult/sage-memory-judge 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 Infosec-Consult/sage-memory-judge 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 Infosec-Consult/sage-memory-judge:Q8_0 # Run inference directly in the terminal: llama cli -hf Infosec-Consult/sage-memory-judge:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Infosec-Consult/sage-memory-judge:Q8_0 # Run inference directly in the terminal: llama cli -hf Infosec-Consult/sage-memory-judge:Q8_0
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 Infosec-Consult/sage-memory-judge:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf Infosec-Consult/sage-memory-judge:Q8_0
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 Infosec-Consult/sage-memory-judge:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf Infosec-Consult/sage-memory-judge:Q8_0
Use Docker
docker model run hf.co/Infosec-Consult/sage-memory-judge:Q8_0
- LM Studio
- Jan
- Ollama
How to use Infosec-Consult/sage-memory-judge with Ollama:
ollama run hf.co/Infosec-Consult/sage-memory-judge:Q8_0
- Unsloth Desktop
- Pi
How to use Infosec-Consult/sage-memory-judge with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Infosec-Consult/sage-memory-judge:Q8_0
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": "Infosec-Consult/sage-memory-judge:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Infosec-Consult/sage-memory-judge with Docker Model Runner:
docker model run hf.co/Infosec-Consult/sage-memory-judge:Q8_0
- Lemonade
How to use Infosec-Consult/sage-memory-judge with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Infosec-Consult/sage-memory-judge:Q8_0
Run and chat with the model
lemonade run user.sage-memory-judge-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use Infosec-Consult/sage-memory-judge with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Infosec-Consult/sage-memory-judge:Q8_0
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 Infosec-Consult/sage-memory-judge:Q8_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Infosec-Consult/sage-memory-judge with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Infosec-Consult/sage-memory-judge:Q8_0
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 "Infosec-Consult/sage-memory-judge:Q8_0" \ --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"
SAGE Memory Judge (v15)
A small (0.87B) local judge for SAGE's memory write-gate. It answers two yes/no questions about a proposed memory, read directly off one token's log-probabilities:
- Supported — is the memory's claim supported by the supplied evidence as stated (including its time frame, certainty, and the direction of any relation)?
- Lasting — should this be stored as long-term memory (a durable fact or standing rule), rather than a remark about the current session?
It runs entirely on the machine that hosts it (via Ollama) — no cloud inference, no external judge service. It is not a chat model; its only job is to return a calibrated Y/N probability for these checks.
Model
- Base: Qwen/Qwen3.5-0.8B (Apache-2.0), full fine-tune
- Format: GGUF, q8_0 —
sha256 714ff9324133ba3b7166fe82fa362226fae5574c4f9cfbc53c054248b16f2cfd - Runtime: Ollama (OpenAI-compatible endpoint), reads the first generated token's logprobs
- License: Apache-2.0
Use it
ollama create sage-memory-judge -f Modelfile
Modelfile:
FROM ./sage-judge-v15-q8_0.gguf
TEMPLATE {{ .Prompt }}
RENDERER qwen3.5
PARSER qwen3.5
Hard serving requirement — thinking must be OFF. The judge reads the first generated token as the
label, so the model must not think first. On Ollama's OpenAI-compatible /v1/chat/completions path, only
reasoning_effort: "none" disables thinking — think:false and chat_template_kwargs:{enable_thinking:false}
silently no-op there for this architecture. The native /api/chat path uses think:false instead. If thinking
is left on, the first token is a reasoning token and a correct reader fails closed (holds for review) on every
call — loud, not silent, but non-functional.
The probability is P(Y)/(P(Y)+P(N)) renormalised over the label mass at the first token. Typical gate bands:
accept ≥ 0.90, reject < 0.50, otherwise hold for human review. A first token that is not a label must be treated
as unavailable → hold, never a guessed score.
Evaluation
Measured once on the shippable GGUF (served by Ollama), on sets authored independently of the model and frozen by digest before measurement.
| Set | Result |
|---|---|
| Acceptance pairs (support) | AUROC 0.994, ECE 0.041, gate precision 1.000, 0 traps accepted |
| Acceptance pairs (lasting) | AUROC 0.999, ECE 0.088 |
| Held-out 160 (support look-alikes) | traps passed 0/80, genuine rejected 4/80, review 7/160 |
| Genuine-extension (202) | genuine accept 75.8% / review 21.1% / reject 3.1%, traps passed 2/41 |
| Reversed-relation (90) | asymmetric traps rejected 40/40, genuine twins accepted 38/40, symmetric twins 10/10 |
- CPU latency: ~297 ms (p50) per check (single token), ≈0.3–0.8 s per memory.
- Languages: trained and usable across 15 languages. A translation-based robustness probe shows traps controlled in all 15; genuine-acceptance is strong in most, with a heavier review burden in Hindi, Thai and Bengali (lower-resource scripts — the judge sends more genuine items to review there rather than accepting).
Limitations
- Converse-voice edge: a small number of genuine passive-voice restatements ("A is outranked by B" vs "B outranks A") are over-sent to review; one confusable shape ("leases to/from") is the residual.
- Reversed-relation is validated at the class level, not per relation shape.
- Lower-resource languages (Hindi, Thai, Bengali) are the least reliable; the per-language figures come from a translation-based probe with small per-language samples, so treat them as indicative. An independently-authored multilingual acceptance set is the way to make them precise before broad reliance.
- It checks support against caller-supplied evidence; it does not authenticate the source.
Provenance
Distilled from larger instruct models using soft (probability) labels on synthetic, de-duplicated training data; the training data and the teacher models are not part of this release. Evaluation sets were written by an independent author, verified independently (structural + non-reuse checks + hand-reading of the ambiguous slices), frozen by published digest, and measured one-shot. The reader shipped with SAGE (a Go port) is checked in CI to return probabilities identical to the reference reader that produced these numbers.
- Downloads last month
- 83
8-bit