📢 转载信息
原文作者:Evandro Franco 等
AI 智能体已不仅仅局限于聊天对话。编写代码、持久化文件系统状态、执行 Shell 命令以及管理文件系统中的状态,这些都是它们目前可以完成的任务。随着智能体编程助手和开发工作流的成熟,文件系统已成为智能体主要的“工作记忆”,将其能力扩展到了上下文窗口之外。这种转变给构建生产级智能体的团队带来了两个挑战:
- 文件系统是临时的:当智能体的会话停止时,它所创建的一切——如安装的依赖项、生成的代码或本地 git 历史记录——都会消失。
- 确定性操作受限:当工作流需要
npm test或git push等确定性操作时,通常被迫通过大语言模型 (LLM) 进行路由,或在运行时之外构建自定义工具。这两种选择都不理想。
Amazon Bedrock AgentCore Runtime 现在通过两项功能解决了这两个挑战:用于持久化智能体文件系统状态的受管会话存储(公共预览版),以及用于直接在关联智能体活动会话的 microVM 内运行 Shell 命令的执行命令 (InvokeAgentRuntimeCommand) 功能。这两项功能结合在一起,开启了以往无法实现的复杂工作流。
受管会话存储:让状态得以留存
第一个挑战(临时文件系统)可以通过受管会话存储来解决。它为智能体提供了一个能够跨越停止/恢复周期的持久化目录。持久化功能直接构建在运行时中,并在创建智能体时进行配置——写入该目录的所有内容即使在计算环境被替换时也能保留。
配置持久化存储
要配置持久化存储,请在智能体运行时的 filesystemConfiguration 中添加 sessionStorage。挂载路径必须以 /mnt 开头,后跟文件夹名称。配置完成后,智能体写入此路径的任何文件都会自动持久化到受管存储中。
停止与恢复体验
从智能体的角度来看,一切如常。它像往常一样读取和写入文件,无需更改智能体代码——无需特殊的 API,也无需保存/恢复逻辑或序列化。只需将文件写入 /mnt/workspace,停止会话,然后恢复它,文件依然存在。
执行 Shell 命令:直接在智能体环境中进行确定性操作
第二个挑战可以通过 InvokeAgentRuntimeCommand 解决。你可以直接在正在运行的 AgentCore Runtime 会话中执行 Shell 命令,并实时通过 HTTP/2 流式传输输出。
智能体与 Shell 命令的分工:
- 使用执行命令:适用于已知命令(如
npm test,git push)、需要确定性结果(相同命令产生相同结果)、需要长进程的流式输出,或者作为工作流中的验证节点。 - 使用智能体:适用于需要推理的任务(如“分析代码并修复错误”)、需要 LLM 决策的情况,以及需要智能体循环使用工具的场景。
关键在于,命令运行在与智能体相同的容器、文件系统和环境中,而非侧边容器或通过套接字通信的独立进程。这意味着智能体在 /mnt/workspace/fix.py 写入的文件,可以通过命令 cat /mnt/workspace/fix.py 即时读取,无需同步或文件传输步骤。
强强联合:文件系统作为共享上下文
当配置了受管会话存储时,整个工作流便被串联起来:
- InvokeAgentRuntime 写入代码、生成工件。
- InvokeAgentRuntimeCommand 运行测试、执行 git 操作。
- 持久化:停止会话时计算环境(microVM)终止,但
/mnt/workspace被持久化。 - 恢复:第二天恢复时,新的计算环境挂载相同的存储,智能体和命令都可以看到之前的文件。
这种模式构成了完整的工作流循环:智能体进行推理,执行命令进行操作,而持久化文件系统负责记忆。即使你合上电脑,工作进度也不会中断。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区