详细分享了将 Bedrock AgentCore Code Interpreter 作为临时计算草稿板用于实时邮件威胁检测的沙箱设计、架构决策和生产落地教训。
AI Agent 现在已在生产环境中运行,日均数十亿次操作,一个反复出现的架构模式浮出水面:Agent 需要一块计算草稿板。这不仅适用于编码任务,还适用于数据聚合、分析、验证,以及任何仅靠语义推理不够的工作流。
Abnormal AI 是一家行为安全服务提供商,守护着超过 25% 的 Fortune 500 企业。他们已部署了 Amazon Bedrock AgentCore Code Interpreter,这是 Amazon Bedrock AgentCore 的一项能力。Abnormal AI 将其用于支持实时内联邮件威胁检测的 Agent。这些系统目前在生产环境中运行,日均处理数十亿条消息,并以同等规模执行 Agent 驱动的代码,在威胁到达收件箱之前对其进行检测和拦截。
这项工作是 Abnormal AI 构建软件的方式的一部分。目前,其代码变更中有 80% 以某种方式借助 Agent 构建,其中 40% 由后台 Agent 从头到尾完成构建(完全由 AI 构建,而非 AI 辅助)。他们将 AgentCore Code Interpreter 用于威胁检测,体现了同样 AI 原生的方法应用于生产运行时的方式。
在本文中,我们将分享 Abnormal AI 如何构建这些系统、其沙箱方案背后的设计决策,以及面向大规模部署 Code Interpreter 的实践者的经验教训。
Amazon Bedrock AgentCore Code Interpreter 为 Agent 提供了一个完全托管的无服务器运行时,用于动态执行代码。其关键特性包括:
临时 MicroVM 会话:可配置存活时间,默认 15 分钟,最长可达 8 小时,适用于长时间运行的任务。
安全性:会话在安全沙箱中运行,在主机操作系统层面完全隔离,有助于防止会话之间的意外数据泄露。
灵活的网络:可配置为沙箱 VPC 模式或公共互联网访问。
文件处理:通过 API 直接处理最多 100 MB,或连接到 Amazon S3 以处理更大的数据集。
预加载运行时:Python 和 Node.js 环境,内置常用可视化、统计和数据处理库。
内置可观测性:日志发送至 Amazon CloudWatch 和 AWS CloudTrail 用于监控。
关键在于,Code Interpreter 以 API 形式暴露。这意味着它不决定 Agent 的工作流,而是提供了一个盒子,让 Agent 可以在其中运行命令、上传文件并获取结果。对于已有 Agent 基础设施的团队来说,这种即插即用的设计使集成变得简单。
图 1:Amazon Bedrock AgentCore Code Interpreter 架构,其中 Agent 调用 Code Interpreter API 来配置临时 MicroVM 沙箱会话,用于代码执行、文件输入输出和结果检索
大型语言模型(LLM)在推理和语义连贯性方面表现出色,但许多现实世界的操作并不映射到语义推理:
基础数学和计数:"过去一小时我们检测到多少封钓鱼邮件?"这需要计算,而非语言生成。
数据处理和可视化:将原始数据转换为图表、PDF 或结构化报告。
代码验证:运行单元测试、linting 和集成测试来验证 Agent 生成的输出。
通过将大型语言模型与 Code Interpreter 配对,你可以将 Agent 的能力扩展到单纯推理无法达到的水平。
"几乎任何 Agent,无论是否在写代码,都需要一个代码解释器沙箱,让它能够真正处理数据并得出答案。"
—— Shrivu Shankar,Abnormal AI AI 战略副总裁
Abnormal AI 通过三层检测架构处理数十亿封邮件消息,如图 2 所示。
图 2:Abnormal AI 的三层邮件检测管道,第一层(启发式规则,日均数十亿)、第二层(机器学习模型,日均数百万)和第三层(配备 Code Interpreter 的内联 Agent,日均数万),每层处理前一层不确定的、难度逐步递增的案例
第一层 —— 大容量轻量级分类(日均数十亿)
小型模型、启发式规则和轻量级分类器(逻辑回归)处理最大量的流量。在这个规模下,运行更大规模的模型既成本高昂也没有必要。大多数消息无需深度分析即可分类。
第二层 —— 中等规模模型处理不确定案例(日均数百万)
第一层不确定的消息流入深度学习和机器学习(ML)模型,执行更细致的行为信号分析。
第三层 —— 配备 Code Interpreter 的内联 Agent(日均数万)
最难处理的案例,通常需要人工分析师评估的案例,由内联 Agent 处理。这些 Agent 接收威胁情报数据并使用沙箱进行分析,动态编写脚本。然后评估其如何融入整体行为模型并做出判断。误分类由单独的系统处理,该系统会学习并改进系统。各种监控系统验证生产系统的运行状况。
除了图 2 所示的实时分类管道,Abnormal 还部署了一个以批量模式运行的分析师 Agent(图 3):
从检测管道中摄入误分类和调优信号。
识别大型消息集中的模式和趋势。
自主为第一层编写启发式规则的候选草案,基于 Abnormal AI 自身的检测管道特征和信号运行。
改进第二层的模型。
每周约运行 100 个批量作业的规模运行。
图 3:分析师 Agent 反馈循环,其中批量 Agent 从实时管道中摄入误分类,使用 Code Interpreter 会话分析模式,并将改进的启发式规则和模型反馈给第一层和第二层
这些批量作业可以运行超过 30 分钟,期间保持 Code Interpreter 会话。它们还可以跨越长达一天的操作,Agent 间歇性地使用 Code Interpreter。例如,它运行一个会话,在外部训练模型,然后重新调用 Code Interpreter 来处理结果。
Abnormal 为 Code Interpreter 选择了沙箱(无出口)配置,驱动因素有两个:
可复现性 —— 由于沙箱没有外部网络访问,在会话期间任何超出 Abnormal AI 控制范围的因素都无法影响 Agent 的行为。环境设计为完全确定性。
数据泄露防范 —— 威胁情报数据进入沙箱进行分析。即使 Agent 通过提示注入或随机行为变得恶意,它也被设计为能够防止该数据泄露到互联网。
其他安全实践:
受控数据摄入:对进入 Code Interpreter 的数据类型和允许的写入操作进行刻意管控。
子处理者对齐:Code Interpreter 在现有的 AWS 子处理者关系下运营,减少合规负担。
网络隔离分层:沙箱隔离叠加其现有的网络隔离测试工具,提供纵深防御。
在 Abnormal AI 的生产环境中运行 Code Interpreter 时,几项实践应运而生。
1. 给 Agent 它想要的东西
与僵化的逐步工作流相比,Agent 在轻量级通用测试工具下表现更好。为解决问题提供高级原则,让 Agent 运用其智能来决定方法。
2. 每个 Agent 都需要一块草稿板
Code Interpreter 不仅仅适用于编码 Agent。分析邮件的安全 Agent 从计算草稿板中获益,用于数据聚合、模式分析和验证。
3. 使用程序化验证器作为护栏
当 Agent 拥有程序化验证工具时,它们能交付更高质量的输出。单元测试、集成测试和 linting 允许 Agent 在沙箱中自我测试,然后再交付最终结果。
4. 使用文件系统作为长时间运行任务的恢复点
对于超过 Code Interpreter 会话时间的操作(例如模型训练),使用文件系统作为检查点。运行 Code Interpreter 进行计算,将状态持久化到文件,在外部执行长时间运行的操作,然后重新调用 Code Interpreter 来处理结果。分析师 Agent(图 3)在长达一天的模型训练操作中使用此模式。
Abnormal AI 的实现为生产 Agent 系统展示了一个关键洞察:Code Interpreter 不仅仅是一个编码工具。它是 Agent 用于计算推理的基础设施。通过将 AgentCore Code Interpreter 的托管安全沙箱与其自身的轻量级 Agent 测试工具相结合,Abnormal 实现了:
通过沙箱隔离实现零信任安全姿态,有助于防止数据泄露。
通过将 Agent 计算留给最难处理的案例,实现十亿消息级别的规模(图 2)。
无论你是在构建安全 Agent 还是需要 Agent 处理数据并验证自身输出的系统,模式都很清晰。给你的 Agent 一块草稿板,并更多地信任它们的评估,而非它们的断言。
立即开始使用 Amazon Bedrock AgentCore Code Interpreter。
探索 AgentCore 能力和其他工具(Gateway、Memory、Runtime、Identity)。
在 abnormalsecurity.com 了解更多关于 Abnormal AI 的信息。
Abnormal AI 是 AWS 客户。本文中的观点和看法仅属于客户本人,不一定反映 Amazon Web Services 的观点。