ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VulnClaw工具Schema与Tool Call Manager深度解析:AI渗透测试如何注册与调度工具

VulnClaw工具Schema与Tool Call Manager深度解析:AI渗透测试如何注册与调度工具 VulnClaw工具Schema与Tool Call Manager深度解析AI渗透测试如何注册与调度工具【免费下载链接】VulnClaw基于 AI Agent MCP 工具链 渗透 Skill 编排 配合大语言模型 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClawVulnClaw是一个基于 AI Agent MCP 工具链 渗透 Skill 编排的自动化渗透测试框架你用一句自然语言下达任务它就能自动跑完「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。而这一切背后靠的就是两套核心机制——工具 Schema工具注册和Tool Call Manager工具调度。本文带你快速看懂这两块引擎盖下的设计不需要你是资深工程师。一、什么是工具 SchemaAI 的能力名片大模型本身不会发请求、不会跑命令它只会点菜。Tool Call Manager 收到的每一个指令都要先有一张标准名片告诉模型我叫什么name能做什么description需要哪些参数、类型是什么parameters即 JSON Schema在 VulnClaw 里所有内置工具的名片集中存放在 tool_schemas.py 中并通过append_builtin_tool_schemas回调统一注册。这个单一来源设计的好处是Schema 和执行逻辑彻底分离改描述、加参数只需要改一处不会出现模型看到的和实际执行的两套东西漂移的问题。内置工具有哪些打开 tool_schemas.py你会看到一张相当全能的菜单位列工具名作用一句话理解nmap_scan端口/服务扫描这栋楼有哪些门和窗户http_probe_batch批量 HTTP 探测一口气试 30 种敲门方式crypto_decode编码/哈希/加解密破解密文的小厨房python_execute受限 Python 沙箱现场写个小脚本处理数据shell_command本地命令执行需要精确复现请求时出手evidence_list / view / search证据管理与检索把大输出存证按需回看js_recon/dir_enum/subdomain_enumJS/目录/子域信息收集翻出藏起来的接口和页面unauth_test/brute_force_login未授权/弱口令测试检查门是否虚掩vault_*/memory_search上下文归档与冷记忆长期任务不失忆load_skill_reference加载渗透 Skill 参考文档临时翻一本专业手册这些工具的执行逻辑则集中在 builtin_tools.py 的execute_mcp_tool里做分派——注意其中还内置了角色权限校验role_tool_violation和安全沙箱检查比如python_execute会用 AST 分析拦截exec/importlib等绕沙箱行为见 builtin_tools.py保证能点菜不等于能乱做菜。二、工具注册全流程从 Schema 拼出给模型的菜单Schema 写好之后还需要在每轮对话前组装成 OpenAI function-calling 格式。核心入口是 builtin_tools.py 中的build_openai_tools它把五类工具源拼成一份完整菜单内置工具来自tool_schemas.py并套用角色过滤——当前 Agent 扮演什么角色就只能看到哪些工具子代理工具agent_run/agent_job让主 Agent 派生并行子任务情报工具intel与流量工具traffic来自 intel/tools.py 和 traffic/tools.pyMCP 外部工具来自 MCPRegistry把各 MCP Server如 fetch、burp、chrome-devtools暴露的工具统一转成 function 格式。而 MCP 侧的注册由 registry.py 维护每个 Server 注册为一个MCPServerState记录运行状态、健康度、调用次数、平均延迟每个工具注册为一个MCPToolSchema名称、描述、输入 Schema、所属 Server。之后无论模型点了哪个工具都能通过get_server_for_tool精准路由回它归属的 Server见 registry.py。 对用户的意义你不需要关心这个工具是谁提供的注册表替你记好了工具 → 服务 的映射关系。三、Tool Call Manager工具调用的调度中心模型一次回复可能同时点 5 个甚至 10 个菜Tool Call Manager就是后厨的调度员。核心实现位于 tool_call_manager.py主入口是handle_tool_calls_with_results。它做了四件关键的事1️⃣ 去重与限流防止模型重复点单tool_call_manager.py 中同名字、同参数的调用会被合并成一次执行key 是工具名::参数JSON并且每轮最多执行 10 个调用超出的会被明确标注跳过原因。这在实战中非常关键——LLM 偶尔会一口气重复发出几十个相同探测去重既省时间又省 Token。2️⃣ 并行执行信号量控制并发上限独立工具调用会走_execute_parallel用一个asyncio.Semaphore限制并发数默认上限为 5DEFAULT_TOOL_MAX_CONCURRENT见 tool_call_manager.py并可在安全配置中通过tool_parallel/tool_max_concurrent调整TUI 设置界面里也有对应开关。每个调用都被asyncio.gather包裹且异常互相隔离——一个工具炸了其他工具照常出菜结果列表还保持原始顺序。相关行为有完整的并行测试覆盖见 test_tool_parallel.py。3️⃣ 证据化大输出自动存证 预览工具原始输出会先写入 Agent 状态成为证据evidence上下文里只留一个带 ID 的预览[evidence:e001] …。如果模型需要原始内容再用evidence_view/evidence_search按 ID 回看。调度器还会拦截重复查看同一证据区间的冗余调用见 tool_call_manager.py从机制上打断读证据 → 再读证据的死循环。4️⃣ 纠错层Correction Layer前后各设一道质检每次调用执行前后都会经过 correction_layer.py 的before_tool_call/after_tool_call钩子把诊断提示如上次这个参数填错了以[diagnostic]形式追加到工具结果里引导模型下一轮自我修正。失败也不会静默丢弃——错误会作为模型可见的证据返回让模型自己选择兜底方案见 tool_call_manager.py 的注释说明。四、MCP Router 与 Lifecycle让工具找得准、活得久注册与调度之外mcp/目录还负责两件事意图路由router.py 维护一张自然语言意图 → 工具映射表如截图 → chrome-devtools 的screenshot并能按渗透阶段推荐工具信息收集阶段推荐fetch/new_page/screenshot漏洞利用阶段推荐send_http1_request/evaluate_js生命周期管理lifecycle.py 中的MCPLifecycleManager负责 Server 的启动、健康窗口评分最近 20 次调用成功率 ≥90% 为 healthy、断线自动重启最多 3 次、指数退避并通过每 Server 独立信号量保护有状态连接——stdio 类型的 Server 强制串行调用避免两个子代理同时写坏同一个会话。如果你需要接入自己的 MCP 服务可参考 docs/mcp-deployment.md 的部署说明。五、这对使用者意味着什么理解了Schema 调度这套组合拳你就能解释 VulnClaw 的几个实际体验现象背后的机制一句话任务能同时开多个探测Tool Call Manager 的并行执行 并发信号量长任务不会失忆、上下文不爆证据存证evidence、vault 归档与冷记忆工具模型偶尔重复操作会被自动合并每轮去重 10 次调用上限 冗余查看拦截子工具失败不会拖垮整个任务异常隔离 失败证据回传给模型自修复接入 Burp、浏览器等外部能力MCPRegistry 统一注册 Lifecycle 健康看护关键源码索引工具 Schema 单一来源tool_schemas.py工具执行与分派builtin_tools.py工具调度中心tool_call_manager.pyMCP 注册表与健康统计registry.pyMCP 路由与生命周期router.py、lifecycle.py并行调度测试test_tool_parallel.py六、总结VulnClaw 的注册与调度设计可以浓缩成三句话Schema 是契约——所有工具先有标准名片模型看到的菜单永远和真实能力一致调度是护栏——去重、限流、并行隔离、证据化让几十个工具并发跑也不乱MCP 是扩展——外部工具注册进来后享受同一条注册、调度、健康看护流水线。这套机制正是自然语言输入 → 自动化渗透全流程能够稳定落地的地基。想动手体验把项目克隆下来git clone https://gitcode.com/GitHub_Trending/vu/VulnClaw跑一次 CTF 靶场就能在任务控制台里亲眼看到这些工具被一个个调度执行的过程。【免费下载链接】VulnClaw基于 AI Agent MCP 工具链 渗透 Skill 编排 配合大语言模型 自然语言输入 → 自动完成「信息收集 → 漏洞发现 → 漏洞利用 → 报告生成」全流程。项目地址: https://gitcode.com/GitHub_Trending/vu/VulnClaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进