
先了解使用范围
ARTEX 仅供个人学习、代码研究与本地隔离环境中的技术验证使用。根据项目声明,不得使用它对任何线上系统、网站、联网系统或生产环境执行扫描、探测、利用和攻击,即使目标属于自己或已经获得授权。开始前请确认你理解并遵守项目的 AGPL-3.0 协议、所在地网络安全法规以及仓库中的使用限制与免责声明。
本文将以本地部署和安全的隔离环境为前提,介绍如何安装 ARTEX、配置 PostgreSQL 与 LLM、从界面观察任务,以及使用资产同步和漏洞复测等功能。
ARTEX 是一套 Go 后端加 Next.js 前端的 AI 多 agent 系统,项目提供了在线 Demo用于查看交互效果。正式运行时,前端可以通过 Go 的 go:embed 内嵌到单个二进制中。
ARTEX 能做什么
ARTEX 围绕自主探索、任务编排和过程留痕构建。系统包含仪表盘、任务列表、会话执行过程、探索链路、发现、资产、资产覆盖图、流量记录、人在环路对话、Agent 管理和 LLM 配置等界面。

- 多 agent 探索:由 goals、planner、worker 和 mainagent 等角色协作推进任务。
- 双图模型:资产图保存跨任务共享的资产事实,探索图记录单个任务的目标、意图、事实、提示和发现。
- 过程级信息交换:worker 可以检索其他 worker 的执行过程,复用其中的观察。
- 人在环路:通过对话和拦截审批参与工具调用与关键操作决策。
- 实时活动流:后端通过 SSE 推送活动信息,任务执行过程可以在界面中持续观察。
- 流量记录:记录型 MITM 代理为工具执行保留流量和证据。
- 资产同步:可以从ScopeSentry同步域名、子域、IP、端口、站点和端点等资产。
- 漏洞复测:可以针对已有漏洞单独创建复测 Agent 会话,并保存结论、证据和会话链接。

安装 ARTEX
方式一:使用一键安装脚本
这是项目推荐的安装方式。脚本会检测或安装 Docker,并提供全部 Docker 或本地编译运行两种选择。

git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
./install.sh选择全部 Docker 时,需要填写 PostgreSQL 密码,也可以直接回车让脚本生成随机密码。随后脚本会写入 .env 并执行 docker compose up -d。
选择本地运行时,可以连接已有数据库,也可以让 Docker 启动一个数据库。脚本会生成 config.json,编译带前端的单二进制并启动服务。
安装完成后访问 http://localhost:8787。首次打开时进入 /setup 设置管理员密码。
方式二:手动使用 Docker Compose
git clone https://github.com/Autumn-27/ARTEX.git
cd ARTEX
cp .env.example .env
docker compose up -d编辑 .env,至少填写 POSTGRES_PASSWORD;如果希望通过环境变量配置 Anthropic,也可以填写 ANTHROPIC_API_KEY。容器镜像包含常用工具,./skills 和 ./data 会通过绑定挂载保留。
启动后访问 http://localhost:8787。如果需要远程 MCP,可以在系统设置中选择 http 或 sse。旧版 SSE 通常使用 /sse 建立事件流,并通过返回的 /message?sessionId=... 接收 JSON-RPC 请求;认证请求头按 Authorization=Bearer <token> 配置。
方式三:使用预编译二进制
从Releases下载对应平台的压缩包,解压后通常包含 artex、start.sh 或 Windows 下的 start.bat、skills/ 和 config.example.json。

cp config.example.json config.json
./start.sh请使用 start.sh 或 start.bat 启动,不要直接运行 ./artex。启动脚本负责进程守护,并支持页面一键更新后的重新拉起。需要后台运行时可以使用:
nohup ./start.sh >artex.log 2>&1 &方式四:从源码编译
如果需要从源码构建内嵌前端的单二进制,可以先生成 Next.js 静态文件,再复制到后端的内嵌目录。
cd web && npm ci && npm run build:static && cd ..
cp -r web/out server/webui/dist
CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex
./start.sh完成基础配置
配置 PostgreSQL
ARTEX 依赖 PostgreSQL。使用本地运行方式时,可以在 config.json 中填写数据库连接信息,或者通过 ARTEX_PG_DSN 覆盖配置。
{
"database": {
"host": "127.0.0.1",
"port": 5432,
"user": "artex",
"password": "yourpass",
"dbname": "artex",
"sslmode": "disable"
}
}
服务每次启动时会幂等执行数据库结构初始化和迁移,包括必要的字段与索引变更。升级前仍建议备份数据库和 ./data 目录。
配置 LLM
探索功能需要 LLM。可以使用 Anthropic 或 OpenAI 的 API Key,也可以在界面的「LLM 配置」页填写。
export ANTHROPIC_API_KEY=sk-...也可以设置 OPENAI_API_KEY。项目还支持通过 ARTEX_LLM_PROVIDER、ARTEX_LLM_MODEL、ARTEX_LLM_BASE_URL 和 ARTEX_LLM_PROXY 调整提供商、模型、地址和代理。
调整并发和端口
每个任务的 work agent 数量可以在「系统设置」中调整,默认值为 3。启动参数支持设置 Web/API 地址和流量录制代理端口:
./start.sh -addr :8787 -proxy :8788启动脚本会把参数原样传递给 artex。
开始使用 Web 界面

1. 登录并查看仪表盘
首次访问时设置管理员密码,然后进入仪表盘查看总览、Token 消耗和活动流。仪表盘适合快速判断当前系统是否正常运行,以及任务是否产生了新的活动。
2. 查看任务与执行过程
在任务列表中选择目标任务,可以查看其会话、工具调用、活动记录和探索链路。执行过程页面会展示 agent 的工作步骤,探索链路则用于理解目标、意图、事实和发现之间的关系。


使用这些页面时,应优先在本地隔离环境中验证流程,并通过活动记录和流量记录检查 agent 实际执行了哪些步骤。
3. 查看发现与资产
发现页面集中展示任务产生的漏洞或其他发现,资产页面展示系统收集和归并的资产信息。


资产覆盖图可以按力导向布局显示范围内资产,并高亮已测试节点,支持节点折叠和展开。它适合从整体上观察哪些资产已经被探索、哪些资产仍未覆盖。

同步 ScopeSentry 资产
如果已经在 ScopeSentry 中收集过资产,可以在 ARTEX 的「资产同步」页面接入数据源,避免重复收集。

- 填写 ScopeSentry 地址和 API Key,完成数据源接入。
- 按项目或任务选择需要同步的目标。
- 选择资产类型,例如域名、子域、IP、端口、站点或端点。
- 执行导入,让 ARTEX 按公司资产范围归并数据。
- 在资产图中检查导入结果,并将其提供给 agent 进行后续探索。
资产图是跨任务共享的全局资产真值库。程序负责计算父子关系和去重 key,agent 提交的是原始资产信息。
理解 ARTEX 的双图架构
资产图:描述有什么资产
资产图中的节点包括 root_domain、subdomain、ip、service、app 和 endpoint 等。域名、子域、服务和端点之间通过父子关系组织,并归属于相应公司。
探索图:描述如何推进任务
探索图按任务独立保存,节点包括 goal、intent、fact、finding 和 hint。系统通过 spawns、derived_from、yields 和 proves 等关系记录推进链路。
两张图通过锚点关联。意图、事实和漏洞可以锚定到具体资产,因此既可以从探索方向查看涉及的资产,也可以从某个资产反查它在当前任务中被哪些方向测试过。
planner 与 worker 如何协作
引擎采用事件驱动闭环:图发生变化后唤醒 planner,planner 读取当前态势并派发意图;worker 领取一条意图,使用工具执行并将新的资产、事实或发现写回数据库;写回操作再次触发 planner。

planner 只在发现未覆盖的新方向时派发意图。worker 完成自己领取的意图后停止,避免不同 worker 无边界地重复执行。
对于多步骤、存在前后依赖的探索链,planner 会维护按任务保留的共享 todolist。只有当前置步骤完成、对应事实已经存在时,下一步才会被派发。这种机制用于避免把整条链一次性并行展开。
检索其他 worker 的执行过程
后续 worker 可以使用 search_all_worker_traces(q) 在本任务其他 work 的执行过程中按关键字检索,也可以使用 list_worker_traces 查看已执行的 work,再通过 get_worker_trace(intent_id, step_ids=[...]) 获取指定步骤的完整内容。系统会自动排除当前 worker 自己的意图。
这类过程级信息交换可以帮助 agent 复用尚未正式写入 fact 的观察,同时保持每个 worker 只执行自己所领取意图的边界。
流量记录与审批
ARTEX 提供流量录制代理和工具审批门。流量页面用于查看工具执行产生的记录,拦截审批页面用于处理需要人工确认的操作。

在安全验证时,建议同时查看任务会话、工具调用、活动流和流量记录,以便确认系统行为符合预期。人在环路对话也可以用于补充上下文和参与审批。
执行漏洞复测
任务详情的「复测」页签可以分页选择本任务漏洞、查看历史结论和证据,并单独发起复测。漏洞列表、漏洞详情、任务分组视图和资产视图都提供复测入口。

- 在漏洞列表或漏洞详情中点击「复测」。
- 按需填写修复版本、测试条件或限制。
- 启动独立的复测 Agent 会话。
- 在会话中查看复测过程,结束后查看结论与证据。
复测结论包括「仍可复现」「已修复」和「无法确认」。如果复测成功完成且结论为「已修复」,系统会自动更新漏洞处置状态;执行中、失败、停止或其他结论不会自动改变原状态。原始证据和报告会保留。
系统会预置可编辑的「漏洞复测」retester Agent。它可以在 Agent 管理中配置提示词、LLM、运行预算和工具;如果没有绑定专用 LLM,则使用全局激活配置。同一漏洞正在复测时会复用已有会话,停止、失败或服务重启后可以重新发起。
请注意,项目说明中指出,复测历史暂未纳入漏洞报告导出或任务归档包,也未自动关联流量包。演示模式只生成明确标注的模拟记录,不请求真实目标。
反向代理部署要点
前端、API 和 SSE 默认由同一个后端端口提供,因此通常只需要对公网开放 HTTPS 端口,并将 ARTEX 的 8787 保留在内网。实时活动流使用同源地址,一般不需要设置 NEXT_PUBLIC_SSE_BASE。
Nginx 等反向代理必须关闭 SSE 缓冲,并设置较长的读取超时,否则浏览器可能连接成功但无法持续收到活动事件。
location / {
proxy_pass http://127.0.0.1:8787;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_http_version 1.1;
proxy_set_header Connection "";
}只有在 SSE 必须使用不同来源,例如独立子域时,才需要在构建阶段设置 NEXT_PUBLIC_SSE_BASE。该变量会在 next build 时固化到静态包,容器运行时再设置不会生效。
升级与回滚

ARTEX 的升级会替换程序,但会保留 PostgreSQL 数据卷、./data 和 ./skills。推荐在系统配置页的「版本与更新」卡片中执行一键更新。更新流程会下载当前平台发布包、校验 SHA256SUMS、运行新二进制的冒烟测试,再由启动脚本完成替换。
如果校验或冒烟测试失败,暂存程序会被丢弃;新版连续三次启动失败时会自动回滚。上一版本会保留为 artex.old。不过数据库结构不会随程序回滚,因此升级前仍应备份数据库和 ./data。
更新会重启服务并中断正在运行的任务,应在空闲时执行。Docker 部署还需要注意:页面更新只替换程序,不会替换镜像中的工具链。要升级镜像,应执行:
docker compose pull artex
docker compose up -d artex也可以使用仓库中的更新脚本:
cd ARTEX
./update.sh本地开发与测试
开发环境可以使用 dev.sh 同时启动后端、流量代理和 Next.js 开发服务器:
./dev.sh默认后端端口为 8787,流量代理端口为 8788,前端开发服务器为 5173。也可以分别运行:
go run ./cmd/artex
cd web && npm run dev
go test ./...如果只需要预览前端而不启动后端,可以使用:
cd web && NEXT_PUBLIC_MOCK=1 npm run dev总结
ARTEX 将 Go 单体后端、Next.js 界面、PostgreSQL、LLM agent、流量记录、审批机制和资产管理整合到一个系统中。入门时可以先通过 Docker 或安装脚本完成部署,再配置 PostgreSQL 和 LLM,随后从任务、会话、探索链路、资产覆盖图和流量记录逐步了解系统行为。
理解资产图与探索图的分工,是掌握 ARTEX 的关键:资产图回答“有哪些资产”,探索图回答“任务如何推进”。在任何测试前,请严格限定在本地隔离环境和项目允许的学习用途内,并遵守项目声明、开源协议及适用法律。
