CoolFace
Modelpublic

patlegu/opnsense-qwen25-lora

sourceHugging Faceapache-2.0updated 7mo agoView on Hugging Face
0likes
Model Card

OPNsense Agent — Qwen2.5-3B LoRA

Fine-tune de [Qwen/Qwen2.5-3B-Instruct](https://huggingface.co/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)

DomaineFonctions
Règles firewalladd_filter_rule, del_filter_rule, set_filter_rule, toggle_filter_rule, move_filter_rule, get_filter_rule
Aliasadd_alias, del_alias, set_alias, get_alias, add_to_alias, delete_from_alias, flush_alias, list_alias_content, find_alias_references, import_alias
NATadd_nat_outbound, del_nat_outbound, add_nat_port_forward, add_nat_one_to_one, del_nat_one_to_one
Diagnosticsget_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
Configurationapply_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 / DHCPadd_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 shapingget_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 / TLSget_acme_status, list_acme_certificates, sign_acme_certificate, update_acme_certificate, revoke_acme_certificate, list_acme_accounts
IPsecget_ipsec_status, list_ipsec_connections, toggle_ipsec_connection, list_ipsec_sessions, connect_ipsec_session, disconnect_ipsec_session
OpenVPNlist_openvpn_instances, toggle_openvpn_instance, list_openvpn_sessions, kill_openvpn_session
Monit / Cronget_monit_status, restart_monit_service, schedule_cron_job, toggle_cron_job, get_cron_jobs
Diversblock_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

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

Utilisation

Avec vLLM (multi-LoRA)

python
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)

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

Détails d'entraînement

ParamètreValeur
Base modelQwen/Qwen2.5-3B-Instruct
LoRA rank / alpha64 / 128
Dataset13701 exemples (format CAP v1)
Epochs3
Learning rate2e-4 (cosine)
Final loss0.2532
Date2026-03-15
FrameworkUnsloth + 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