在 n8n 中用 Amazon Bedrock AgentCore harness 运行生产级 AI 智能体
本文按步骤说明如何在 n8n 中安装 AgentCore harness 节点,配置持久记忆、按用户隔离、代码沙箱、技能和 VPC 私有运行。

目录
#在 n8n 中用 Amazon Bedrock AgentCore harness 运行生产级 AI 智能体
如果你在 n8n 里搭建并自动化工作流,而且不怎么写代码,你大概用过它的 AI Agent 节点,把一次模型调用加进工作流。这是一个很好的起点。但生产级智能体(Agent)需要的不止一次模型调用:要有跨运行持续的记忆(memory),要有它真正能用的工具,例如浏览器或代码沙箱,还要有空间去处理更长的任务。自己搭建这层脚手架才是难的部分。
Amazon Bedrock AgentCore 是一个平台,用来大规模构建、连接和优化智能体,不限框架或模型。AgentCore harness 是 Amazon Bedrock AgentCore 的一项能力,现已正式发布,并为你提供这层脚手架。一个新的开源社区节点把它带进 n8n 的可视化编辑器。你可以获得带持久记忆、真实工具和自选模型提供方的生产级智能体,而不必编写基础设施或智能体代码。你也不被绑定在单一模型上。该节点可用于 Amazon Bedrock、OpenAI、Google Gemini 以及 LiteLLM 支持的提供方,并且可以在同一段对话的不同轮次之间切换提供方。
在本文中,你将安装节点 @aws/n8n-nodes-agentcore,并在 n8n 编辑器里逐步构建智能体。你将从一个能记住对话的智能体开始,把记忆限定到单个用户,加入代码解释器工具,赋予智能体技能(skill),最后在你自己的虚拟私有云(virtual private cloud,VPC)中私有运行智能体。该节点以 MIT 许可证开源,AgentCore harness 由 AWS 的开源智能体框架 Strands Agents 驱动。
这个节点做什么
智能体不只是一个模型。模型负责推理,但 harness 负责周围的工作:运行编排循环,调用工具,管理上下文窗口,跨轮次保持状态,从失败中恢复,并隔离每个会话。构建这一层是大多数团队花时间的地方。
AgentCore harness 把这一层作为托管能力提供给你。你在配置中定义智能体,包括它使用的模型、调用的工具、可以访问的技能,以及它遵循的指令,然后由 AgentCore 组装并运行循环。每个会话在自己的隔离环境中运行,带有文件系统和 shell、跨会话记忆,以及网页浏览。当配置不够用时,你可以把 harness 导出为 Strands 代码,并继续在同一系统上运行。
n8n 内置的 AI Agent 节点适合工作流中的单次模型调用。社区节点更进一步,把完整 harness 暴露在 n8n 编辑器中。它有一个操作,以及一个起决定作用的字段 Harness ARN:
- 留空时,节点在第一次运行时为你创建智能体,在后续运行中复用它,并在配置变化时更新它。
- 粘贴一个已有的 harness ARN,节点就直接调用该智能体,因此你可以使用在 n8n 之外创建的智能体。
该节点使用与现有 n8n AWS Lambda 和 Amazon Simple Storage Service(Amazon S3)节点 相同的 AWS 凭据模式,所以如果你已经在 n8n 中自动化 AWS 服务,会觉得熟悉。
前提条件
开始之前,请确认已具备以下条件:
- 一个 n8n 实例。 你可以自托管安装 n8n,也可以使用 n8n Cloud。两者都适用于本节点。如果你是 n8n 新手,请参阅 n8n 部署文档 选择一种方式并搭建实例,然后完成初次登录,进入你将在本文中构建工作流的编辑器。
- 已安装该节点。
@aws/n8n-nodes-agentcore是已验证的社区节点,因此你可以直接在 n8n 节点面板中找到它。在编辑器中添加节点,搜索 Amazon Bedrock AgentCore 并选择它,n8n 会为你安装。(你也可以从设置、社区节点、安装中输入@aws/n8n-nodes-agentcore来安装。)本文使用节点版本 0.3。
- 一个可以在受支持的 AWS 区域访问 AgentCore harness 的 AWS 账户。
- 调用方的 AWS 凭据(其密钥填入 n8n 凭据的那个身份)具备 harness 调用方权限,另外还有一个独立的 AWS Identity and Access Management(IAM)执行角色,供 harness 在运行时代入。AWS 在 AgentCore harness 安全文档中维护最小权限参考策略,节点 README把每项功能映射到需要添加的权限。
重要: 在可以的地方,使用来自 AWS IAM 身份中心(IAM Identity Center)或 AWS Security Token Service(AWS STS)的临时凭据,并在配置 IAM 权限时遵循最小权限原则。不要把凭据提交到源代码管理。
关于费用: AgentCore harness、它配置的托管记忆存储,以及(如果你使用的话)VPC 端点,都是计费的 AWS 资源。请按文末的清理一节移除你为本演练创建的内容,并参阅 AgentCore 文档了解定价。
设置凭据
你只需配置一次 AWS 凭据,方式与 n8n 中其他 AWS 节点相同。
- 在 n8n 中进入 Credentials(凭据),选择 New(新建)。
- 搜索并选择 Amazon Bedrock AgentCore API。
- 输入 Access Key ID(访问密钥 ID) 和 Secret Access Key(秘密访问密钥);如果使用临时凭据,再输入 Session Token(会话令牌)。
- 选择 Region(区域),并输入 harness 在运行时代入的 Execution Role ARN(执行角色 ARN)。
- 选择 Test(测试) 确认连接,然后选择 Save(保存)。
n8n 中的 Amazon Bedrock AgentCore API 凭据,显示访问密钥、区域和执行角色 ARN,以及一次成功的连接测试。
构建第一个智能体并赋予记忆
在本演练中,你构建一个能在对话各轮之间记住细节的智能体。记忆默认开启,因此节点会为你配置一个托管记忆存储,无需额外配置。
- 在新工作流中添加一个手动触发器,在它之后添加 Amazon Bedrock AgentCore 节点,并挂上你的凭据。
- 将 Harness ARN 留空,让节点创建并复用该智能体。
- 输入 Agent Name(智能体名称),例如
travel_concierge。 - 将 Model Provider(模型提供方) 设为 Amazon Bedrock,并输入 Model ID(模型 ID),例如一个 Claude 模型。
- 输入 System Prompt(系统提示),例如 _You are a warm, concise travel concierge_,以及 Session ID(会话 ID),例如
demo-travel-session。复用这个会话 ID,才会在后续运行中延续对话。 - 为第一轮输入 Prompt(提示),例如 “I love warm beaches and I’m vegetarian. Note that for me.”,然后运行该节点。
第一次运行大约需要 30–60 秒,因为 AWS 要配置该智能体。输出包括智能体的响应、令牌用量,以及节点所配置内容的摘要,其中包括它为你创建的记忆存储。
第 1 轮。节点输出显示智能体的响应,以及一份 harness 摘要,确认托管记忆和已配置的记忆 ARN。
现在只把 Prompt(提示) 改成 _Suggest one destination and one dish I’d enjoy, based on what you know about me_,保持相同的会话 ID,再次运行。
第 2 轮。智能体回忆起第 1 轮的偏好,即温暖海滩和素食,因为对话通过同一个会话 ID 得以保持。
当你提供会话 ID 时,输出字段 sessionSource 的值为 provided;第 2 轮的输入令牌数会上升,因为节点在智能体推理之前加载了先前的对话。如果将会话 ID 留空,每次运行都会开始一段新对话。
用参与者 ID 按用户限定记忆
当一个智能体服务许多人时,你可以用 Actor ID(参与者 ID) 把每个人的记忆分开。记忆按参与者和会话限定范围,因此不同参与者从同一个智能体得到相互隔离的历史。
范围是一个层级:智能体保存共享配置,Actor ID 把一个用户的记忆与另一个用户隔开,Session ID 则在一个参与者内部隔离单次对话。一个参与者可以有多个会话。另一个参与者即使使用相同的会话 ID,仍然拥有自己独立的记忆。
- 使用一个带托管记忆的智能体,例如
team_assistant。 - 在 Additional Options(其他选项) 下,把 Actor ID 设为按用户区分的值,例如
user-alice,并为该用户设置 Session ID。 - 运行第一轮,例如 _Remember my project is codenamed Aurora._
- 把提示改为 _What’s my project codename?_,用相同的参与者和会话再次运行。
为特定用户配置了参与者 ID 和会话 ID 的节点。
参与者 user-alice 的第 1 轮,其中存储了一项偏好。
同一参与者的第 2 轮。智能体返回它为该用户存储的值。不同的参与者 ID 保持各自独立的记忆。
添加工具:在沙箱中运行代码
当智能体能使用工具时,能力会强得多。在本演练中,你给智能体一个代码解释器,让它在沙箱环境中运行代码。
- 使用一个智能体,例如
data_analyst,并搭配一个 Claude 模型。 - 在 System Prompt(系统提示) 中,指示智能体编写并运行代码来回答,然后报告结果。
- 打开 Add Tools(添加工具),然后在 Tools(工具) 下选择 Add Tool(添加工具),把 Type(类型) 设为 AgentCore Code Interpreter,这是 Amazon Bedrock AgentCore 的一项能力。
- 输入一个需要计算的 Prompt(提示),例如 “Generate 500 random exam scores between 0 and 100, then report the mean, median, and standard deviation.”,然后运行该节点。
智能体在沙箱中编写并运行代码,返回均值、中位数和标准差的计算结果,而不是估算它们。harness 摘要显示已配置一个工具。
你可以用同样的方式添加其他工具,包括云浏览器、AgentCore Gateway(Amazon Bedrock AgentCore 的一项能力),以及远程模型上下文协议(Model Context Protocol,MCP)服务器。
赋予智能体技能
技能是指令和脚本的打包,按需给智能体提供领域知识。你可以从 AWS 精选目录、Git 仓库、Amazon S3 或文件系统路径加载它们,harness 只在任务需要时才加载。
- 使用一个智能体,例如
aws_architect,并搭配一个 Claude 模型。 - 打开 Add Skills(添加技能),然后在 Skills(技能) 下选择 Add Skill(添加技能) 并设置 Source(来源)。对于精选目录,选择 AWS Skills,并输入一个通配模式,例如
core-skills/*。你可以添加更多技能,例如一个指向公共仓库的 Git 来源。 - 输入一个能从该技能受益的 Prompt(提示),例如 “Outline a serverless image-upload pipeline on AWS”,然后运行该节点。
智能体应用已加载的技能来生成指导,harness 摘要显示已配置的技能数量。
在你的 VPC 中运行
对于需要私有网络访问的智能体,你可以在自己的 VPC 中运行 harness。你在凭据上设置网络配置,因此该凭据所配置的每个智能体都会私有运行。
- 编辑你的 Amazon Bedrock AgentCore API 凭据。
- 将 Network Mode(网络模式) 设为 VPC。
- 输入 VPC Subnet IDs(VPC 子网 ID) 和 VPC Security Group IDs(VPC 安全组 ID),然后保存。
为 VPC 模式配置了子网和安全组 ID 的凭据。
你的子网不需要互联网访问。harness 从同一区域的私有 Amazon ECR 仓库拉取其托管容器镜像,因此你需要 Amazon ECR 和 Amazon S3 的 VPC 端点,而不是 NAT 网关。所需端点和执行角色权限请参阅 AgentCore harness 网络配置文档。所需端点和执行角色权限请参阅 AgentCore harness 安全文档。
- 在工作流中,使用一个智能体,例如
private_vpc_agent,并使用已启用 VPC 的凭据。 - 输入 Prompt(提示) 并运行该节点。
VPC 智能体的节点输出。harness 摘要显示网络模式为 VPC。
清理
你创建的每个智能体都是 AWS 账户中的一项 harness 资源,并且它可能配置一个托管记忆存储。为避免持续计费,删除不再需要的智能体。
- 使用 AWS 命令行界面(AWS Command Line Interface,AWS CLI)或 Amazon Bedrock AgentCore 控制台列出你的 harness。
aws bedrock-agentcore-control list-harnesses --region us-west-2- 删除你为本博文创建的那些。定价细节请参阅 AgentCore 文档。
aws bedrock-agentcore-control delete-harness --harness-id <harness-id> --region us-west-2如果启用了 VPC,你可能还想移除为本演练创建的任何接口 VPC 端点,因为接口端点在存在期间会产生费用。
接下来可以做什么
本文演练了记忆、按用户限定范围、代码解释器工具、技能和 VPC 联网。该节点已经支持 Amazon Bedrock AgentCore harness 功能集中的更多内容。下面是接下来可以尝试的事项,配置方式与上面配置各项功能的方式相同:
- 自选模型提供方,可在会话中途切换。 在 Amazon Bedrock 之外使用 OpenAI、Google Gemini 或 LiteLLM 支持的提供方。在节点上设置提供方和模型,并在同一会话的不同轮次之间切换,而不丢失上下文。非 Bedrock 提供方使用存放在 AgentCore Identity(Amazon Bedrock AgentCore 的一项能力)中的 API 密钥。
- 更多工具。 在代码解释器之外,添加云浏览器、带可选 OAuth 出站身份验证的 AgentCore Gateway,以及远程 MCP 服务器。
- 内联函数。 让智能体回调你的 n8n 工作流以完成人工在环(human-in-the-loop)步骤,再把结果返回给智能体。
- 自定义容器。 使用你自己的 Linux/arm64 容器镜像,使智能体带着你自己的依赖运行。
- 文件系统挂载。 使用托管会话存储,或挂载 Amazon Elastic File System(Amazon EFS)或 Amazon S3,以保存比会话更久的数据。
- OAuth 身份验证的调用。 用身份提供方发放的令牌,调用受入站 JSON Web Token(JWT)授权方保护的智能体,该令牌设置在 AgentCore 凭据上。
- 版本和端点。 每次配置变更都成为一个不可变版本,命名端点让你把预发布和生产固定到特定版本。
GitHub 仓库中的示例文件夹包含其中许多可导入的工作流。对于端到端用例,examples/templates 文件夹有更完整的工作流,展示智能体与其他 n8n 节点一起工作的完整、可导入自动化。
结论
在本文中,你安装了面向 n8n 的开源 AgentCore harness 社区节点,并构建了这样的智能体:它们能记住对话、把按用户的记忆分开、在沙箱中运行代码、使用技能,并在 VPC 中私有运行。这一切都在 n8n 编辑器中完成,无需基础设施或智能体代码。因为该节点可用于 Amazon Bedrock、OpenAI、Gemini 和 LiteLLM 提供方,你可以为每项任务选择合适的模型。
要开始,从 n8n 节点面板添加 Amazon Bedrock AgentCore 节点(或从设置 > 社区节点安装 @aws/n8n-nodes-agentcore),导入一个示例工作流,并构建你的第一个智能体。该节点以 MIT 开源,并构建在开源 Strands Agents 框架之上,欢迎在 GitHub 仓库上贡献和反馈。要进一步了解底层能力,请参阅 AgentCore 文档。
PRIMARY_SOURCE: https://aws.amazon.com/blogs/machine-learning/run-production-ai-agents-in-n8n-with-amazon-bedrock-agentcore-harness
- #n8n
- #AgentCore
- #持久记忆
- #代码沙箱
- #VPC


