erkanrzgc/octopus

GitHub: erkanrzgc/octopus

面向网络安全的 Agentic 大语言模型,能够生成结构化工具调用并在授权网关控制下执行真实的安全工具操作。

Stars: 0 | Forks: 0

Octópus logo # Octópus ### 面向网络安全的 Agentic LLM ##### _红队 · 蓝队 · 网络 · Linux — 授权网关背后的 Agentic 工具调用。_
[![版本](https://img.shields.io/badge/version-v0.8.1-orange?style=for-the-badge)](https://github.com/erkanrzgc/octopus) [![权重](https://img.shields.io/badge/🤗%20weights-on%20Hugging%20Face-FFD21E?style=for-the-badge)](https://huggingface.co/erkanrzgcc/octopus-gemma-v0.8.1) [![运行时](https://img.shields.io/badge/runtime-agentic%20tool--use-8B5CF6?style=for-the-badge)](#-agent-harness) [![许可证](https://img.shields.io/badge/license-MIT%20%2B%20model%20terms-3DA639?style=for-the-badge)](#-license) ![Python](https://img.shields.io/badge/Python-3.14-3776AB?style=flat-square&logo=python&logoColor=white) ![PyTorch](https://img.shields.io/badge/PyTorch-2.4-EE4C2C?style=flat-square&logo=pytorch&logoColor=white) ![Transformers](https://img.shields.io/badge/🤗%20Transformers-4.49-FFD21E?style=flat-square) ![PEFT](https://img.shields.io/badge/PEFT-LoRA%20bf16-00A98F?style=flat-square) ![测试](https://img.shields.io/badge/tests-213%20passing-3DA639?style=flat-square) ![用途](https://img.shields.io/badge/use-authorized%2Flab--only-critical?style=flat-square)
## 📖 关于 **Octópus** 是一个面向**网络安全**的 agentic 语言模型。它不仅仅用于回答问题,还会输出结构化的工具调用, 交由运行时在真实的安防工具上执行——且始终处于**授权网关**的控制之下。它涵盖了**红队**(侦查、漏洞利用) 和**蓝队**(检测、加固、应急响应),横跨**网络和 Linux** 领域,并在设计上具备**授权感知**能力。 它在强大的开源 9B 基座模型上使用 **bf16 LoRA** 进行了 fine-tuning,在保留其安全知识的同时,赋予了其 流利且优雅的**土耳其语**能力。它自称 **"Ben Octópus"** ——带点的 `ó` 仅存在于品牌名称和模型的对话中; 文件路径仍保持纯 ASCII 字符 `octopus`。 ## ✨ 特性 - 🛠️ **Agentic 工具调用** — 一个包含 **117 个工具**的目录(`nmap`, `sqlmap`, `metasploit`, `bloodhound` 等), 配备结构化的调用格式,以及一个在策略网关控制下运行这些工具的运行时。 - 🔴🔵 **红队 + 蓝队** — 单一模型兼顾攻防,从渗透测试到应急响应。 - 🛡️ **授权感知** — 仅限实验室 / CTF / 拥有所有权的系统;拒绝未经授权的请求,并提供合乎伦理的替代方案。 - 🇹🇷 **流利的土耳其语** — 接近母语级别的行文;命令、代码和 CVE ID 均原样保留。 ## 🏗️ 架构 包含两大部分:**模型**(大脑——负责生成文本和结构化的工具调用)以及 **agent harness** (双手——负责解析这些调用,并在策略网关背后运行真实的工具)。 ``` security + Turkish SFT data (distilled Q&A + 117-tool use) │ build_sft.py (normalize · persona · dedup · split) ▼ open 9B base ──(bf16 LoRA, r=32)──▶ Octópus │ ▼ ┌──────────────────────── agent harness ─────────────────────────┐ │ model text ──▶ parse ```arac``` block ──▶ policy gate (lab-only) │ │ ▲ │ │ │ │ feed result back ◀── executor (mock | Kali | docker) └──────────────────────────────────────────────────────────────────┘ ``` ## 🤖 Agent Harness 模型本身不直接运行工具——它输出结构化的调用,然后由 harness 执行: ``` model emits ```arac {"arac":"nmap","parametreler":{…}} ``` → parse → policy gate (authorized scope? risk level?) → executor runs the real tool → result fed back as a tool message → model interprets and continues. ``` 执行器在统一接口下实现了可插拔,且每一次调用都会经过一个 **fail-closed**(默认拒绝)的授权网关 (仅限实验室范围、基于不同工具的风险等级),并记录到审计日志中: - **Mock** — 逼真的模拟输出;可在任何地方运行,零风险(默认)。 - **Real** — Kali (WSL2) 内的真实工具,`shell=False` argv,设有超时机制。 - **Docker** — 在隔离的实验网络中以 container 形式运行的工具。 ``` uv run python -m agent.cli # mock end-to-end demo (runs anywhere) uv run python -m agent.cli --gguf # real Octópus via Ollama uv run python -m agent.cli --gguf --docker # real model + real tool in an isolated lab ``` ## 🧠 模型与训练 | | | |---|---| | **基座** | `Turkish-Gemma-9b` — 一个强大的土耳其语原生开源基座模型 | | **方法** | bf16 LoRA (`r=32`, `α=32`, 7 个目标模块) — **不使用 4-bit**(它会破坏合并后的基座模型) | | **引擎** | 纯 `transformers` + `peft` + TRL | | **硬件** | RunPod · 单张 24–48 GB GPU · 锁定 `transformers/trl/peft` 版本 | | **数据** | 土耳其语安全问答 + 117 个工具的 agentic 调用 + 推理/人设种子数据 | **为什么选择 bf16 LoRA,而不是 QLoRA?** 基座模型经历了持续预训练 + SFT + DPO + **合并**的历史过程;常见的 4-bit (NF4) 量化会破坏这些合并后的权重,并产生混乱的多语言垃圾输出。在纯 `bf16` 精度下, 相同的模型能保持完美无损——因此我们以 bf16 格式加载基座模型,并在其上训练 LoRA。 详见 [ADR 0003](docs/decisions/0003-pivot-to-turkish-gemma-bf16.md)。 ## 📦 模型权重 每个版本都会发布 **LoRA adapter** 以及可直接运行的 **GGUF** 量化版本,用于本地推理。 | 发布版本 | Hugging Face | 备注 | |---|---|---| | **v0.8.1** _(当前)_ | 🤗 [`octopus-gemma-v0.8.1`](https://huggingface.co/erkanrzgcc/octopus-gemma-v0.8.1) | adapter + GGUF Q4 | | **v0.9** _(评估中)_ | 🤗 [`octopus-gemma-v0.9`](https://huggingface.co/erkanrzgcc/octopus-gemma-v0.9) | adapter + GGUF Q4 & Q8 | ``` # 拉取 GGUF 并通过 Ollama 本地运行 hf download erkanrzgcc/octopus-gemma-v0.8.1 octopus-v81-Q4_K_M.gguf --local-dir models ollama create octopus-v81 -f models/Modelfile.v81 ollama run octopus-v81 "Merhaba, kendini tanıt." ``` ## 📊 统计数据 | | | |---|---| | 🛠️ 工具目录 | **117** 个工具 | | 📚 SFT 样本 | **3,500+** | | ✅ 测试套件 | **213** 个通过 | | 🎯 工具调用输出 | **100%** 有效 · **96%** 命中目录内工具 | | 📉 最终训练 loss | **≈ 0.29** | | 🐙 人设验证 | **6 / 6** | ## 📂 仓库布局 | 路径 | 职责 | |---|---| | `agent/` | Harness:工具调用解析器、117 个工具目录、策略网关、执行器、运行循环。 | | `data/sft/` | SFT 数据 pipeline:标准化为 `messages`,注入人设,去重,拆分。 | | `train/` | 标准的 bf16 LoRA 训练。 | | `eval/` | 工具调用和技术正确性评估。 | | `rag/` | 用于检索增强(RAG)的基础网络安全知识库。 | | `cloud/` | RunPod 运行手册与 GGUF 转换方案。 | | `docs/` | 架构决策记录 (ADR) 与设计规范。 | | `tests/` | 单元测试与数据格式测试(213 个通过)。 | ## 🔒 负责任的使用 Octópus 传授攻击技术是为了**加强防御**并支持**经授权的**测试。它仅协助操作者对明确获得授权 的系统进行测试,并**拒绝**针对未经授权的真实目标实施攻击步骤——它会明确拒绝并提供防御性的 替代方案。**严禁**将其用于未经授权的访问或造成破坏;所有责任由用户自行承担。 ## 👤 作者 **Erkan** ([@erkanrzgc](https://github.com/erkanrzgc)) — 致力于构建本地优先 AI 的合乎伦理的安全爱好者。 Octópus 是一份透明且完整的记录,展示了从零开始设计、fine-tune 以及评估一个网络安全 助手的整个过程。 ## 📜 许可证 - **代码** — MIT(本仓库中的脚本、pipeline 和文档)。 - **权重与 adapter** — 受基座模型的 [使用条款](https://ai.google.dev/gemma/terms)约束;仅限授权 / 合乎伦理的使用。
Octópus — 一个 agentic 网络安全助手。仅限授权使用。🐙
标签:AI风险缓解, DLL 劫持, LLM智能体, 人工智能, 凭据扫描, 大语言模型, 实时告警, 插件系统, 用户模式Hook绕过, 网络安全, 请求拦截, 逆向工具, 隐私保护