CAI Thought Router 深入解析:面向 Boot2Root CTF 的战略分析与 Agent 编排提示词模板
【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai
本指南围绕 Cybersecurity AI(CAI)项目中的 Thought Router 系统提示词模板展开,系统拆解它在 Boot2Root CTF 挑战中如何承担"战略分析 + 进攻路径规划 + 多 Agent 编排"的角色。你将掌握该提示词模板定义的作战阶段、Thought() -> AnotherAgent()循环工作流、thought工具的五个结构化字段,以及它在 ThoughtAgent 和红队 Swarm 模式中的实际落地方式,可直接用于复现一个具备自我反思能力的 CTF 解题 Agent。
模板定位:Thought Router 是谁
在 CAI 项目中,Thought Router 是加载自 system_thought_router.md 的系统提示词模板。它把一个 LLM Agent 塑造成"战略分析与重定向代理"(strategic analysis and redirection agent),专职服务Boot2Root CTF 挑战。
从源码看,该模板由 thought.py 通过load_prompt_template("prompts/system_thought_router.md")加载,再经create_system_prompt_renderer渲染为ThoughtAgent的指令(instructions)。也就是说,模板的文本内容决定 Agent 的角色认知与行为边界,而 Agent 本体只做三件事:加载模板、绑定模型(默认读取CAI_MODEL环境变量)、挂载think工具。
其核心职责被模板归纳为六条:
- 系统性地分析目标机器与网络;
- 针对每个阶段制定潜在攻击路径的详细思考;
- 为每个阶段挑选最合适的工具与技术;
- 为所选的攻击手段提供清晰的推理依据;
- 在多个专职 Agent 之间协调工作流;
- 重点聚焦通过 FTP 与 curl 实现 Webshell 植入("Focus on webshells through ftp and curls"),这是模板为解题路径设定的明确战术偏好。
五阶段作战方法论
模板要求 Thought Router 对每个目标遵循固定推进次序,这与经典渗透测试流程一致:
- 信息收集(Information Gathering)——以 nmap 扫描、服务枚举为起点(模板原文即示例了
nmap); - 漏洞评估(Vulnerability Assessment)——分析服务版本与已知漏洞;
- 初始访问(Initial Access)——利用 Web 服务、FTP 上传等手段建立立足点;
- 权限提升(Privilege Escalation)——从低权限账号向 root/管理员提权;
- 后渗透(Post Exploitation)——横向移动与最终 Flag 猎取。
模板同时要求把复杂问题"分解为阶段"(break down complex problems into phases),即无论目标多复杂,都按这五个阶段逐步收敛。阶段之间并非串行孤岛,而是由下一节的循环工作流串联成一个持续迭代的闭环。
恒定工作流:Thought -> AnotherAgent 无限循环
模板规定了 Thought Router 的"恒定工作流"(constant workflow):
Thought() -> AnotherAgent() -> Thought() -> AnotherAgent() -> Thought() -> AnotherAgent() -> ...要点如下:
- 永不停止迭代,直到拿到 Flag("You never stop iterate until find flag");
- 一次只执行一条命令("Exec only one command at a time"),把每条命令的结果纳入下一轮思考;
- 每一步思考之后把执行权交给另一个专职 Agent(如扫描、Web 渗透、提权等 Agent),执行结果再回流为下一轮思考的输入。
这一设计在源码中有直接印证。在 red_team.py 的红队 Swarm 模式中,thought_agent被克隆为_thought_agent_copy(重命名为 "Red team manager"),通过 SDK 的handoff()分别与红队 Agent、DNS/SMTP 侦察 Agent 建立交接通道,并以该克隆体作为 Swarm 的入口点(redteam_swarm_pattern = _thought_agent_copy)。这正是模板所描述的"协调专职 Agent 工作流"的具体实现:思考 → 交接执行 → 结果回流 → 再思考。
thought 工具:五个结构化思考字段
Thought Router 的思考动作落地为thought工具调用。模板定义了五个必须覆盖的字段,其完整语义如下:
| 字段 | 模板定义 | 实战含义 |
|---|---|---|
breakdowns | 对当前阶段、观察结果与潜在攻击向量的详细分析;彻底检查服务、版本与漏洞 | 结论的"输入面",回答"我现在看到了什么" |
reflection | 对先前动作、结果与经验教训的深度分析;评估所用技术的有效性,解读工具输出以指导下一步 | 结论的"反馈回路",回答"刚才的行动教会了我什么" |
action | 基于分析采取的具体行动;清晰解释所选方法及其在当前阶段是最优选择的原因 | 结论的"输出指令",回答"我现在要做什么、为什么" |
next_step | 攻击链中的具体下一步;基于当前访问级别与剩余攻击面制定清晰的前进计划 | 结论的"路线图",回答"下一步通往哪里" |
key_clues | 发现的关键情报:凭据与哈希、服务版本与漏洞利用、用户账户与权限、网络信息、文件系统访问、潜在提权向量及其他有价值情报 | 结论的"战利品清单",回答"我掌握了哪些关键证据" |
这些字段并非空泛要求,而是与 CAI 的工具实现一一对应。在 reasoning.py 中,thought被声明为@function_tool,其函数签名正是breakdowns / reflection / action / next_step / key_clues五个字符串参数(外加可选ctf上下文对象),返回值按Thought:、Reflection:、Action:、Next Step:、Key Clues:前缀拼接成结构化文本,供主 Agent 与编排层读取。
同文件还提供了配套的记忆工具:write_key_findings将凭据、漏洞、提权向量、系统访问细节等关键发现追加写入state.txt;read_key_findings在后续轮次读取该文件,实现跨轮次的"作战情报持久化"。
源码级落地:ThoughtAgent 与周边机制
ThoughtAgent 本体
thought.py 是模板的承载者,其构建逻辑可直接复现:
- API Key 读取优先级:
ALIAS_API_KEY→OPENAI_API_KEY→ 兜底sk-alias-1234567890(本地模型占位); - 模型默认值:
CAI_MODEL环境变量,未设置时回退到"alias1"; - 模型接口:
OpenAIChatCompletionsModel+AsyncOpenAI客户端; - 工具:仅挂载 reasoning.py 中的
think工具——它只把思考内容追加到日志,不获取新信息、不改数据库,专用于复杂推理与缓存式记忆。
Agent 的描述字段(description)表明其定位:"专注于在安全评估或 CTF 挑战中分析和规划下一步的 Agent"。
与 Reasoner Agent 的分工
CAI 还提供了另一条纯分析路径:Reasoner Agent(见 reasoner_support.py)。与 Thought Router 不同,Reasoner 的提示词(system_reasoner_supporter.md)明确要求"不执行任何命令、不调用任何工具,纯分析",输出格式为 Findings / Learnings / Observations / Relationships between vectors,并要求极简、克制 token 消耗。
可以这样理解二者分工:Thought Router 是"边想边做"的作战指挥(思考 + 交接执行),Reasoner 是"只想不做"的参谋(纯推理、不污染执行上下文)。当模型为o1/o3系列时,create_reasoner_agent还会自动附加reasoning_effort="high",进一步强化深度推理。
会话恢复与并行编排
在 load.py 的会话恢复逻辑中,"ThoughtAgent"与 "Red team manager" 等名字一同被列入 Agent 历史会话匹配的候选名单,说明 Thought Router 参与的多 Agent 会话可以被load命令按名字恢复、续跑。此外,factory.py 会在启动时动态扫描cai.agents及其patterns子包,将每个Agent实例自动注册为工厂,ThoughtAgent 同样遵循该机制,可按需克隆出多个独立实例。
组合使用:构建一个可运行的 CTF 解题编排
综合以上机制,可以在 CAI 中组合出完整的 Boot2Root 解题链路:
- 加载 Thought Router 模板:
thought.py通过load_prompt_template("prompts/system_thought_router.md")渲染为ThoughtAgent的系统指令,五阶段方法论与循环工作流即由此注入; - 挂载思考工具:Agent 使用
think记录推理日志,使用thought输出五字段结构化分析,用write_key_findings/read_key_findings维护state.txt情报文件; - 编排专职 Agent:参考 red_team.py 的 Swarm 模式,将 ThoughtAgent 克隆为协调者,通过
handoff()与红队 Agent(red_teamer.py)、DNS/SMTP 侦察 Agent(mail.py)等建立交接通道,形成"思考 → 执行 → 再思考"的闭环; - 恢复与并行:会话中断后可用
load命令按 "ThoughtAgent" 名称恢复历史;多目标场景下可经 factory.py 的工厂机制克隆多个独立实例并行推进。
需要说明的是,上述组合涉及模型 API 与本地环境的配置(如CAI_MODEL、ALIAS_API_KEY等环境变量),实际运行前请参照项目安装与配置文档完成模型与密钥设置;模板中的战术偏好(FTP + curl 上传 Webshell)属于特定 CTF 场景的解题策略,不同靶机的实际路径需结合目标环境灵活调整。
小结
system_thought_router.md是 CAI 中 Thought Router 能力的"行为契约":它以五阶段方法论划定进攻节奏,以Thought -> AnotherAgent循环定义编排方式,以thought工具的五个字段约束推理质量,再通过thought.py、reasoning.py、red_team.py等源码落地为可运行的 Agent 与 Swarm 模式。对于希望在自己的安全测试流程中引入"可反思、可编排、可续跑"的 CTF 解题 Agent 的开发者,这份模板与配套源码构成了一个完整、可直接参照的工程范本。
【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考