workflow 安全

Agent-2 自托管安全测试工作流

📌 适用场景:建立目标与权限边界 → Agent 扫描项目与探测攻击面 → 验证漏洞并出报告

用自托管 Agent-2(Gemini 驱动、单文件 SQLite 状态、18 工具+MCP 桥)对授权目标执行安全测试:建立目标与权限边界 → Agent 扫描项目与探测攻击面 → 验证漏洞并出报告。MIT,Python 3.9+。

5.8 /10 ★★★☆☆
🪜 3 个步骤 🛠️ 0 款工具 ⏱️ 一轮目标扫描+验证约 1-3 小时(视项目规模) 🎯 高级 🕒 更新于 2026-09-12

📋 完整步骤

  1. 1

    建立目标与权限边界

    确定被测目标(本地项目/授权范围),为 Agent-2 配置 API key 与权限模式,明确允许执行的命令域。

  2. 2

    Agent 扫描项目与探测攻击面

    用 scan_project、grep_search、run_command 等工具让 Agent 枚举代码与依赖,识别可疑入口与暴露面。

  3. 3

    验证漏洞并出报告

    对候选发现逐一验证(工具能力门禁返回 error 而非异常),沉淀 save_memory 并输出结构化报告。

这是什么?适合谁?

Agent-2(aaravshah1311/Agent-2)是一个自托管的自治 AI Agent,跑在你自己的机器上、用你自己的 Gemini API key、把全部状态存进代码旁边的一个 agent2.db SQLite 文件——无账号、无服务、无遥测、无构建步骤。它同时是编码助手、终端 Agent、安全测试器与持久记忆系统,提供 CLI / Web UI / 双模式三个界面,共享同一套系统提示、工具分发器、记忆与规则表、diff 引擎与模型路由。

本工作流聚焦其**安全测试(security testing)**能力:Agent-2 拥有 18 个内置工具(run_commandscan_projectgrep_searchweb_search 等),并可经 MCP 桥接动态挂载 burp_*zap_* 等安全工具。仓库 2026-09-04 创建,8 天 97★/8 fork,MIT,Python 3.9+,带 2670 项测试。

适合谁

  • 想要”一个 Python 仓库 clone 下来就能跑”的自托管 Agent 的开发者
  • 对目标项目做授权范围内安全扫描/渗透测试辅助的安全工程师
  • 需要跨 CLI/Web 两个界面共享同一记忆与状态的个人用户

不适合:需要多用户/团队协作平台的团队(状态是单文件单机);不愿把命令执行权交给 LLM 的严格环境;用非 Gemini 提供商的用户(模型栈绑定 Google Gemini)。

使用前提:Python 3.9+、Gemini API key(aistudio 免费申请)、被测目标的明确授权。

准备工作

  1. 安装:git clone https://github.com/aaravshah1311/Agent-2.git && cd Agent-2 && python run.py——run.py 会建 .venv、装依赖并提示填 Gemini API key
  2. 环境:Python 3.9+;可选 Docker(python run.py --docker
  3. 授权:安全测试仅限自有/授权目标;确认 Agent-2 的 exec 权限模式配置
  4. 成本:软件 MIT 免费;Gemini API 按用量计费(flash 系列便宜,免费额度可覆盖小规模扫描)
  5. 时间:安装约 5 分钟;一轮项目扫描+验证 1-3 小时

3 步核心流程

第一步:建立目标与权限边界

确定被测目标(本地代码目录或授权范围),启动 Agent-2:

python run.py --cli          # CLI 界面(默认)
python run.py --web          # 或 Web UI(localhost:1311)

首次启动填入 Gemini API key(python run.py --addapi 可管理多 key 轮换)。在配置中明确允许的命令域(exec capability gate 有两处实现:工具分发器与终端流式执行,CLI 的副本刻意放在重试循环外——拒绝不能因重试变成放行)。

预期产出:Agent-2 可对话、可执行受限命令,权限模式与目标范围已固化。

第二步:Agent 扫描项目与探测攻击面

让 Agent 枚举与探测,例如提示:

扫描 /path/to/project:列出全部入口点(路由/handler/CLI)、外部输入面、
依赖清单中的已知漏洞组件。对每个发现给出文件与行号证据。

Agent 会用 scan_projectgrep_searchread_filelist_dir 组合完成枚举,需要执行命令时走 run_command(流式 + 双重能力门禁)。如已接 Burp/ZAP MCP 桥,burp_*/zap_* 工具自动加入工具表(所有权按”成员归属”判定,断连的桥不再占用工具名)。

预期产出:带文件/行号证据的攻击面清单。

第三步:验证漏洞并出报告

对候选发现逐一验证——要求 Agent “每条结论必须先复现再写报告”:

对上述每个候选漏洞:给出可复现的验证步骤(命令或请求),实际执行验证,
只保留验证通过的条目;save_memory 记录结论,最后输出结构化报告
(发现/证据/风险/修复建议)。

验证中工具能力门禁以 error 返回而非异常(模型能读错并自适应,turn 不中断)。结论用 save_memory 存入持久记忆,后续会话可复用。

预期产出:仅含已验证条目的结构化安全报告。

初级用法

单点代码审查

不开安全模式,直接让 Agent 读指定文件并指出输入校验缺陷——最小成本的安全辅助。

记忆驱动的复测

save_memory 沉淀的结论跨会话存活(SQLite 单文件),修复后让 Agent 对照记忆复测同一条目。

双界面切换

python run.py --dual:Web 在后台线程、CLI 在前台,同一 agent2.db——长扫描开 Web 看流式工具调用,终端继续干别的。

高级玩法

挂载 Burp/ZAP MCP 桥

把专业安全工具的 MCP server 接入,burp_*/zap_* 工具动态加入,Agent 可驱动代理扫描与主动验证。

模型路由分级

Gemini 6 模型(2.5-flash 默认至 3.7-flash)由 llm/router.rank_candidates() 路由:枚举用 lite 省钱,验证推理用高阶模型。

命令看门狗长任务

CLI 的 live command watchdog 监控长命令执行,避免安全扫描中的静默挂死。

小技巧

  1. 安全测试先在隔离环境(容器/虚拟机)里授权命令域,再放行真实命令
  2. 多 key 用 --addapi 轮换,长扫描不会因单 key 限速中断
  3. 让 Agent 每条结论附文件与行号,报告才可审计
  4. 升级用 python run.py --update,它会保留 agent2.db(记忆不丢)
  5. 验证阶段明确要求”先复现再入报告”,可把幻觉发现率压到接近零

常见踩坑

踩坑 1:把 Agent-2 当团队服务部署

  • 现象:多用户同时写状态
  • 原因:架构是单机单文件 SQLite(agent2.db),无并发/多租户设计
  • 解决:个人或单人使用;团队场景换服务端方案

踩坑 2:命令执行权限没收敛

  • 现象:Agent 执行了范围外命令
  • 原因:exec capability gate 配置过宽
  • 解决:测试前在配置里固化允许的命令域;门禁设计上拒绝优先(重试不会变放行)

踩坑 3:未验证发现直接入报告

  • 现象:报告里有”看起来存在”的漏洞
  • 原因:模型推断 ≠ 事实
  • 解决:流程强制”每条结论先复现”;工具门禁返回 error 让模型自纠

踩坑 4:MCP 桥断连后工具名残留

  • 现象:调用 zap_* 报”工具不存在”但列表里还有
  • 原因:早期版本前缀判断;现版本 registry.resolve() 按成员归属判定
  • 解决:更新到最新版(python run.py --update

踩坑 5:项目极新文档可能变

  • 现象:命令/参数与本文不符
  • 原因:仓库 2026-09-04 创建,8 天内仍在快速迭代
  • 解决:以 README 与 USAGE.md 为准

常见问题 FAQ

Q1: 它只能用 Gemini 吗?

A: 是。模型栈绑定 Google Gemini(2.5 至 3.7 六个 flash 档位),run.py 启动时申请 key。key 在 aistudio 免费申请,flash 系列用量便宜。

Q2: 安全测试合法吗?

A: 仅限自有或获得明确授权的目标。工具本身中立;权限边界由使用者在第一步配置固化。

Q3: CLI 和 Web 是两个应用吗?

A: 不是。三个界面共享系统提示、工具分发器、记忆、diff 引擎与数据库——切界面只改”看什么”,不改”能做什么”。

Q4: 状态存哪?

A: 全部在代码目录旁的单个 agent2.db(SQLite):记忆、规则、key、diff。更新保留该文件,卸载删除它。

Q5: 有测试吗?

A: 仓库 badge 显示 2670 项测试(pytest),run.py 生态内含 CI 资产(.github/、.gitleaks.toml)。

Q6: 和 OpenHands 等自托管 Agent 平台的区别?

A: Agent-2 走”零服务、单文件状态、三界面共享”路线,面向个人;OpenHands 类是服务化多用户平台。前者 5 分钟 clone 即跑,后者部署成本高但协作强。

参考链接

本文基于公开资料(GitHub 官方 README/USAGE/FEATURES)整理,AI 辅助生成,未做本地安装实测;采集日期 2026-09-12。功能与数据以官方仓库最新说明为准。

📊 评分与标签

评分说明

总分 5.8/10 · H_观察

📊 可观测社区指标(采集日期:2026-09-12)

  • GitHub: aaravshah1311/Agent-2 ★97, 🔱8(GitHub API 实时验证)
  • License: MIT;Python 3.9+;仓库创建 2026-09-04,最后推送 2026-09-11(8 天 97★/8 fork)
  • 自述 2670 项 pytest 测试;含 Dockerfile/docker-compose 与 .gitleaks.tomn 等安全资产
  • ⚠️ 个人作品集型项目(作者 15 岁,README 自述 portfolio 链接);无组织背书

评分依据可追溯至公开来源,每项分数均有明确理由和数据支撑。

📋 流程完整性 2.0/3.0

  • 安全测试工作流三阶段(目标边界→扫描探测→验证报告)依赖其真实工具面:18 个内置工具(scan_project/grep_search/run_command/save_memory 等)+ MCP 动态桥接(burp_/zap_ 前缀、成员归属判定)
  • 装配路径真实可执行:单命令 python run.py 建 venv 装依赖填 key;Docker 路线与 update/reset/uninstall 子命令齐全
  • 权限门禁双重实现(工具分发器 + 终端流式执行,CLI 副本刻意放在重试循环外——拒绝不能因重试变放行),对安全工作流是关键完整性保障
  • 限制:本工作流为基于官方能力整理的编排,仓库未提供端到端安全测试教程;验证环节质量依赖提示词约束(“先复现再入报告”)
  • 竞品对比 1(OpenHands 类平台自带安全工作流模板):开箱流程更完整;Agent-2 需自行拼装
  • 竞品对比 2(MCP 通用编排工作流):宿主无关可换引擎;Agent-2 面向个人安全场景更顺滑

🔄 可复用性 1.3/2.5

  • 工作流三阶段(目标边界→扫描→验证→报告)可套用于任何授权目标;save_memory 沉淀的结论跨会话存活,支持修复后对照记忆复测
  • 限制:模型栈绑定 Gemini 六档 flash(无第三方 provider 抽象披露);工作流高度依赖其 18 个私有工具名,不可移植到其他 Agent 宿主
  • 竞品对比 1(通用 MCP 安全工具链):宿主无关可换模型;Agent-2 绑定自家栈
  • 竞品对比 2(固定规则的 SAST 工具):确定性高但无自然语言工作流;Agent-2 灵活但复用边界窄

📖 文档清晰度 1.5/2.0

  • README 覆盖面广:三界面表、18 工具清单、模型表、架构”每个事实只有一个家”表、安全姿态与配置节;另有 USAGE.md/FEATURES.md
  • 限制:README 极长(导航锚点密集),初次使用者定位安全测试路径需自行拼装;无端到端安全测试教程
  • 竞品对比 1(成熟项目 docs 站):分层文档;本项目单 README 承载全部
  • 竞品对比 2(同类新仓库):多数远不如它详尽

🔧 工具集成 1.0/1.5

  • 内置 18 工具(13 核心 + 5 文件智能)+ MCP 动态桥接(burp_/zap_ 前缀、成员归属判定);Web UI 多标签终端
  • 限制:MCP 安全工具桥接为通用能力,Burp/ZAP 具体桥的安装与配置文档不在本仓库内
  • 竞品对比 1(带官方 Burp/ZAP 插件的平台):开箱即用;Agent-2 需自备桥
  • 竞品对比 2(纯 MCP 编排器):任意工具;Agent-2 的私工工具面更顺滑但封闭

💡 创新性 0.0/1.0

  • “三界面共享一个大脑/单文件 SQLite 状态/权限门禁双重实现且拒绝不可被重试翻转”是干净的工程品味,但整体形态(自托管 coding/security agent)在开源生态已有多件同类
  • 限制:无突破性机制;安全测试工作流依赖通用能力而非专用创新
  • 竞品对比 1(OpenInterpreter/OpenHands):同形态更早更成熟
  • 竞品对比 2(安全专用 agent 框架):垂直深耕;Agent-2 靠通用工具组合

🏷️ 标签说明

  • AI安全: 官方定位含 cybersecurity/security tester,提供安全测试工作流与 exec 权限门禁。来源:GitHub README
  • 自托管: 全状态单机单文件 agent2.db,无账号无服务无遥测。来源:GitHub README
  • Gemini: 模型栈绑定 Google Gemini(2.5-3.7 六个 flash 档位)+ API key 轮换。来源:GitHub README
  • 自动化: 18 个 agent 工具 + MCP 动态桥接驱动的终端自动化。来源:GitHub README
  • 开源免费: MIT 许可;软件免费,Gemini API 按用量计费。来源:GitHub

📋 来源核实

  • ✅ 已核验: GitHub 仓库 — 2026-09-12 通过 GitHub API 实时核验:★97、🔱8、MIT、created 2026-09-04、pushed 2026-09-11、未归档、Python
  • ✅ 已核验: README.md — 2026-09-12 抓取全文:三界面架构、18 工具清单、Gemini 6 模型表、run.py 启动命令、权限门禁双重实现说明
  • ✅ 已核验: 仓库文件树 — 2026-09-12 GitHub API contents 列举:agent2/、agent2cli.py、agent2web.py、agent2dual.py、run.py、Dockerfile、docker-compose.yml、USAGE.md、FEATURES.md 均存在
  • ⚠️ 未实测:本站未实际安装运行 Agent-2;安全测试工作流为基于官方工具能力(scan_project/run_command/权限门禁)与安全定位整理的操作编排,2670 项测试与 Docker 行为以仓库自述为准
  • ⚠️ 局限:8 天新仓库、个人作品集项目,无第三方背书;评级 H_观察——建议观望成熟度后再考虑生产使用