文章摘要
XBOW通过引入合金构建的代理,显著提升了其漏洞检测代理的性能。在固定基准和有限迭代次数下,成功率从25%提升至55%。这一创新不仅适用于网络安全,还可广泛应用于各类代理式AI系统。
文章总结
XBOW – 合金构建的智能体
2025年7月17日
Albert Ziegler
AI负责人
今年春天,我们提出了一个简单且新颖的想法,显著提升了XBOW漏洞检测智能体的性能。在固定基准测试和有限迭代次数下,成功率从25%提升至40%,随后很快达到55%。
XBOW的挑战
XBOW是一款自动化渗透测试工具。用户只需将其指向目标网站,它便会尝试入侵。如果成功找到漏洞(这是XBOW的强项),它会报告漏洞以便修复。XBOW的自动化特性意味着,一旦完成初始设置,便无需人工干预。
渗透测试涉及大量工作,包括发现漏洞、构建网站的技术栈、逻辑和攻击面的心理模型,并通过系统化探测不断更新模型。然而,本文的重点并非这些,而是讨论在每次测试中频繁出现的一个可替换子任务:在已知漏洞类型的情况下,针对攻击面的某一部分进行漏洞验证。
智能体的任务
在类似CTF(Capture The Flag)的挑战中,智能体通过多次迭代执行任务。每次迭代中,智能体决定执行一个操作,如终端命令、编写Python脚本或运行渗透测试工具。我们审核并执行该操作,展示结果,智能体再决定下一步操作。通常在80次迭代后,我们会停止任务,因为此时重新启动一个智能体比继续执行更高效。
大语言模型(LLM)
XBOW的AI策略从一开始就强调模型无关性,即我们可以根据需求选择最佳的大语言模型(LLM)。我们通过基准测试不断评估新模型。OpenAI的GPT-4曾是我们评估的最佳现成模型,但自去年6月Anthropic推出Sonnet 3.5后,其他模型难以匹敌。随后,Google的Gemini 2.5 Pro和Anthropic的Sonnet 4.0相继推出,各自在某些挑战中表现优异。
合金智能体
我们提出了“合金智能体”的概念:在智能体的迭代过程中,交替调用不同的模型。虽然模型之间并不知晓彼此的存在,但它们在同一对话线程中交替贡献解决方案。这种方法的优势在于:
- 保持模型调用总数不变。
- 让每个模型都能发挥其优势。
结果
合金智能体的表现优于单一模型。Sonnet 3.7、GPT-4.1、Gemini 2.5 Pro和Sonnet 4.0在合金组合中均表现出色。我们观察到以下趋势:
- 模型差异越大,合金表现越好。
- 单个表现更好的模型在合金中也会更出色。
- 合金应倾向于更强的模型。
何时使用合金模型
考虑使用合金模型的情况包括:
- 任务需要通过多次迭代调用LLM来解决问题。
- 任务需要结合多种不同的思路。
- 这些思路可以在任务的不同阶段出现。
- 拥有足够多样化的模型。
- 这些模型各有优缺点。
何时不使用合金模型
合金模型并非万能,以下情况需谨慎:
- 提示词过长,依赖提示缓存降低成本。
- 任务进展平稳,而非需要突发性灵感的任务。
- 只有一个模型在任务中表现出色。
- 所有模型对任务的难易程度看法一致。
其他组合方法
除了合金模型,还有其他组合模型的方法,例如:
- 不同模型负责不同任务。
- 在每一步询问不同模型或使用不同提示词。
- 让模型直接对话,互相完善答案。
然而,这些方法通常会增加开销或模型调用次数,不适合XBOW的搜索型任务。
数据分享
我们分享了相关数据,供有兴趣的读者进一步探索。如果您有适合合金模型的用例,欢迎尝试并与我们分享经验。
通过合金智能体,我们成功结合了不同模型的优势,显著提升了任务解决率。这一创新为AI智能体的未来发展提供了新的思路。
评论总结
评论主要围绕“多模型协作”(alloying models)的有效性和应用展开,观点多样且具有争议性。
支持多模型协作的观点: 1. 模型多样性提升效果:sebmellen认为,多个模型协作(consortium approach)比单一模型分析效果更好,尤其是在处理简单数据时,模型多样性有助于避免单一模型的偏见。 - "having multiple models approach the same problem at once and then essentially argue about the results, yields far better outcomes." - "模型多样性是一个加分项。"
- 不同模型提供新视角:rubycollect4812和esafak提到,切换模型可以提供不同的视角,尤其是在代码理解或项目架构中,Gemini和Claude的协作效果显著。
- "switching from gemini to sonnet can give a different angle or better code understanding."
- "I usually ask Gemini to architect and implement the first pass, then iterate with Claude."
对多模型协作的质疑与补充: 1. 成本与效率问题:zer00eyz和CamperBob2指出,多模型协作可能只是昂贵的贝叶斯函数模拟,且多上下文管理会增加使用成本。 - "Stack 3 models together, then 4... Congratulations you just have a very expensive simulation of a Baysian function." - "multiple contexts seems worth considering, even though you end up doubling the usage."
- 缺乏基准测试:stingraycharles认为,多模型协作的效果应与独立模型完成任务的结果进行对比,但目前缺乏相关基准测试。
- "the alloying should be benchmarked against letting models complete the task in their own isolated context."
其他相关讨论: 1. 迭代次数与重启策略:btown和joshuamoyers提到,在多次迭代后,重启新的求解器(solver agent)比继续使用累积错误假设的模型更高效。 - "after 80 iterations, it becomes more efficient to start a new solver agent." - "it's usually just better to start a fresh conversation and re-seed the basics."
- 历史背景与创新性:recipe19和kgeist指出,多模型协作并非全新概念,早在2023年就有“专家混合”(mixture of experts)的应用。
- "the 'mixture of experts' was a big thing in late 2023."
- "the idea isn't exactly novel, I read about it back in 2023."
细节与改进建议: 1. 图表与标注问题:zomglings和knowaveragejoe对图表中的颜色和轴标签提出批评,认为其设计不够清晰。 - "the use of different shades of green for the graph is just a little insane." - "the axes on the graph say 'Sonnet 2.5' and 'Gemini 4.0'."
总结:评论普遍认可多模型协作的潜力,但也对其成本、效率和创新性提出质疑,同时建议改进基准测试和图表设计。