Text Generation
GGUF
English
llama.cpp
qwen
qwen3
qwen3.5
cybersecurity
malware-analysis
reverse-engineering
pe
elf
ghidra
agent
research
conversational
Instructions to use AgentreBench/xref-9b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use AgentreBench/xref-9b with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="AgentreBench/xref-9b", filename="xref-9b-f16.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use AgentreBench/xref-9b 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 AgentreBench/xref-9b:F16 # Run inference directly in the terminal: llama cli -hf AgentreBench/xref-9b:F16
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf AgentreBench/xref-9b:F16 # Run inference directly in the terminal: llama cli -hf AgentreBench/xref-9b:F16
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 AgentreBench/xref-9b:F16 # Run inference directly in the terminal: ./llama-cli -hf AgentreBench/xref-9b:F16
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 AgentreBench/xref-9b:F16 # Run inference directly in the terminal: ./build/bin/llama-cli -hf AgentreBench/xref-9b:F16
Use Docker
docker model run hf.co/AgentreBench/xref-9b:F16
- LM Studio
- Jan
- vLLM
How to use AgentreBench/xref-9b with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "AgentreBench/xref-9b" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "AgentreBench/xref-9b", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/AgentreBench/xref-9b:F16
- Ollama
How to use AgentreBench/xref-9b with Ollama:
ollama run hf.co/AgentreBench/xref-9b:F16
- Unsloth Studio
How to use AgentreBench/xref-9b with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for AgentreBench/xref-9b to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for AgentreBench/xref-9b to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for AgentreBench/xref-9b to start chatting
- Pi
How to use AgentreBench/xref-9b with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AgentreBench/xref-9b:F16
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "AgentreBench/xref-9b:F16" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use AgentreBench/xref-9b with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AgentreBench/xref-9b:F16
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 AgentreBench/xref-9b:F16
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use AgentreBench/xref-9b with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf AgentreBench/xref-9b:F16
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 "AgentreBench/xref-9b:F16" \ --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"
- Docker Model Runner
How to use AgentreBench/xref-9b with Docker Model Runner:
docker model run hf.co/AgentreBench/xref-9b:F16
- Lemonade
How to use AgentreBench/xref-9b with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull AgentreBench/xref-9b:F16
Run and chat with the model
lemonade run user.xref-9b-F16
List all available models
lemonade list
| // Static Ghidra headless summary script for AgentRE. | |
| // Usage from analyzeHeadless: | |
| // -postScript AgentRESummary.java /path/to/output.txt | |
| import ghidra.app.script.GhidraScript; | |
| import ghidra.program.model.address.Address; | |
| import ghidra.program.model.listing.Data; | |
| import ghidra.program.model.listing.DataIterator; | |
| import ghidra.program.model.listing.Function; | |
| import ghidra.program.model.listing.FunctionIterator; | |
| import ghidra.program.model.listing.Instruction; | |
| import ghidra.program.model.listing.InstructionIterator; | |
| import ghidra.program.model.listing.Listing; | |
| import ghidra.program.model.mem.MemoryBlock; | |
| import ghidra.program.model.symbol.Symbol; | |
| import ghidra.program.model.symbol.SymbolIterator; | |
| import java.io.File; | |
| import java.io.FileWriter; | |
| import java.io.PrintWriter; | |
| public class AgentRESummary extends GhidraScript { | |
| private String clean(String s) { | |
| if (s == null) { | |
| return ""; | |
| } | |
| s = s.replace('\n', ' ').replace('\r', ' '); | |
| if (s.length() > 240) { | |
| return s.substring(0, 240) + "..."; | |
| } | |
| return s; | |
| } | |
| public void run() throws Exception { | |
| String[] args = getScriptArgs(); | |
| if (args.length < 1) { | |
| println("AgentRESummary requires an output path argument"); | |
| return; | |
| } | |
| File outFile = new File(args[0]); | |
| try (PrintWriter out = new PrintWriter(new FileWriter(outFile))) { | |
| Listing listing = currentProgram.getListing(); | |
| out.println("== Program =="); | |
| out.println("name: " + currentProgram.getName()); | |
| out.println("format: " + currentProgram.getExecutableFormat()); | |
| out.println("language: " + currentProgram.getLanguageID()); | |
| out.println("compiler: " + currentProgram.getCompilerSpec().getCompilerSpecID()); | |
| out.println("image_base: " + currentProgram.getImageBase()); | |
| out.println(); | |
| out.println("== Memory Blocks =="); | |
| for (MemoryBlock block : currentProgram.getMemory().getBlocks()) { | |
| out.println(block.getName() | |
| + " start=" + block.getStart() | |
| + " end=" + block.getEnd() | |
| + " size=" + block.getSize() | |
| + " r=" + block.isRead() | |
| + " w=" + block.isWrite() | |
| + " x=" + block.isExecute()); | |
| } | |
| out.println(); | |
| out.println("== External Symbols / Imports =="); | |
| int count = 0; | |
| SymbolIterator symbols = currentProgram.getSymbolTable().getExternalSymbols(); | |
| while (symbols.hasNext() && count < 600) { | |
| Symbol sym = symbols.next(); | |
| out.println(sym.getName(true)); | |
| count++; | |
| } | |
| if (count >= 600) { | |
| out.println("[truncated imports at 600]"); | |
| } | |
| out.println(); | |
| out.println("== Strings =="); | |
| count = 0; | |
| DataIterator data = listing.getDefinedData(true); | |
| while (data.hasNext() && count < 500) { | |
| Data d = data.next(); | |
| Object value = null; | |
| try { | |
| value = d.getValue(); | |
| } catch (Throwable ignored) { | |
| value = null; | |
| } | |
| if (value instanceof String) { | |
| String text = clean((String) value); | |
| if (text.length() >= 4) { | |
| out.println(d.getAddress() + " " + text); | |
| count++; | |
| } | |
| } | |
| } | |
| if (count >= 500) { | |
| out.println("[truncated strings at 500]"); | |
| } | |
| out.println(); | |
| out.println("== Functions =="); | |
| count = 0; | |
| FunctionIterator funcs = listing.getFunctions(true); | |
| while (funcs.hasNext() && count < 220) { | |
| Function f = funcs.next(); | |
| out.println(f.getEntryPoint() + " " + f.getName(true)); | |
| count++; | |
| } | |
| if (count >= 220) { | |
| out.println("[truncated functions at 220]"); | |
| } | |
| out.println(); | |
| out.println("== Function Instruction Excerpts =="); | |
| int funcsPrinted = 0; | |
| funcs = listing.getFunctions(true); | |
| while (funcs.hasNext() && funcsPrinted < 40) { | |
| Function f = funcs.next(); | |
| String name = f.getName(true).toLowerCase(); | |
| boolean interesting = name.contains("main") | |
| || name.contains("connect") | |
| || name.contains("socket") | |
| || name.contains("send") | |
| || name.contains("recv") | |
| || name.contains("exec") | |
| || name.contains("crypt") | |
| || name.contains("decrypt") | |
| || name.contains("attack") | |
| || name.contains("scan") | |
| || name.contains("loader") | |
| || name.contains("start"); | |
| if (!interesting && funcsPrinted >= 12) { | |
| continue; | |
| } | |
| out.println(); | |
| out.println("-- " + f.getEntryPoint() + " " + f.getName(true) + " --"); | |
| InstructionIterator instrs = listing.getInstructions(f.getBody(), true); | |
| int insnCount = 0; | |
| while (instrs.hasNext() && insnCount < 45) { | |
| Instruction insn = instrs.next(); | |
| Address addr = insn.getAddress(); | |
| out.println(" " + addr + " " + insn.toString()); | |
| insnCount++; | |
| } | |
| funcsPrinted++; | |
| } | |
| } | |
| println("AgentRE summary written to " + outFile.getAbsolutePath()); | |
| } | |
| } | |