OPNsense Agent — Qwen2.5-3B LoRA

Fine-tune de Qwen/Qwen2.5-3B-Instruct entraîné pour agir comme agent-outil Firewall OPNsense dans une architecture multi-agents IA pour la cybersécurité.

L'agent reçoit des paquets CAP v1 (Coordinator-Agent Packet) depuis un coordinateur LLM et génère des tool_calls précis.


Architecture

Coordinateur (LLM)
      │  CAP v1 JSON
      ▼
Agent Firewall OPNsense (ce modèle)
      │  tool_call JSON
      ▼
API équipement

Fonctions supportées (102 au total)

Domaine Fonctions
Règles firewall add_filter_rule, del_filter_rule, set_filter_rule, toggle_filter_rule, move_filter_rule, get_filter_rule
Alias add_alias, del_alias, set_alias, get_alias, add_to_alias, delete_from_alias, flush_alias, list_alias_content, find_alias_references, import_alias
NAT add_nat_outbound, del_nat_outbound, add_nat_port_forward, add_nat_one_to_one, del_nat_one_to_one
Diagnostics get_firewall_log, get_firewall_states, kill_firewall_states, flush_firewall_states, get_firewall_statistics, get_rule_statistics, get_system_status, ping_host, traceroute_host, port_probe
Configuration apply_firewall_changes, revert_firewall_changes, cancel_firewall_rollback, create_firewall_savepoint, list_restore_points, revert_to_restore_point, create_restore_point, backup_configuration, get_interface_list
DNS / DHCP add_dns_override, list_dns_overrides, del_dns_override, manage_dns_blocklist, search_dns_queries, get_dhcp_leases, add_static_mapping
IDS (Suricata) get_ids_status, query_ids_alerts, toggle_ids_rule, list_ids_rulesets, toggle_ids_ruleset, update_ids_rules, start_ids, stop_ids, restart_ids
Traffic shaping get_traffic_statistics, list_traffic_pipes, add_traffic_pipe, del_traffic_pipe, list_traffic_queues, add_traffic_queue, del_traffic_queue, list_traffic_rules, add_traffic_rule, del_traffic_rule, apply_traffic_changes
ACME / TLS get_acme_status, list_acme_certificates, sign_acme_certificate, update_acme_certificate, revoke_acme_certificate, list_acme_accounts
IPsec get_ipsec_status, list_ipsec_connections, toggle_ipsec_connection, list_ipsec_sessions, connect_ipsec_session, disconnect_ipsec_session
OpenVPN list_openvpn_instances, toggle_openvpn_instance, list_openvpn_sessions, kill_openvpn_session
Monit / Cron get_monit_status, restart_monit_service, schedule_cron_job, toggle_cron_job, get_cron_jobs
Divers block_ip, unblock_ip, list_categories, add_category, del_category, list_geoip_countries, get_geoip_database, update_bogons, check_updates, get_upgrade_status, upgrade_firmware

Performance

Benchmark Score
Vérification fonctionnelle (format CAP v1) 102/102 (100%)

Utilisation

Avec vLLM (multi-LoRA)

from vllm import LLM, SamplingParams
from vllm.lora.request import LoRARequest

llm = LLM(model="Qwen/Qwen2.5-3B-Instruct", enable_lora=True)
params = SamplingParams(temperature=0.1, max_tokens=256)

cap_packet = '{"directive": "block_ip", "entities": {"IP_ADDRESS": ["203.0.113.42"], "INTERFACE": ["wan"]}, "args": {}, "context": {"source": "coordinator", "confidence": 0.97}}'

outputs = llm.generate(
    cap_packet,
    params,
    lora_request=LoRARequest("opnsense-qwen25-lora", 1, "path/to/adapter")
)
print(outputs[0].outputs[0].text)

System prompt :

Tu es un agent OPNsense. Tu reçois des directives structurées du coordinateur sous forme de paquets JSON (format CAP v1 : directive + entities + args) et tu génères des appels d'API précis sous forme de tool_calls. Tu ne réponds jamais en langage naturel — uniquement des tool_calls.

Avec Ollama (GGUF)

ollama run hf.co/patlegu/opnsense-qwen25-lora

Détails d'entraînement

Paramètre Valeur
Base model Qwen/Qwen2.5-3B-Instruct
LoRA rank / alpha 64 / 128
Dataset 13701 exemples (format CAP v1)
Epochs 3
Learning rate 2e-4 (cosine)
Final loss 0.2532
Date 2026-03-15
Framework Unsloth + HuggingFace TRL

Contexte

Modèle produit par cyber-agent-engine — système multi-agents IA pour l'automatisation réseau et la sécurité.

Le coordinateur décompose les requêtes en langage naturel et délègue l'exécution à des agents-outils spécialisés (OPNsense, WireGuard, CrowdSec), chacun piloté par un LoRA fine-tuné sur GPU local (RTX 4070 Ti).


Limitations

  • Conçu pour être appelé par un coordinateur, pas directement par un humain
  • Requiert le format CAP v1 — les requêtes en langage naturel libre donnent des résultats dégradés

Licence

Apache 2.0

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for patlegu/opnsense-qwen25-lora

Base model

Qwen/Qwen2.5-3B
Adapter
(1126)
this model