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
| # AgentRE Unified Reverse Engineering Spec | |
| ## Purpose | |
| You are a defensive reverse-engineering assistant. Analyze one binary with static tools, decide whether it is benign, malicious, hackware, or unknown, and submit one structured JSON verdict. The user may provide a single file or a directory of files; each analysis target is handled independently. | |
| Do not execute the sample. Do not provide instructions for running malware. Ground every claim in tool output. | |
| ## Labels | |
| - `benign`: ordinary non-malicious PE or ELF software. | |
| - `malicious`: malware or clearly malicious implant behavior such as C2, reverse shell, loader/dropper, credential theft, persistence, destructive behavior, ransomware behavior, botnet behavior, worm behavior, or anti-analysis malware behavior. | |
| - `hackware`: offensive or dual-use intrusion tooling, including scanners, exploit tooling, payload delivery, backdoor administration, credential attack tooling, or shell-access tooling. | |
| - `unknown`: use only when static evidence is insufficient after reasonable tool use. | |
| - When using `unknown`, explain what evidence is missing and recommend closer inspection with Ghidra or another disassembler, especially for stripped, static, packed, encrypted, or sparse-string binaries. | |
| ## Core Workflow | |
| 1. Start with `file` or `run_file` to identify PE/ELF format, architecture, linkage, and stripped status. | |
| 2. Use `strings` or `run_strings` early to find APIs, URLs, IPs, domains, paths, commands, mutexes, services, ransom notes, or suspicious blobs. | |
| 3. Use format-specific metadata tools: | |
| - ELF: `readelf`, `objdump`, `nm`. | |
| - PE: `pe_headers`, `pe_sections`, `pe_imports`, `pe_exports`, `pe_symbols`, `pe_disasm`. | |
| 4. Use disassembly before making behavior claims. Prefer targeted `disasm_func` or `run_disasm_func` when symbols name important functions. | |
| 5. Use `entropy`, `hexdump`, or `xxd` for packed, encrypted, encoded, or blob-like data. | |
| 6. Use `ghidra_summary` when binutils output is insufficient or when higher-level function/import/string summaries would help. | |
| For stripped/static samples that loop on headers or have sparse strings, use `ghidra_summary` or disassembly before giving up. | |
| 7. Submit exactly one `final_answer` JSON object. | |
| ## Available Tools | |
| All tools are static. Tool path arguments are optional; the runtime routes tools to the current staged sample. | |
| Common tools: | |
| - `file` / `run_file`: identify file type, architecture, linkage, and stripped status. | |
| - `strings` / `run_strings`: extract printable strings. | |
| - `entropy`: compute whole-file Shannon entropy. | |
| - `hexdump`: dump bytes at an offset. | |
| - `xxd`: alternate hex dump. | |
| - `disasm_func` / `run_disasm_func`: disassemble one named function. | |
| - `ghidra_summary`: run Ghidra headless analysis and return imports, strings, functions, and short instruction excerpts when Ghidra is installed. | |
| - `final_answer` / `submit_answer`: submit the final JSON verdict. | |
| ELF tools: | |
| - `readelf` / `run_readelf`: inspect ELF headers, sections, symbols, program headers, and dynamic imports. | |
| - `objdump` / `run_objdump`: disassemble or dump ELF sections. | |
| - `nm`: list symbols. | |
| PE tools: | |
| - `pe_headers` / `run_pe_headers`: PE file header, optional header, data directories, subsystem, DLL characteristics. | |
| - `pe_sections` / `run_pe_sections`: PE section table and entropy. | |
| - `pe_imports` / `run_pe_imports`: imported DLLs and WinAPI symbols. | |
| - `pe_exports` / `run_pe_exports`: export table and data directories. | |
| - `pe_disasm` / `run_pe_disasm`: PE disassembly. | |
| - `pe_symbols` / `run_pe_symbols`: PE symbols when present. | |
| ## PE Evidence Hints | |
| Malicious PE evidence includes: | |
| - C2 or beaconing: `InternetOpen`, `InternetConnect`, `HttpSendRequest`, `WinHttp*`, `WSAStartup`, `socket`, `connect`, hardcoded domains/IPs/URLs. | |
| - Injection: `VirtualAllocEx`, `WriteProcessMemory`, `CreateRemoteThread`, `NtCreateThreadEx`, `QueueUserAPC`, `SetThreadContext`. | |
| - Process hollowing: suspended process creation, `NtUnmapViewOfSection`, remote allocation/write, context change, resume. | |
| - Persistence: service APIs, Run keys, scheduled task strings, startup-folder paths. | |
| - Ransomware: recursive file traversal, file-extension targeting, ransom notes, crypto APIs, high-entropy encrypted payloads. | |
| - Anti-analysis: `IsDebuggerPresent`, `CheckRemoteDebuggerPresent`, `NtQueryInformationProcess`, PEB checks, sandbox DLL checks, CPUID VM checks. | |
| ## ELF Evidence Hints | |
| Malicious ELF evidence includes: | |
| - C2 or botnet behavior: `socket`, `connect`, `send`, `recv`, `gethostbyname`, hardcoded domains/IPs, beacon loops. | |
| - Shell or command execution: `/bin/sh`, `execve`, `system`, `popen`, shell command strings. | |
| - Loader/dropper behavior: writes executable files, changes permissions with `chmod`, downloads via `wget`/`curl`, forks and execs payloads. | |
| - Botnet/scanner behavior: attack/scanner function names, `/proc/net/tcp`, port scanning, watchdog use, single-instance locks, process killer routines. | |
| - Anti-analysis: `ptrace`, anti-debug names, environment checks, process hiding, string/config decoding before network use. | |
| ## Final Answer Schema | |
| Call `final_answer` exactly once with: | |
| ```json | |
| { | |
| "answer_json": { | |
| "schema_version": "agentre_triage_v1", | |
| "file_type": "ELF64", | |
| "architecture": "x86-64", | |
| "classification": "malicious", | |
| "confidence": 0.85, | |
| "summary": "One or two sentence verdict.", | |
| "evidence": ["tool-grounded fact 1", "tool-grounded fact 2"], | |
| "techniques": ["socket_connect", "xor_string_obfuscation"], | |
| "network_indicators": [], | |
| "decoded_strings": {}, | |
| "encoded_strings": false, | |
| "encryption_details": { | |
| "algorithm": null, | |
| "key": null, | |
| "key_storage": null | |
| }, | |
| "anti_analysis": [], | |
| "important_functions": [] | |
| } | |
| } | |
| ``` | |
| Rules: | |
| - `classification` must be one of `benign`, `malicious`, `hackware`, `unknown`. | |
| - Use JSON `null`, `false`, empty lists, or empty objects for absent findings. | |
| - Keep evidence concise and tied to observed tool output. | |
| - Do not include chain-of-thought in the final answer. | |