Introduction
This model is a Hermes-native agentic pentest profile based on DeepSeek-V4-Flash-FFT-model for supervised, authorised penetration tests — from reconnaissance through safe exploit validation to reporting.
It uses Hermes' built-in toolsets, three routed skills, and the required violin-guard plugin at the target-execution boundary. The standalone CLI supports release checks, diagnostics, and administrative recovery;
target commands run through the plugin. Violin adds no profile-specific credentials and inherits the provider and tool backends already configured in Hermes.
Notes:
- For the Code Agent tasks among the public benchmarks above, DeepSeek-V4-Flash-0731 is evaluated with the minimal mode of DeepSeek Harness (to be released) as the agent framework, using the
max reasoning effort level with temperature = 1.0, top_p = 0.95.
- † DSBench-FullStack is an internal full-stack development test set; DSBench-Hard is an internal test set of difficult coding-agent problems.
Features
Chat
from encoding_dsv4 import encode_messages, parse_message_from_completion_text
messages = [
{"role": "user", "content": "hello"},
{"role": "assistant", "content": "Hello! I am DeepSeek.", "reasoning_content": "thinking..."},
{"role": "user", "content": "1+1=?"}
]
prompt = encode_messages(messages, thinking_mode="thinking", reasoning_effort="max")
import transformers
tokenizer = transformers.AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V4-Flash-0731")
tokens = tokenizer.encode(prompt)
Local tests
How to Run Locally
For local deployment, I recommend setting the sampling parameters to temperature = 1.0, with top_p = 0.95 for agentic scenarios and top_p = 1.0 otherwise. For the high and max reasoning effort levels, we recommend a maximum output length of 384K tokens.
License
This repository and the model weights are licensed under the MIT License.
- Hermes Agent >= 0.18.0 — installed and on your PATH
- Hermes provider configured — Violin inherits your normal Hermes provider/model
- Kali Linux or Parrot OS — the primary execution environments; Docker Kali is the supported fallback when the host lacks pentest tools
- Optional web/browser backend — required only for Hermes web or browser capabilities; Violin does not add separate API credentials
hermes profile use violin
Engagement Workflow
Table with columns: Phase, Action, Safety Gate| Phase | Action | Safety Gate |
|---|
| 1. Scoping | 9 questions via clarify | User approval |
| 2. Reconnaissance | Passive OSINT → tech detection → active scanning | Guard + approval |
| 3. Vuln Research | CVE lookup, exploit search, attack surface analysis | Guard check |
| 4. Exploitation | Safe PoC validation per vulnerability class | Guard + user approval |
| 5. Reporting | Evidence compilation, CVSS scoring, remediation |
11 toolsets configured in config.yaml (platform_toolsets.cli): 10 built-in — terminal, web, browser, file, code_execution, skills, todo, clarify, delegation, vision — plus the violin_guard guard-plugin toolset.
Conversation & Memory Isolation
memory.memory_enabled: false — no global memory recall/write
memory.user_profile_enabled: false — no global user profile access
- Engagement continuity lives in project files (scope docs, evidence, reports)
- Keep one Hermes conversation per engagement; after compression, resume in that conversation from
$ENG_DIR/state/
- Authorised testing only — no probing before scoping is complete
- Approval gates — scope, active recon, and exploitation each require explicit user approval
- Guard check — every target-touching command validated through
violin_exec or another typed guard tool. violin_exec has no binary allowlist, so any installed non-interactive Kali/Parrot CLI tool can target the explicit in-scope host while the same scope, phase, PTT, hypothesis, history, evidence, timeout, and sync gates remain active. Violin's pre_tool_call plugin hook generically blocks target literals in raw terminal commands instead of maintaining a partial tool-name list. The CLI exposes the same check for diagnostics (exit 0=allowed, 1=blocked, 2=review)
- Non-destructive by default — exploitation limited to safe, reproducible PoC
- Evidence-first — every finding backed by reproducible tool output, screenshots, request/response pairs
- Exploit-first validation — no hypothesis advances to Validated without a verification command
- Stateful recovery — phase summaries and checkpoints restore the current engagement after context compression without starting a new conversation
Full safety policy: skills/pentest/references/standards.md. Forbidden actions: .hermes.md §Forbidden Behaviour.