面向紫队的 AI 驱动对手情报。
Argus 会跨网络、你的 RSS 订阅源以及你提供的文档调查威胁,使用 LLM 提取 有引文支撑的主张,将其整合为映射到 MITRE ATT&CK 的置信度评分评估, 并允许人工审查每一步。它完全运行在你自己的机器上。
该流水线每份文档运行一次,写入原子主张以及每条主张背后的逐字引文, 并写入每个阶段的审计记录。Validator 会对照文本验证每一条引文,将实体解析到 本地存储和 ATT&CK 目录,并把跨来源的主张整合为 UI 所呈现的评估。只有 Triage、 Analyst 和摘要撰写者会接触模型;Validator 是纯代码。
Argus 的 Web UI 以预构建形式发布,因此安装只需要 Python 3.12+(无需 Node,无需构建 步骤)。它可在 Windows 和 Linux 上运行,目前尚未发布到 PyPI,因此请从仓库或 发布版 wheel 安装。
# from a clone of the repository
git clone https://github.com/Cyllex-Framework/Cyllex-Argus.git
cd Cyllex-Argus
python3 -m venv .venv
. .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install .
# ...or straight from GitHub, without cloning
pip install "git+https://github.com/Cyllex-Framework/Cyllex-Argus.git"
无论采用哪种方式,都会将 argus 命令添加到你的 PATH 中。参与 Argus 本身开发的开发者可以改用
uv(uv sync);请参阅
Development 页面。
argus init # creates ~/.cyllex-argus/
argus attack update # downloads the MITRE ATT&CK Enterprise bundle
export ANTHROPIC_API_KEY='sk-ant-...' # or the Claude Code CLI / Ollama; see Choosing a model below
argus investigate "Scattered Spider" --max-docs 10
argus serve # web UI at the printed URL
首次启动时,如果你跳过了 argus attack update,argus serve 会自行下载 ATT&CK 目录(大约需要一分钟);首次调查会等待其完成,因此你绝不会在 ATT&CK 加载完成前运行调查。
UI 在 http://127.0.0.1:8765 打开,开箱即用的登录凭据为 admin / Argus123。
在将 Argus 暴露到网络之前请先修改它(argus set-admin-password '...',或使用
ARGUS_ADMIN_PASSWORD 环境变量,该变量绝不会写入磁盘)。传入 argus serve --host 0.0.0.0 以接受来自局域网的客户端。
Argus 的内容流水线(Triage、Analyst、Validator、摘要)运行在四种提供商之一上。
在 Settings → LLM provider 中选择,或编辑 ~/.cyllex-argus/argus.toml 中的 [llm]:
| 提供商 | 要求 | 模型(默认) | 网络搜索 |
|---|---|---|---|
claude-code-cli | Claude Pro/Max + 已登录的 claude CLI | 由订阅控制 | 是(内置) |
anthropic-api | ANTHROPIC_API_KEY(自带密钥) | claude-sonnet-5-5 | 否,需搭配 claude-code-cli 作为搜索提供商 |
openai-api | OPENAI_API_KEY | gpt-4o | 否 |
ollama | 运行中的 Ollama + 已拉取的模型 | qwen2.5:32b-instruct | 否 |
已测试的内容。 开发和日常测试主要运行在 Claude (
claude-code-cli和anthropic-api)以及本地 Ollama 上。提示词是针对 Claude 调优的;OpenAI 路径可以工作,其输出受 schema 强制约束,但使用经验较少, 在提示词重新调优之前可能提取到更少的声明。
# Preferred: env wins over anything stored in argus.toml, and never touches disk
export ANTHROPIC_API_KEY='sk-ant-...'
# or:
export OPENAI_API_KEY='sk-...'
argus serve
或者,在 Settings → LLM provider → API key 中粘贴密钥。UI 会将其存储在
[llm.anthropic] api_key / [llm.openai] api_key 下,并在重新加载时以掩码形式(••••••••)显示,因此
它永远不会以明文重新渲染。环境变量始终优先,因此通过 export 轮换密钥无需编辑
文件即可生效。
提供商页面允许你覆盖默认的 model(例如用 gpt-4o-mini 进行更便宜的 Triage,
用 claude-opus-5-5 进行深度 Analyst 运行)以及 base_url(适用于 OpenAI 兼容代理,
如 OpenRouter、LocalAI、LiteLLM;OpenAI 适配器遵循 Chat Completions / Structured
Outputs 契约,可与任何实现该契约的服务器配合使用)。在此处设置的 model 会覆盖每个
提供商对所有 agent 的默认值,因此当有覆盖生效时,页面会显示一个带有清除一键按钮的横幅。
每个 API 密钥提供商都有一个测试连接按钮,它会使用配置的凭据调用 GET /v1/models
并报告服务器列出的内容:它会验证密钥、base URL 以及(如果输入了模型 id)该模型是否
出现在账户上。
Anthropic: 组织级或用户级作用域的密钥(
sk-ant-usr-...)在/v1/models上会返回 HTTP 400, 除非它是工作区作用域的。如果测试连接在你确信有效的密钥上返回 400,请将其重新签发 为工作区密钥,这(而非密钥错误)才是常见原因。
流水线运行三个由 LLM 支持的 agent:为是/否 agent 选择一个便宜的模型,为提取选择好的 模型,可以来自同一提供商或不同提供商(Settings → LLM provider → Per-agent model overrides):
| Agent | 作用 | 调用量 | 建议 |
|---|---|---|---|
triage | 本文档是否关于该威胁?(是/否) | 每文档 1 次调用 | gpt-4o-mini、claude-haiku-4-5,便宜模型就能很好地回答二元问题 |
analyst | 提取带有逐字引用的断言 | 每文档 1-12 次调用(分块) | 强模型:claude-sonnet-5-5、gpt-4o、claude-opus-5-5 |
summary | 配置文件的执行摘要 | 每次导出 1 次调用 | 中等 |
任何保留为使用基础提供商的槽位都会继承主 [llm] 块,因此当你不需要覆盖时它不产生
任何成本。一种典型的节省成本拆分:
# ~/.cyllex-argus/argus.toml
[llm]
provider = "anthropic-api" # base: Analyst runs here on claude-sonnet-5-5
[llm.agents.triage]
provider = "openai-api" # cheap/fast; env OPENAI_API_KEY must also be set
model = "gpt-4o-mini"
Validator 是纯代码(引用验证 + 基于规则的评分,不使用 LLM),因此它从不出现在这里。
Web 搜索通过 claude-code-cli 作为 Search provider 进行,因此你可以自由混搭:例如,使用本地 Ollama 内容模型,仅用 Claude 进行发现。
claude-code-cli。即使你的 Content provider 是 anthropic-api / openai-api / ollama,也要将其选为 Search provider,或者将 Search 设为 Disabled,仅依赖 RSS + 本地摄取。完整参考位于 docs/:
| 页面 | 涵盖内容 |
|---|---|
| 安装 | 安装路径、前置条件、首次登录、LAN 模式 |
| 运行机制 | 详细流水线、审计追踪、增量重跑、抓取救援链 |
| CTI 来源 | TAXII 和 MISP 订阅、RSS、可选 IOC 富化、webhooks |
| 检测 | Sigma 规则和 SigmaHQ 参考 |
| Web 界面 | 仪表盘、威胁画像和监视器,附截图 |
| 来源可靠性 | Admiralty 等级、ICD 203 置信度、发布者合并 |
| TAXII 2.1 服务器 | 其他工具订阅的读写 TAXII 节点 |
| CLI 参考 | 每个 argus 命令 |
| 配置 | argus.toml 参考和导出 |
| 用户、角色与安全 | 账户、角色、会话,以及究竟哪些数据离开本机 |
| 开发 | 开发测试框架、测试套件和项目布局 |
在 PolyForm Noncommercial 许可证下可免费用于非商业用途。参见 LICENSE。