ARTEX 如何运作:一个规划智能体、三个执行智能体和一道防护层,基于两张图运行。
ARTEX 是一个 Go 二进制文件,配有 Next.js 控制台,底层使用 PostgreSQL。本页依次介绍一次完整运行、二进制内部的各个组件、模型可调用的 31 个工具、防护层,以及从 v0.3.2 到 v0.3.25 的每个版本。
ARTEX 的循环:规划、执行、防护、验证,然后再次规划。
01
规划
图中任何变化都会唤醒规划智能体。它读取覆盖率和范围,更新待办清单并下发意图,每个意图都绑定一个资产。
02
执行
默认三个执行智能体。每个认领一个意图,运行 nmap、curl、Playwright 等真实工具,把事实和发现写回图中,然后结束。
03
防护
每次工具调用依次经过拦截规则、LLM 裁判和人工审批。所有流量都经过 8788 端口的录制代理,留存为证据。
04
验证
每次写入都会再次唤醒规划智能体,直到 prove_goal 完成目标。报告智能体合并重复发现,复测智能体检查修复情况。

- 01图发生变化,唤醒规划智能体(防抖,约 800 ms)。
- 02规划智能体读取 graph_overview、覆盖率和范围。
- 03它向前沿队列下发 0 到 N 个意图。
- 04执行智能体认领一个意图并加载对应资产。
- 05执行智能体通过防护层和录制代理运行工具。
- 06它把事实、资产和发现写回两张图。
- 07写入再次唤醒规划智能体,直到 prove_goal。
一次完整的 ARTEX 运行,从新建任务到合并报告,共 9 步。
01
创建任务
填写描述、目标、可选模板、本任务的允许和阻止规则,以及按顺序排列的 LLM 配置链。任务可以继承之前任务的事实。
02
加载资产
资产进入共享的资产图,可由智能体录入类型,也可从 ScopeSentry 导入。DNS 和 HTTP 信息补全在后台运行。
03
拆分目标
目标智能体把任务拆成多个目标节点,并提取范围。
04
规划
规划智能体被唤醒,读取图概览、覆盖率和范围,更新待办清单,并下发绑定资产的意图。被阻止的资产在这一步就会被拒绝。
05
执行
执行智能体默认 3 个,各自认领一个意图,通过防护层和录制代理运行真实工具。
06
写回
执行智能体写回事实、新资产、可选的凭据和发现,每条都附带证据和捕获的流量。
07
重复
每次写入都会再次唤醒规划智能体,直到目标得到验证,或预算、时间耗尽。每个执行智能体默认有 1,200 秒。
08
报告
报告智能体为每个发现撰写一份报告,把同一缺陷的重复发现合并到漏洞文件夹中,并可推送告警到聊天应用。复测智能体会复查修复情况。
09
干预
人员可以随时介入:与主智能体对话、添加提示、给运行中的执行智能体发消息、暂停它,或者用 /btw 提一个旁支问题。
ARTEX 内部的两张图:资产与发现,通过锚点关联。
ARTEX 是一个 Go 二进制文件,内嵌 Next.js 控制台,底层使用 PostgreSQL。它把掌握的信息保存在两张图里。
- 个开放给 LLM 的工具
- 31
- 张 PostgreSQL 表
- 60
- 种 LLM 接口格式
- 4
- 个默认执行智能体(每任务)
- 3
探索图
每个任务一张
- 目标
- 意图
- 事实
- 发现
- 提示
锚点把每个意图、事实和发现关联到它涉及的资产,覆盖率地图就是基于这些锚点生成的。
- 根域名
- 子域名
- IP
- 服务
- 应用
- 端点
资产图
全局共享,所有任务通用
ARTEX 二进制内部:12 个组件,从规划智能体到流量录制器。
引擎
server/engine.go每个任务一个规划循环和 N 个执行协程。负责认领意图,处理超时、暂停和排空。
目标智能体
agent/goals.go把任务拆分为目标并提取范围。
规划智能体
agent/planner.go唯一能创建意图的智能体。在多次唤醒之间保留共享的待办清单,使多步攻击链保持顺序。
执行智能体
agent/worker.go认领一个意图,运行工具,把结果写回两张图,然后结束。
主智能体
agent/mainagent.go任务内的对话智能体。人员可以与它交流,它也可以添加意图和提示。
报告与复测智能体
agent/finding_recorder.go撰写发现报告,把重复项合并到漏洞文件夹,并将发现复测为可复现、已修复或未确认。
防护层
guard/, intercept/检查每次工具调用:先拦截规则,再 LLM 裁判,最后人工审批。同时记录审计日志。
流量录制器
traffic/运行在 8788 端口的录制代理,带有自己的证书颁发机构(CA)。执行智能体的所有 HTTP 和 shell 流量都保存为证据。
信息补全
enrich/enrich.go在后台为新资产解析 DNS 和 HTTP 信息。
LLM 池
llmpool/, llmrec/保存模型配置,在配置之间故障切换,并记录原始请求和响应。
通知
notify/把发现推送到钉钉、飞书、企业微信、Telegram、邮件或 webhook,可实时推送,也可每 30 分钟汇总一次。
自动更新
selfupdate/从 GitHub Releases 一键更新,带校验和检查、冒烟测试,启动连续失败 3 次后自动回滚。
ARTEX 模型可调用的 31 个工具,外加 shell、HTTP、网页搜索和 MCP。
以下是 ARTEX 提供给 LLM 的图操作和报告工具。执行智能体还可以使用 shell、HTTP 请求、文件读取、网页搜索、远程 MCP 服务器和技能。
图操作与报告工具31
- add_intent
- add_hint
- prove_goal
- graph_overview
- node_detail
- list_goals
- list_facts
- record_fact
- record_intelligence
- insert_assets
- list_assets
- list_untested_assets
- list_companies
- report_finding
- update_finding_report
- update_finding_case_report
- search_finding_duplicates
- list_findings
- list_task_findings
- get_finding_record
- get_finding_case
- get_finding_traffic
- search_all_worker_traces
- list_worker_traces
- get_worker_trace
- get_worker_output
- get_task_graph
- get_task_node_detail
- list_task_worker_traces
- get_task_worker_trace
- spawn_task
Docker 镜像内置程序12
- nmap
- curl
- wget
- ripgrep
- jq
- git
- dig
- netcat
- whois
- Node.js 22
- Playwright + Chromium
- Playwright MCP
ARTEX 的防护层:先规则,再 LLM 裁判,最后由人决定。
每次工具调用在执行前都要通过防护层。以下是开源代码中的各项控制措施,以及引入它们的版本。
拦截规则
v0.3.15允许和拒绝规则,外加针对破坏性调用的内置规则,例如 HTTP DELETE 和类似删除操作的路径。
LLM 裁判
v0.3.11审查规则无法判定的调用。自 v0.3.23 起,裁判出错时转为人工审批,而不是直接放行。
资产阻止列表
v0.3.13默认阻止 .gov、.gov.cn、.edu 和 .edu.cn,并可在此基础上为每个任务设置允许和阻止列表。
脚本审查
v0.3.18裁判会看到每个脚本的快照:路径、大小和 SHA-256。快照不完整时强制转人工审查。
Basic Auth
v0.3.16控制台前可选的 HTTP Basic Auth,由 RuoJi6 加入。
录制代理
所有工具流量都经过 8788 端口的代理,执行智能体发出的每个请求都会留存为证据。
开源代码中曾有一项交战规则(RoE)范围检查,后来被移除。微步在线表示开源版没有内置安全控制。
ARTEX 可接入的模型:任何兼容 Anthropic 或 OpenAI 的接口。
anthropic
Messages API
openai
Chat Completions
openai-responses
Responses API,自 v0.3.5 起
jev
TypeSafe System One,用于审批裁决
- 通过 base URL 设置,DeepSeek、GLM、Qwen 和各类网关都能作为配置接入。
- 每个任务有一条按顺序排列的配置链,只在额度或计费错误时才切换。
- 五层重试:连接、空响应、安全重放、熔断和意图重跑。
- CrowdStrike 观察到 ARTEX 运行在 DeepSeek v4.1-flash 上,附近还有 GLM-5.3 和 Grok 4.6。
ARTEX 技术栈:Go、Next.js、PostgreSQL 和 SQLite。
- 个开放给 LLM 的工具
- 31
- 张 PostgreSQL 表
- 60
- 种 LLM 接口格式
- 4
- 个默认执行智能体(每任务)
- 3
- 后端
- Go 1.26,单个二进制文件,REST API 加 server-sent events
- 控制台
- Next.js 16、React 19、Tailwind 4,内嵌在二进制文件中
- Agent SDK
- Autumn-27 开发的 norma v0.4.3,Apache-2.0,仍然公开
- 主存储
- PostgreSQL 16:两张图、任务、发现、设置,共 60 张表
- 流量存储
- SQLite,位于 ./data
- 端口 8787
- Web 控制台、API 和实时数据流
- 端口 8788
- 录制代理,在 Docker Compose 中仅绑定 localhost
- Docker 镜像
- ruoji6/artex,支持 amd64 和 arm64。原版 autumn27/artex 已不存在
- 代码规模
- v0.3.25 共 173,504 行:Go 100,569 行,TypeScript 62,418 行
- 历史
- 458 次提交,首次提交于 2026-07-26
- 许可证
- AGPL-3.0
ARTEX 的每个版本,v0.3.2 到 v0.3.25,含原版与 RuoJi6 版。
v0.3.15 及之前的版本来自原作者 Autumn-27。从 v0.3.16 起,版本来自主要维护分支 RuoJi6/ARTEX。
| 版本 | 日期 | 发布者 | 变更内容 |
|---|---|---|---|
| v0.3.25 | 2026-10-29 | RuoJi6 | 出口 IP 横幅、自动标题、修复发现排序、运行时长不计暂停时间 |
| v0.3.24 | 2026-10-26 | RuoJi6 | Go 1.26.10(不再信任 eMudhra CA),在发现上提供类似 Burp Repeater 的请求重放,从提示词中移除「flag」字样 |
| v0.3.23 | 2026-10-20 | RuoJi6 | 模型裁判失败时默认转人工审批;可选的任务情报记录 |
| v0.3.22 | 2026-10-19 | RuoJi6 | Mock 演示自动部署到 Vercel,更新代理,修复定时任务 |
| v0.3.21 | 2026-10-15 | RuoJi6 | 裁判失败时重试,严格的 LLM 请求速率限制 |
| v0.3.20 | 2026-10-13 | RuoJi6 | 修复脚本快照误报,默认模型审查 |
| v0.3.19 | 2026-10-12 | RuoJi6 | 修复命令误判,脚本审查策略配置 |
| v0.3.18 | 2026-10-12 | RuoJi6 | 脚本审查快照、审批旁支问答、审批搜索 |
| v0.3.17 | 2026-10-10 | RuoJi6 | 日历定时任务 |
| v0.3.16 | 2026-10-09 | RuoJi6 | 可选 HTTP Basic Auth;重复发现合并到漏洞文件夹 |
| v0.3.15原版最后一个版本 | 2026-10-07 | Autumn-27 | 删除路径拦截规则;裁判 token 计量;IM 推送到钉钉/飞书/企业微信/webhook/Telegram/邮件,并加固 SSRF 防护。RuoJi6 于 2026-10-09 将其重新发布为自己的首个版本 |
| v0.3.14登录绕过 | 2026-09-24 | Autumn-27 | 任务列表增加漏洞列;精简 graph_overview。包含被 ARTXploit 利用的 fail-open 认证缺陷(提交 b55ceb1) |
| v0.3.13 | 2026-09-19 | Autumn-27 | 全局资产阻止列表(默认 .gov/.edu),任务级允许/阻止列表,收紧裁判输出以避免 fail-open |
| v0.3.12 | 2026-09-17 | Autumn-27 | 探索广播板;意图软删除/硬删除。v0.3.12 预编译二进制文件镜像于 bear20252026/ARTEX-release |
| v0.3.11 | 2026-09-15 | Autumn-27 | 审批来源跳转;精简裁判输入;实验性 noa 上下文压缩(norma v0.4.0) |
| v0.3.10 | 2026-09-13 | Autumn-27 | DeepSeek 网页搜索后端;执行智能体跨轨迹搜索;add_hint 触发器;enwjx/artex-ymh 攻击型分支的基础版本 |
| v0.3.9 | 2026-09-11 | Autumn-27 | 主智能体多会话;/btw 旁支问题;spawn_task 支持 source_task_ids;修复空轮次问题 |
| v0.3.8 | 2026-09-09 | Autumn-27 | 五层可配置重试;会话头;超时时原地收尾;规划智能体停滞防护 |
| v0.3.7 | 2026-08-31 | Autumn-27 | 最大输出 token 数;可给运行中的执行智能体发消息;流式存档(修复 OOM)。Core-RCE/ARTEX-original-version 保留的基线版本,也是赛事报道中分析的版本 |
| v0.3.6 | 2026-08-27 | Autumn-27 | LLM 测试检查真实回复;list_facts 分页;工具调用统计 |
| v0.3.5 | 2026-08-25 | Autumn-27 | 每个 LLM 配置可单独开关流式输出;OpenAI Responses API 格式;记录原始 LLM 通信 |
| v0.3.4 | 2026-08-24 | Autumn-27 | 批量任务分类;主智能体可对已完成任务执行 add_intent |
| v0.3.3 | 2026-08-23 | Autumn-27 | 执行智能体暂停/取消隔离,意图暂停状态,FIFO 准入,执行智能体运行时限 600 s -> 1200 s |
| v0.3.2 | 2026-08-20 | Autumn-27 | 可从源任务继承;按顺序排列的 LLM 配置链,额度不足时故障切换;执行智能体可暂停/恢复/取消;删除任务时一并清理;任务并发上限 |
