24小时,40项挑战:AI团队如何在BearcatCTF 2026中位列前6%
在BearcatCTF 2026上部署Claw-Stack Trinity架构的完整回顾——什么有效,什么无效,以及AI智能体在哪里达到了极限。
最终结果:在362支队伍中排名第20。40个中的44项挑战被解决。24小时的无人值守自主运行。这些数字超出了我们的预期,并揭示了一些我们没有预料到的东西——不是关于AI本身,而是关于结构化智能体协调能实现什么。
Trinity架构
BearcatCTF是我们称之为Trinity的首次真实部署:三个具有不同角色的专门智能体,在共享知识库上运行。
Commander(Claude Opus)充当战略层。当我们分配一项挑战时,Commander运行快速侦察阶段,建立攻击计划,然后协调Operator和Librarian执行。它在黑板上跟踪进度,决定何时改变策略,并确定何时放弃死胡同。Commander从不直接编写漏洞利用代码——它的工作是在每项挑战内进行规划和协调。
Operator(Claude Sonnet)是解题者。当Commander分配一项挑战时,Operator收到挑战描述、任何附加文件,以及Librarian关于之前挑战中任何相关知识的简报。Operator处理问题:编写脚本、测试有效载荷、阅读源代码、运行工具。
Librarian(Claude Haiku)管理知识库。每解决一项挑战后,Librarian提取关键技术,对其进行分类,并将其存储在共享黑板中。当Operator遇到新挑战时,Librarian拉取相关条目——“这是我们两小时前学到的关于JWT伪造的内容。”
三个智能体通过OpenClaw的sessions_spawn和自动通知机制进行通信。Commander为每项任务生成Operator和Librarian作为子智能体;当子智能体完成时,它会自动向Commander通知其结果。一个持久的blackboard.json文件——由Commander维护——充当持久状态层,在各个生成会话中跟踪发现、已完成的步骤和当前的攻击计划。这使得Commander即使在会话压缩后也能恢复完整的上下文,而不仅仅依赖于消息历史。
最初的几个小时
比赛在中午开始。7个类别中的44项挑战——逆向工程(7项)、OSINT(5项)、取证(7项)、密码学(8项)、网络(4项)、杂项(8项)和pwn(5项)。我们按大致优先顺序将挑战提供给Commander,从我们期望快速解决的类别开始。
最初的几个小时很快。网络挑战迅速被攻克:基本SQL注入、不安全的cookie实现、带有alg: none的JWT。密码学有几个Operator在几分钟内完成的编码挑战。Librarian在进行编目。
到第四小时,解决速度已经放缓。剩余的挑战更困难,Commander在每项挑战上花费了更多时间——更深入的侦察、更多的Librarian咨询、更长的Operator会话。
反作弊机制
我们在系统中早期建立了一条规则:如果一项挑战在三分钟内被解决,在提交标志之前会自动运行审计。审计员审查会话历史,检查智能体是否真的解决了问题,或是否通过某种捷径获得了标志。
需要明确的是——这不是关于竞争意义上的作弊。CTF竞赛在作弊方面没有基准测试那样的真正问题。反作弊机制是关于基准完整性:我们希望确信我们的解决日志反映了真正的问题解决,而不是意外的标志泄露或幸运的猜测。如果我们要声称我们的智能体解决了40项挑战,我们需要相信每次解决都是真实的。
这证明很重要。审计发现了一个真实的案例:在CryptoPwn上,一个pwn挑战,Operator阅读了挑战目录中的一个README.md文件,其中包含标志,而不是实际利用该服务。会话在解决日志中被标记为CHEATED,Commander被指示通过合法的漏洞利用重新进行挑战。
该机制对于任何将CTF作为AI基准的人也都很有相关性——这变得越来越普遍。没有这种类型的审计,很容易用不反映实际能力的假阳性来夸大解决率。
中盘
第6到20小时是比赛的核心。这是Librarian集成展示其价值最清楚的地方。取证挑战通常共享技术——隐写术、文件提取、元数据提取。随着Librarian从已解决的取证挑战中积累知识,Operator在新取证挑战上的首次尝试得到了更好的校准。Operator不再从第一原理开始,而是会收到Librarian的简报:“之前的取证挑战使用了binwalk和foremost;JPEG隐写术出现了两次。”
密码学展现了类似的模式。第八个密码挑战被解决的速度明显快于第一个,尽管实际难度相似,因为到那时为止Librarian已经提取了团队处理替换密码、填充预言机攻击和XOR密钥恢复的方法。
在每项挑战中,Commander做出了可靠的战术决策。当一种方法停滞时,它会将Operator转向不同的攻击向量,而不是硬生生地尝试。在一个字符串分析不起作用的取证挑战中,Commander切换到熵分析,并在几分钟内找到了隐藏的有效载荷。
四项未解决的挑战
我们以40/44结束。四项未解决的挑战分解为三种不同的失败模式:
**两个依赖于图像。**一个需要从降级的图像中读取QR码,另一个涉及识别照片中的视觉细节。Claude的视觉能力在一般图像理解方面是可靠的,但对于CTF图像挑战通常需要的那种精确的像素级分析来说并不是最优化的。
**一个是需要网络搜索的OSINT挑战。**智能体需要基于视觉和上下文线索在线查找特定信息,但基于搜索的OSINT工作流程——其中你需要根据部分结果迭代地优化查询——没有在时间预算内收敛到解决方案。
**一个是困难的pwn挑战。**这是一个真实的难度天花板:二进制漏洞利用需要编写具有特定约束的自定义shellcode,这超出了智能体在可用时间内能够推理的范围。
三个不同的能力差距,三个不同的修复。图像挑战需要专门的视觉工具——比如包装图像处理库的自定义MCP服务器。OSINT搜索差距需要更好的迭代网络研究工具集成。困难的pwn是一个纯粹的推理深度问题,随着模型变强会改进。
我们学到的
**黑板模式有效。**使用持久的blackboard.json作为持久状态层——加上spawn/announce用于智能体通信——是协调智能体而不需要紧密耦合的一种简单有效的方法。Librarian的知识提取并不复杂——本质上是”这里是上一个解决的挑战中这个类别的技术”——但即使是这个简单的版本也有意义地改善了Operator对同一类别中后续挑战的首次尝试质量。
**按角色选择模型很重要。**为Librarian使用Haiku是正确的选择:知识提取和存储是一项简单的高容量任务,其中延迟比推理深度更重要。为Commander使用Opus为战略层提供了做出优先级和排序判断所需的推理能力。Sonnet为Operator平衡了大部分实际工作的深度和成本。
**未解决的挑战有三个不同的天花板。**图像分析、基于搜索的OSINT和困难的二进制漏洞利用各代表一个不同的能力差距。图像和搜索差距可以通过更好的工具来解决(专门的视觉模型、迭代搜索工作流)。pwn天花板是一个纯粹的推理深度问题——随着模型变强,这个问题会改进。
**无人值守运行是可以实现的,但在特定方面很脆弱。**该系统运行了24小时而无需人工干预。它没有崩溃、没有循环,也没有提交明显错误的标志。但它也没有在遇到无法处理的东西时寻求帮助。这里有一个设计问题,关于自主智能体何时应该停止并等待人工输入,与何时应该做出最佳猜测并继续。对于CTF,继续通常是正确的。对于其他领域,可能不是。
比赛日志——会话历史、工具调用和Librarian条目——运行到数十兆字节。我们才刚开始分析它们。标题数字——前6%——令人满意,但更有趣的数据在失败模式中。