Nexus Swarm — Triage Agent (SFT)
Role: Request classifier and router for the NEXUS Swarm v4a-max distributed offensive security system.
This is a LoRA adapter fine-tuned on Qwen/Qwen3.5-0.8B via supervised fine-tuning (SFT). It is the first training stage for the triage role — the next stage is GRPO reinforcement learning.
Swarm Role
The triage agent is the entry point for the NEXUS swarm. It classifies incoming requests and routes them to the correct swarm node. It runs on an RK3588 NPU (6 TOPS) on the Orange Pi 5 Plus.
Input: Any user request
Output: JSON classification — {"category": "...", "route": "...", "confidence": 0.0-1.0}
Categories: recon, exploit, code-review, report, admin, unknown
Routing Rules:
| Pattern | Route |
|---|---|
| Complex multi-step tasks | nexus-orchestrator |
| Simple single-tool tasks (scan, edit, run) | nexus-worker |
| Search, read, classify tasks | nexus-explore |
| Unsure | nexus-orchestrator (fallback) |
Training Details
| Parameter | Value |
|---|---|
| Base model | Qwen/Qwen3.5-0.8B |
| Method | SFT with LoRA (PEFT) |
| Dataset | atlas-institute/code-trainer-v11-triage |
| Training rows | 5,000 |
| Epochs | 3 |
| Max sequence length | 512 |
| LoRA rank / alpha | 16 / 32 |
| LoRA dropout | 0.05 |
| Learning rate | 2e-4 |
| Batch size | 4 |
| Gradient accumulation | 4 (effective batch = 16) |
| Precision | BF16 |
| Hardware | NVIDIA A100 80 GB (HuggingFace Jobs) |
| Framework | TRL + PEFT 0.19.1 |
Validation Gate
- Routing accuracy ≥ 0.85
Pipeline Chain
Qwen/Qwen3.5-0.8B
└─ SFT → atlas-institute/qwen35-08b-triage-sft ← you are here
└─ GRPO → atlas-institute/qwen35-08b-triage-grpo
└─ RKLLM → w8a8 for RK3588 NPU
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3.5-0.8B", torch_dtype="bfloat16", device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "atlas-institute/qwen35-08b-triage-sft")
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-0.8B")
messages = [{"role": "user", "content": "Run nmap against 10.10.10.1 and report open ports"}]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device)
outputs = model.generate(inputs, max_new_tokens=64)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
# Expected: {"category": "recon", "route": "nexus-worker", "confidence": 0.95}
Swarm Topology
| Node | GPU | Role | Model |
|---|---|---|---|
| nexus-k1 | RTX 5060 Ti 16 GB | Orchestrator | Qwen3-14B Q4_K_M |
| nexus-control | RTX 3070 8 GB | Worker | Qwen3-8B Q4_K_M |
| nexus-3060 | RTX 3060 6 GB | Explore | Gemma-3-4B-it Q8_0 |
| nexus-opi5p | RK3588 NPU 6 TOPS | Triage | Qwen3.5-0.8B w8a8 |
| nexus-opi5b | RK3588S ARM | Embeddings | — |
Developed By
Atlas Institute — Code-Trainer / RTPI pipeline