Outtake 如何基于 Claude 构建网络调查 Agent
发布日期: 2026年7月22日
分类: Agents
来源: https://claude.com/blog/how-outtake-built-a-cyber-investigator-on-claude
在“初创公司如何使用 Claude 构建产品”系列中,我们关注 AI 如何帮助初创公司改变所在行业。本文介绍 Outtake 如何构建一个自主网络调查 Agent,用以发现、调查和清除数字威胁,从克隆登录页到完整的攻击者网络。
| 快速了解 Outtake | |
|---|---|
| 名称 | Outtake |
| 成立时间 | 2023 年 |
| 创始人 | Alex Dhillon(CEO),曾就职于 Palantir 的 moonshot team |
| 增长情况 | 年度经常性收入同比增长 6 倍、客户数量同比增长超过 10 倍;仅 2025 年就扫描了超过 2,000 万起潜在网络攻击。 |
即使具备强有力的安全措施和控制机制,恶意行为者仍可把 AI 包装成看似无害的用途,以掩盖恶意意图。代码生成平台可以制作逼真的登录门户;Agentic go-to-market 工具可加速网络钓鱼的分发;图像生成能力则可被用于身份冒充。传统网络安全防御很难跟上这种变化。
AI 网络安全平台 Outtake 的创始人兼 CEO Alex Dhillon 表示:“如果站在攻击者的角度看,现在确实是发动攻击的好时机。由于 AI,平均一次攻击不仅执行得更快,而且能获得更深层的访问权限。”
Outtake 把完整的数字信任攻击链整合为统一防御体系,利用成组的 AI Agent 自主发现、调查和清除针对客户的威胁。其客户包括领先的 AI 实验室、大型对冲基金和美国联邦机构。
下面介绍 Outtake 团队如何使用 Claude Code 与 Agent SDK,基于 Claude 构建 Recon Agent 这一长时运行的自主网络调查 Agent。
Agentic 攻击需要 Agentic 防御
攻击者瞄准企业时,通常遵循相同过程:将公开数据武器化,制作冒充目标的诱饵,再利用内部系统。AI 加速了这个过程。
在真正入侵之前,攻击者会先收集组织及其管理人员、员工的公开信息;再把这些信息加工成诱饵,例如带有欺诈性登录页的假网站,诱骗受害者交出凭据。由诱饵获得的访问权限,会帮助攻击者跨越边界,触及组织最有价值、最敏感的资产。
这个三阶段过程可以预测,但传统安全工具通常只覆盖其中一段:
- 威胁情报工具监测公开数据阶段;
- 品牌保护工具监控冒充行为;
- 终端工具保护内部系统。
Outtake 的 Recon Agent 调查的是一次冒充事件背后的完整网络。它不会只下架一个克隆登录页,而是会收集并分类该事件的证据。
随后,它沿着线索追踪关联基础设施,例如伪装成“Customer Support”的假 Telegram 账号,并以图谱形式刻画攻击者网络。最后,Agent 输出一份报告,解释调查过程、攻击者画像,以及攻击者行为的重建时间线。
要完成这种复杂工作流,Recon Agent 能读、写和执行代码,甚至可以直接与恶意登录页交互,查看被窃凭据实际流向何处。
这类调查可能要求 Agent 长时间自主运行。其会话时长中位数为 16 分钟,但经常延长到一小时甚至更久;截至目前,最长的一次运行在返回结果前完成了两小时的 Agentic 工作。
Outtake 如何用 Claude 构建复杂的长时运行 Agent
Outtake 大致分四个阶段构建 Recon Agent。每个阶段的核心都是先理解一项优秀调查应是什么样,再逐步把这种判断交给 Agent。

第一步:先成为领域专家
在构建 Agent 的任何部分之前,Outtake 的工程师亲自完成真实网络调查,并从客户和 design partner 那里吸收领域知识。
目标是定义“好”的标准。对于此类调查,这意味着明确哪些证据重要、如何组织证据,以及什么能把可执行的结论与猜测区分开。这个标准成为他们在后续每个阶段都会回看的固定参照点。
Outtake Agent 平台工程负责人 Jack Hayford 说:“构建长时运行 Agent 最重要的一点,是你必须真正了解什么才算做好,Agent 应当做什么。因为最终你要确保它每一次都能做到。”
第二步:在 Claude Code 中做原型
最初,Outtake 团队使用传统 Agent 框架,逐步将已标准化的调查自动化。
但他们很快意识到,Recon Agent 不能只是一个简单调查工具。它需要能编写和执行代码、即时构建工具,并且真正与恶意域名交互。
Hayford 说:“每次调查都不同,而且技术深度很高。Agent 需要编程能力,而 Claude Code 是一个很强的初始 harness,让我们能验证这些假设,并越来越深入地实验。”
正是在 Claude Code 的原型阶段,团队形成了一条核心设计原则:在编排层严格约束 Agent,例如“调查某个域名时始终执行 X、Y、Z”;但凡是需要判断的地方,都让它自由即兴应对。
第三步:升级为生产级 harness
Hayford 说:“我们非常喜欢 Claude Code 引入的模式,但需要进一步访问更底层的 primitives,而这些并不是我们想自己重建的东西。”
因此,使用 Claude Agent SDK 是把 Recon Agent 带入生产的自然下一步。承接 Claude Code 中的 Skills 和模式,让团队在更严格控制 Recon Agent 的 memory、context 和 file system 的同时,不必为 Agent loop 和 session handling 重新造轮子,也不会损失开发速度。
第四步:建立由 eval 驱动的紧密迭代闭环
在网络安全场景中,低成本、快速响应的迭代尤为关键:攻击者一旦知道防御工具的存在就会立即适应。团队从一开始就整合了 Agent eval,并最终建立起可并行运行大量场景的完整 eval suite。借此,他们能安全、自信地做大范围变更,例如升级模型或全面重构 memory system。
这也使团队不再亲自卡在 Agent loop 中。比如 Recon Agent 结束调查后,若报告说缺少某个工具会限制表现,另一个 coding agent 会读取这些建议、编写新工具,并构建测试场景进行尝试。
人只在最后介入,查看结果:这个工具是否让 Agent 的调查表现变好?Hayford 说:“我们才是瓶颈。构建这类长而复杂的 Agent 时,反馈闭环自动化非常重要,它更快,对开发者来说也更令人满足。”
构建长时运行 Agent 的经验
Agent 发展的早期,构建者会为 Agent 预先编排硬编码、确定性的逐步路径,避免其偏离轨道。现在,复杂工作流正逐渐由 harness 取代:一个由 memory、tools、skills 和 guardrails 组成的支持环境。
以下是 Outtake 团队构建 Recon Agent 的几项经验。
工具:文件系统和 bash 已足够
文件系统提供了能够穿越 context compaction 的记忆。虽然人们通常会为 Agent 配置极其具体、细粒度的工具,但给 Agent 一个文件系统,并允许它编写、读取和执行代码,也能帮助它应对障碍。
Hayford 说:“把这些非常强大、开放式的工具和能力交给 Agent,是一次巨大跃迁。我们见过很多案例:某个工具因为网络波动等原因失败,Agent 会自行找到合适的替代方案并继续。由于我们构建的其余 harness 足够强,同时又给它留下使用开放式工具即兴处理的空间,它仍能得到成功的结果。”
Prompt 是建议,不是约束
Prompt 在需要时提供灵活性,而能硬编码的部分应当硬编码,以确保稳定性。Hayford 说:“当你构建的长时运行 Agent 逐渐复杂时,Prompt 只是建议。当 Agent 没有按预期行动时,人们自然会往 Agent 最有可塑性的部分追加内容。把‘发生 X 时一定做 Y’塞进 system prompt,起初可能有效;但随着 Agent 运行得越来越久,这个 prompt 里的每一个词最终都可能被忽略。”
正确做法是围绕这种可能性设计:找出每次都必须做的事,把它变成 Agent guardrails 的一部分。Hayford 说:“把这些内容从 prompt 中抽出来,放进 harness。Agent 就无需再思考它们,可以把更多 context 和注意力用于真正擅长的判断。”
参阅《指导 Claude 的最佳实践》,了解不同方法的上下文成本与控制力度。
Evals 不只为了可靠性,更为了速度
可以把人工“复盘”视为自动化 eval 的路线图,从而缩短开发周期。通常,人们把 eval 看作保障可靠性的质量门;但对长时运行 Agent 来说,更大的回报是速度。
早期,每次 Recon Agent 运行后,团队都会人工审查它的表现。但要阅读一个 Agent 30 分钟内完成的一切记录,既痛苦也无法规模化。Hayford 说:“在现代 Agent 开发中,评估输出是闭环中最昂贵的一步。”
eval 只是把这种复盘结构化、可评分、可自动化。一旦你把“好”的标准编码为可重复检查,就能让一个 Agent 充当评审,阅读 30 分钟的 transcript 并为这次运行评分。
Hayford 说:“有些工程师会因觉得必须构建完美案例而对 eval 心存顾虑。但从最开始就做出某种形式的 eval,无论它多么正式或‘完美’,都会让你更快构建出 Agent。”
保护 Agent
Prompt injection 是真实威胁,因此把 Agent 放进 sandbox 或给它设置防护层至关重要。Outtake 选择 Claude 的部分原因,是其在抵御 prompt injection 上的能力。
Hayford 说:“为 Recon Agent 做安全设计是我们很重视的一点。我们给了它 file system 和 bash,又让它进入对抗性环境,因此最重要的问题是构建某种 blastbox:既能尽量把 Agent 与敏感内部系统隔离,又不真正妨碍它完成工作。”
他们的设计假设 Agent 可能被劫持,因此周边系统被设计为能够控制损害范围。不过,安全设计应随 Agent 的用途而变化,并非所有 Agent 都适合采用 blastbox。
Outtake 现在会在 Agent 访问互联网的准确节点对信任等级进行评分,设置检查点来评估它即将接触的内容:“这个页面是否在冒充?是否为恶意软件?是否正在对 Agent 发起 prompt injection?”当 Agent 穿行于日益对抗性的互联网时,这可能正是它所需的防护层。
| Outtake 团队的最佳实践 | 建议 |
|---|---|
| 你是否知道“好”是什么样? | 先成为 Agent。亲自执行真实任务,并从客户和 design partner 获得领域知识,建立能约束后续每次迭代的固定标准。 |
| 每一层复杂性是否都有必要? | 先找到最简单的可行版本,再逐步自动化。只有结果证明值得时才增加复杂度,这与传统软件开发遵循相同纪律。 |
| Harness 是否匹配工作负载? | 先在 Claude Code 中快速验证假设;当需要更底层地控制 memory、context 和 sessions 时,再升级到 Agent SDK。不要自己重建 Agent loop。 |
| Agent 应在哪些地方受约束? | 在 orchestration layer 硬编码 guardrails,但不要让约束侵入底层判断。留给 Agent 即兴发挥的空间,往往才会带来最佳结果。 |
下一步
Recon Agent 已上线,并正在实际执行调查。想进一步了解 Outtake 如何使用 Claude 大规模绘制攻击性基础设施,可以:
- 观看完整 webinar,查看现场演示以及 Outtake 如何自主调查、绘制大规模威胁基础设施的深入讨论;
- 查看 Recon Agent 的实际运行,了解它如何从单个冒充事件扩展到完整攻击者画像;
- 申请免费的 Recon Agent assessment,查看调查能在你的风险暴露面中发现什么。