目 录CONTENT

文章目录

使用文件系统配置持久化会话状态并执行 Shell 命令

Administrator
2026-04-03 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/persist-session-state-with-filesystem-configuration-and-execute-shell-commands/

原文作者:Evandro Franco 等


AI 智能体已不仅仅局限于聊天对话。编写代码、持久化文件系统状态、执行 Shell 命令以及管理文件系统中的状态,这些都是它们目前可以完成的任务。随着智能体编程助手和开发工作流的成熟,文件系统已成为智能体主要的“工作记忆”,将其能力扩展到了上下文窗口之外。这种转变给构建生产级智能体的团队带来了两个挑战:

  • 文件系统是临时的:当智能体的会话停止时,它所创建的一切——如安装的依赖项、生成的代码或本地 git 历史记录——都会消失。
  • 确定性操作受限:当工作流需要 npm testgit 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 即时读取,无需同步或文件传输步骤。

强强联合:文件系统作为共享上下文

当配置了受管会话存储时,整个工作流便被串联起来:

  1. InvokeAgentRuntime 写入代码、生成工件。
  2. InvokeAgentRuntimeCommand 运行测试、执行 git 操作。
  3. 持久化:停止会话时计算环境(microVM)终止,但 /mnt/workspace 被持久化。
  4. 恢复:第二天恢复时,新的计算环境挂载相同的存储,智能体和命令都可以看到之前的文件。

这种模式构成了完整的工作流循环:智能体进行推理,执行命令进行操作,而持久化文件系统负责记忆。即使你合上电脑,工作进度也不会中断。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区