Abnormal AI:用 Amazon Bedrock AgentCore 大规模构建智能邮件安全防护
AI 智能体如今已在生产环境中大规模运行,每天执行数十亿次操作。一个反复出现的架构模式也随之浮出水面:智能体需要一个“计算暂存区”。不光写代码时需要,在做数据聚合、分析、验证,以及任何光靠语义推理不够用的工作流时,都用得上。
Abnormal AI 是一家行为安全服务商,为超过 25% 的《财富》500 强企业提供防护。他们部署了 Amazon Bedrock AgentCore Code Interpreter(AgentCore 代码解释器),这是 Amazon Bedrock AgentCore 的一项能力,用于支撑其实时在线邮件威胁检测的智能体。这些系统目前已在生产环境运行,每天处理数十亿封邮件,并以同等规模执行智能体驱动的代码,在邮件进入收件箱之前就检测并拦截威胁。这也是 Abnormal AI 开发方式的一部分:如今他们有 80% 的代码变更借助智能体完成,其中 40% 完全由后台智能体端到端构建(纯 AI 生成,而非 AI 辅助)。把 AgentCore Code Interpreter 用于威胁检测,正是这套 AI 原生思路在生产运行时的延续。
本文将介绍 Abnormal AI 如何设计这些系统、其沙箱方案背后的设计取舍,以及开发者在大规模部署 Code Interpreter 时的实战经验。
什么是 Amazon Bedrock AgentCore Code Interpreter?
Amazon Bedrock AgentCore Code Interpreter 提供了一个全托管、无服务器的运行时,让智能体可以动态执行代码。主要特性包括:
- 临时微型虚拟机会话:存活时间可配置,默认 15 分钟,最长可达 8 小时,适合长时间运行的任务。
- 安全性:会话运行在安全沙箱中,在宿主操作系统层面完全隔离,避免不同会话之间意外泄露数据。
- 灵活网络:可配置为沙箱 VPC(虚拟私有云)模式,也可开放公网访问。
- 文件处理:通过 API 直接上传最大 100 MB;更大的数据集可以接入 Amazon S3(Amazon Simple Storage Service)。
- 预装运行时:Python 和 Node.js 环境,内置常用的可视化、统计和数据处理库。
内置可观测性:日志会发送到 Amazon CloudWatch 和 AWS CloudTrail,方便监控。更关键的是,Code Interpreter 本身以 API 的形式对外暴露,因此它不会规定智能体必须走什么流程,只是提供一个「盒子」——智能体可以在里面执行命令、上传文件、取回结果。对于已经有一套智能体基础设施的团队来说,这种即插即用的设计让集成变得非常简单。

智能体为什么需要一块「计算草稿纸」
大语言模型(LLM)擅长推理和语义连贯,但现实中的很多操作根本用不上语义推理:
- 基础运算和计数:比如「过去一小时我们检测到多少封钓鱼邮件?」,这需要算,而不是靠语言生成。
- 数据处理与可视化:把原始数据变成图表、PDF 或结构化报告。
- 代码验证:跑单元测试、静态检查、集成测试,用来验证智能体生成的输出。
把大语言模型和 Code Interpreter 搭配起来,就能让智能体的能力超出单纯推理所能达到的范围。
「几乎任何智能体,不管它写不写代码,都需要一个代码解释器沙箱,让它能真正把数据算一算、得出答案。」
—— Shrivu Shankar,Abnormal AI 人工智能战略副总裁
Abnormal AI 的架构:十亿级消息下的三层检测
Abnormal AI 每天要处理数十亿封邮件,走的是一套三层检测架构,如图 2 所示。

第一层——大吞吐量轻量分类(每天数十亿封)
用小型模型、启发式规则和轻量分类器(逻辑回归)来处理最大的流量。
这个规模下,跑更大的模型既费钱又没必要,因为大多数邮件不做深度分析也能分类。
第二层——中等模型处理不确定的邮件(每天数百万封)
第一层拿不准的邮件会进入深度学习和机器学习(ML)模型做更深入的行为信号分析。
第三层——Code Interpreter 内联代理(每天数万封)
最难判断的邮件通常需要人类分析师介入,现在交给内联代理处理。这些代理接收威胁情报数据,在沙箱里分析,动态编写脚本,然后评估它如何融入整体行为模型并做出判断。误判由另一套系统处理,它会从中学习并持续改进整个系统。还有多种监控系统对线上系统进行验证。
分析师代理——批量情报
除了图 2 中的实时分类流水线,Abnormal 还部署了一个批量模式运行的分析师代理(图 3):
- 从检测流水线中接收误判数据和调优信号
- 在大量邮件集合中识别模式和趋势
- 自动为第一层撰写候选启发式规则草稿,基于 Abnormal AI 自己的检测流水线特征和信号运行
- 为第二层改进模型
- 每周大约运行 100 个批处理任务
这些批处理任务可以运行超过 30 分钟,期间 Code Interpreter 会话保持活跃。它们也能跨越一整天的操作,代理间歇性地使用 Code Interpreter。比如,它先运行一个会话,在外部训练模型,然后重新调用 Code Interpreter 来处理结果。
安全:零信任沙箱设计
Abnormal 选择无出口(no egress)配置的 Code Interpreter 沙箱,出于两点考虑:
- 可复现性——沙箱没有外部网络访问,会话期间任何 Abnormal AI 控制范围之外的因素都无法影响智能体行为,环境完全确定。
- 防止数据外泄——威胁情报数据进入沙箱做分析。即便智能体因提示注入或随机行为而“变坏”,设计上也阻止这些数据流向互联网。
其他安全实践:
- 受控数据摄入:明确规定哪些数据可以进入 Code Interpreter,以及允许哪些写入操作。
- 次级处理者对齐:Code Interpreter 运行在现有的 AWS 次级处理者关系下,减少了合规负担。
- 网络隔离分层:沙箱隔离叠加在已有的网络隔离框架之上,形成纵深防御。
经验与最佳实践
Abnormal AI 在生产环境运行 Code Interpreter 的过程中,总结出几条实践:
1. 给智能体想要的东西
轻量、通用的框架比死板的逐步工作流效果更好。给出解决问题的高层原则,让智能体自己决定怎么做。
2. 每个智能体都需要草稿纸
Code Interpreter 不只服务于编码类智能体。分析邮件的安全智能体也能借助计算草稿纸做数据聚合、模式分析和验证。
3. 用程序化验证器当护栏
有了程序化验证工具,智能体的输出质量更高。单元测试、集成测试和 lint 检查让智能体能在沙箱内自测,再交付最终结果。
4. 用文件系统做长任务的恢复点
对于超出 Code Interpreter 会话时长的操作(比如模型训练),用文件系统做检查点。用 Code Interpreter 做计算,把状态写入文件,在外部执行长时操作,再重新调用 Code Interpreter 处理结果。
分析师智能体(图 3)就用这套模式,完成长达一整天的模型训练任务。
结论
Abnormal AI 的实践揭示了一个关键认知:对生产级智能体系统来说,Code Interpreter 不只是写代码的工具,而是智能体用来做计算推理的基础设施。他们把 AgentCore Code Interpreter 提供的托管安全沙箱,和自己轻量的智能体框架结合起来,实现了两件事:
- 零信任安全:通过沙箱隔离,防止数据外泄。
- 十亿级消息处理规模:把智能体算力留给最难的案例(图 2)。
不管你是做安全智能体,还是搭建需要智能体处理数据、验证自己输出的系统,这套模式的思路都很清楚:给智能体一张草稿纸,并且更相信它的验证结果,而不是它的口头结论。
下一步
- 上手 Amazon Bedrock AgentCore Code Interpreter。
- 了解 AgentCore 的其他能力与工具(Gateway、Memory、Runtime、Identity)。
- 访问 abnormalsecurity.com 了解更多 Abnormal AI 的信息。
Abnormal AI 是 AWS 客户。本文中的观点和意见来自该客户,不代表 Amazon Web Services 的立场。
关于作者
Aswin Vasudevan
Aswin 是 AWS 安全与 ISV 领域的资深解决方案架构师。他热衷于生成式 AI 和无服务器架构,喜欢与客户合作,打造能带来业务价值的方案。
Felipe Lopez
Felipe 是 AWS 的首席 AI/ML 专家解决方案架构师。加入 AWS 之前,他曾在 GE Digital 和 SLB 工作,负责工业应用的建模与优化产品。
Shrivu Shankar