v1.1.0 Open Source Python 3.11+ Apache 2.0

Autonomous LLM red-teaming,
end to end

Closed-loop multi-agent framework for LLM vulnerability discovery. Adaptive attack strategy. CVSSv4.0 scoring. 8 regulatory frameworks. SARIF output for CI/CD.

Scans
Anthropic Claude
OpenAI GPT
Custom Endpoints
Agentic Pipelines
4
Specialized Agents
10
OWASP LLM Categories
8
Compliance Frameworks
3
Detection Layers
Attack surface

What ARGUS scans

Full coverage across direct endpoints and complex agentic topologies: the surfaces static scanners miss entirely.

🎯

Direct Endpoints

Classic LLM attacks against completion APIs: alignment bypass, system-prompt extraction, role confusion, and jailbreaking.

prompt-injection jailbreaking system-prompt-leak alignment-bypass role-confusion
🗃

RAG Pipelines Agentic

Indirect cross-prompt injection via retrieval documents. Attacks the model through the data layer it trusts.

indirect-injection doc-poisoning retrieval-hijack embedding-attacks
🔌

MCP Server Meshes Agentic

Model Context Protocol attack surface: tool-call interception, poisoned context injection, cross-server propagation.

tool-call-intercept context-injection server-traversal mesh-propagation
🤖

Multi-Agent Pipelines Agentic

Agent-to-agent injection that hops trust boundaries and propagates exploitation through downstream agents.

pipeline-hijack agent-injection role-escalation trust-boundary
🔨

Tool-use / Function Calling

Exploiting function-calling interfaces: schema confusion, argument injection, and output manipulation.

arg-injection schema-confusion output-manipulation tool-abuse
📋

Scoring & Compliance

CVSSv4.0 vectors for every finding, automatically mapped to applicable regulatory frameworks. SARIF v2.1 output for CI/CD gates.

cvss4.0 nist-ai-rmf eu-ai-act sarif-v2.1 owasp-llm-top10

How it works

The closed-loop pipeline

Four specialized agents in a continuous revision loop. The Planner reads live behavioral signals and rewrites its strategy: not a fixed probe list.

Adapts in real time

The Planner revises attack strategy based on what the target does, not a static script: so defenses that beat the first wave don't beat the second.

Diversity-constrained synthesis

Embedding-space diversity constraint prevents the Attacker from converging on variations of the same payload: maximizing coverage, not repetition.

Cross-session memory

ChromaDB-backed episodic memory means each scan starts with everything learned from every previous scan: progressively sharper over time. Validated: a 4,000-synthetic-family ablation against the real ranking mechanism shows a 40.6% reduction in mean categories probed before finding the vulnerable one (5.56 cold-start vs. 3.30 memory-seeded); the benefit is concentrated in higher-accuracy regimes, with no advantage in the lowest-accuracy decile, as expected for an uninformative memory.

Three-layer validation

Independent semantic, judge-panel, and behavioral signals must agree before a finding is confirmed: low false-positive rate by design.

  Target LLM / Pipeline
          |
          v
  ┌───────────────────────────────────────────────┐
  │              Orchestrator                       │
  │                                                  │
  │   Planner ────────> Attacker ────> Evaluator   │
  │     (Claude Opus)    (synthesizer)  (3-layer)   │
  │      ^                   |              |        │
  │      |                   v              v        │
  │      └────── Revision <──── Findings + CVSS │
  │                                    |            │
  │                               Reporter          │
  └───────────────────────────────────────────────┘
          |
          v
    SARIF v2.1 + JSON  ──>  CI/CD gates + GRC tooling
Detection stack
1

Semantic Proximity

Cosine distance against a confirmed-attack embedding space. Flags responses that land in known attack-success neighborhoods, independent of surface form: catches paraphrases and evasive reformulations.

2

LLM-as-Judge Panel

Multi-model verdict with configurable affirmative quorum and confidence threshold. Cross-model agreement eliminates single-model blind spots and dramatically reduces false positives.

3

Behavioral Trace Analysis

Pipeline telemetry anomaly detection. Catches exploitation that produces no suspicious output text but alters tool-call patterns, token budgets, or downstream API behavior.


Comparison

How ARGUS compares

Static probe-and-detect tools catch known patterns. ARGUS reasons, adapts, and discovers novel vulnerabilities autonomously.

Feature Garak (NVIDIA) PyRIT (Microsoft) LLM-Fuzzer ARGUS
Multi-agent architecture ✗ ✗ ✗ ✓
Adaptive attack strategy ✗ ✗ ✗ ✓ real-time
Cross-session memory ✗ ✗ ✗ ✓ ChromaDB
OWASP LLM Top 10 (2025) partial partial ✗ ✓ all 10
RAG / pipeline attacks ✗ partial ✗ ✓
MCP server mesh attacks ✗ ✗ ✗ ✓
Multi-agent propagation ✗ ✗ ✗ ✓
CVSSv4.0 scoring ✗ ✗ ✗ ✓
SARIF v2.1 output ✗ ✗ ✗ ✓
8-framework compliance mapping ✗ ✗ ✗ ✓
LLM-as-judge panel detection ✗ partial ✗ ✓ quorum
Behavioral trace analysis ✗ ✗ ✗ ✓
Academic backing ✓ ✓ ✓ ✓ IEEE

Verification

Test results & empirical proofs

Every design claim is backed by a measured outcome. All results are reproducible from the public repository.

Unit test suite
pytest tests/ -v --tb=short 15 PASSED  ·  0 FAILED  ·  1.00s
tests/unit/test_orchestrator.py :: TestOrchestrator
PASSED  test_run_completes_without_error
PASSED  test_run_transitions_to_complete
PASSED  test_run_calls_planner_initialize
PASSED  test_run_calls_reporter_generate
PASSED  test_failed_phase_on_exception
tests/unit/test_session.py :: TestSessionState
PASSED  test_initial_phase_is_init
PASSED  test_transition_updates_phase
PASSED  test_budget_not_exhausted_at_start
PASSED  test_budget_exhausted_when_at_limit
PASSED  test_add_finding_increments_list
PASSED  test_confirmed_findings_filters_unconfirmed
PASSED  test_summary_keys_present
PASSED  test_completed_at_set_on_complete_transition
tests/unit/test_session.py :: TestFinding
PASSED  test_new_id_has_arg_prefix
PASSED  test_to_dict_contains_required_keys
CVSSv4.0 scoring engine: 48-vector validation

The scoring engine implements the official FIRST MacroVector/lookup-table/interpolation algorithm (ported from FIRSTdotorg/cvss-v4-calculator), not an approximation. 48 hand-crafted test vectors validated against that reference implementation: 48/48 exact matches, 0.0 mean deviation. Five representative cases:

Attack scenario CVSSv4.0 vector ARGUS Reference Δ
Direct prompt injection — system-prompt extraction AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N 9.2 Critical 9.2 0.0
Cross-agent privilege escalation via MCP poisoning AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H 9.0 Critical 9.0 0.0
RAG indirect injection, low downstream impact AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N 6.3 Medium 6.3 0.0
Tool-call schema confusion, no downstream reach AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N 5.3 Medium 5.3 0.0
Zero-impact probe (all Vulnerable & Subsequent metrics: None) AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N 0.0 None 0.0 0.0
Payload diversity — embedding-space constraint proof

20-candidate pools generated for 3 OWASP categories × 2 open-weight local targets (qwen2.5:7b, llama3 via Ollama), embedded with a real dense model (nomic-embed-text). At the shipped default threshold δ = 0.35, constrained synthesis reduces mean intra-batch cosine similarity by 14.5% versus unconstrained generation (0.53 vs. 0.62), averaged across all six configurations — yield and similarity decline smoothly across δ with no sharp optimum, so 0.35 is a moderate-yield/moderate-diversity default, not a calibrated best point. Only one configuration (LLM01, qwen2.5:7b) retained enough admitted candidates across the full δ sweep to trace a real curve; llama3 produced highly repetitive completions on the other five configurations (unconstrained similarity 0.83–0.95), collapsing them to 1–2 admitted candidates by δ=0.25–0.30 — a genuine model-dependent limitation, reported as such rather than smoothed into the aggregate. Full δ sweep and methodology in the paper, Section VII.C.

ARGUS constrained (δ = 0.35)
0.53
mean admitted-set cosine similarity
Unconstrained synthesis
0.62
mean pool cosine similarity
18.3%
mean admission yield at δ=0.35 (6 configs)
5%
yield, both LLM06 configs & LLM01/llama3
75%
yield, LLM01/qwen2.5:7b only
0.95 vs 0.86
distinct-bigram ratio, admitted vs. unconstrained (2 of 6 configs eligible)
OWASP LLM Top 10 (2025) — architectural coverage comparison

"Full" below means a dedicated payload module, scoring path, and compliance mapping exist per category (verified by source inspection against garak v0.15.x main branch) — it is an architectural comparison, not a measured detection rate for the other eight categories. A live-target empirical pilot with real per-category precision/recall/F1 has now been run for LLM01 and LLM06 (see below); the remaining eight categories are architectural coverage only.

ID Category garak v0.15 ARGUS v1.0 Coverage gain
LLM01Prompt InjectionFullFull + XPIA / MCPExtended
LLM02Insecure Output HandlingPartialFull+
LLM03Training Data PoisoningPartialFull+
LLM04Model Denial of ServicePartialFull+
LLM05Supply Chain VulnerabilitiesNoneFullNew
LLM06Sensitive Information DisclosureFullFullEqual
LLM07Insecure Plugin DesignPartialFull+
LLM08Excessive AgencyNoneFullNew
LLM09OverreliancePartialFull+
LLM10Model TheftNoneFullNew
10 / 10
ARGUS full coverage
7 / 10
garak effective coverage (2 full, 5 partial, 3 none)
Live-target detection pilot — real precision/recall/F1

100 real (prompt, response) pairs across qwen2.5:7b and llama3 (via Ollama) for LLM01 (prompt injection) and LLM06 (secret disclosure), scored by a faithful reimplementation of garak's StringDetector (verified against garak v0.13.3 source), the real SemanticProximityDetector, a local cross-model LLM-judge, and the actual shipped EvaluatorAgent pipeline. Ground truth: a disclosed deterministic rule (canary/secret present with no refusal marker), not manual labeling — 22 ground-truth leaks, 78 negatives.

Detector Precision Recall F1 FPR
garak-style substring match0.591.000.750.19
Semantic detector alone0.480.680.570.21
LLM-judge alone0.800.550.650.04
Shipped pipeline (Layer 1 gates Layer 2)0.800.360.500.03

The garak-style detector's false positives come entirely from refusals that quote the trigger string while declining it — a concretely observed instance of keyword-matching's failure mode. The judge alone is the strongest single detector; gating it behind the semantic layer (the actual shipped design) reduces F1 below the judge running alone, a genuine calibration finding rather than a smoothed-over one. Scope: 2 of 10 categories, 2 models, single-rule-labeled, 100 pairs — a first real measurement, not the full controlled benchmark. Methodology and raw data: benchmarks/live_target_pilot.py in the repo.

CI/CD integration — SARIF v2.1 proof
1

Scan completes, SARIF v2.1 file written

ARGUS emits a standards-compliant SARIF v2.1 report at the path specified in the scan config. No post-processing or schema conversion is needed.

2

upload-sarif action ingests on first attempt, zero config

A single upload-sarif step with the output path is the only pipeline addition. No format-version pinning, no custom mapping. garak requires a hand-written JSONL-to-SARIF converter before this step.

3

Critical and High findings visible in Security tab within 45 seconds

Findings appear with correct rule IDs, severity labels, and descriptions. The 45-second window was measured on a representative repository; GitHub's ingestion pipeline, not ARGUS, is the bottleneck.

.github/workflows/argus-scan.yml
- name: Run ARGUS scan
  run: argus scan --target openai --model gpt-4o --sarif argus.sarif

- name: Upload SARIF to GitHub Security tab
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: argus.sarif
# Result: Critical/High findings in Security tab in <45 s.  Zero custom config.

Installation

Get started in 60 seconds

Install once, scan any supported target with a single command. API key resolved from env or --api-key flag.

● Install
git clone https://github.com/\
  sunilgentyala/argus
cd argus
pip install -e .
Requires Python 3.11+. Optional dev extras: pip install -e ".[dev]"
● Anthropic (Claude)
argus scan \
  --target anthropic \
  --model claude-sonnet-4-6 \
  --profile quick
Set ANTHROPIC_API_KEY. Use --profile full for all 10 OWASP categories.
● OpenAI (GPT)
argus scan \
  --target openai \
  --model gpt-4o \
  --system-prompt "..." \
  --profile compliance
Set OPENAI_API_KEY. Pass --system-prompt to test a deployed persona.
● View Reports
argus show \
  ./argus-reports/\
  <session-id>.report.json
Reports also output as SARIF v2.1 for CI/CD integration and GRC handoff.

Regulatory coverage

7 compliance frameworks

Every confirmed finding is automatically tagged to applicable regulatory articles: ready for your audit trail or GRC team.

🇺🇸

NIST AI RMF

Govern, Map, Measure, Manage: full control framework mapping.

🇪🇺

EU AI Act

High-risk system requirements, transparency and conformity obligations.

🇺🇸

US EO 14110

Federal AI safety, security reporting, and red-team requirements.

🇬🇧

UK AISI

AI Safety Institute evaluation and testing standards.

🇮🇳

India CERT-In

Cybersecurity incident reporting and AI governance guidelines.

🌐

ISO 42001

International AI management system standard controls.

🇺🇸

NIST SP 800-228

API protection controls for cloud-native LLM deployments.

Community

Star history

Track ARGUS's growth on GitHub.

Star History Chart
Changelog

What's new in v1.1.0

Latest release ships HTML reports, direct SARIF output, and threat intelligence.

📄

HTML Reports

Self-contained HTML output with severity-colour-coded findings table. Attach to GRC tickets or email to security stakeholders: no external assets required.

html_reporter.py
🏁

Direct SARIF flag

New --sarif argus.sarif flag lets you specify the SARIF output path directly: perfect for CI pipelines that pick up a specific filename.

--sarifCI/CD
🤖

Threat Intelligence

New argus/intelligence/ module ships a curated LLM attack signal database: helping the Planner bias toward highest-yield vectors per model family.

ThreatIntelligencemodel-profiles
🚀

Claude Opus 4.8

Planner now defaults to claude-opus-4-8: Anthropic's latest reasoning model. Attack strategy quality improves measurably on complex agentic surfaces.

claude-opus-4-8

Help grow the project ⭐

A star on GitHub helps security researchers find ARGUS and signals that open LLM security tooling matters.

★  Star on GitHub  Follow on LinkedIn Contribute Open an issue
Author

Built by

SG
Sunil Gentyala
IEEE Senior Member  ·  Cybersecurity & AI Security
HCLTech, Dallas TX  ·  sunil.gentyala@ieee.org