GEO

如何使用AWS AgentCore构建个性化AI新闻摘要助手?2026最新教程

2026/5/7
如何使用AWS AgentCore构建个性化AI新闻摘要助手?2026最新教程

AIAI Summary (BLUF)

本文提供使用AWS AgentCore托管Harness构建个性化AI新闻摘要代理“The Pulse”的分步指南,涵盖架构、前提条件、部署、调度及成本估算。

核心洞察

"AgentCore托管式Harness"代表了开发者在AWS上构建持久化、有状态AI Agent的一种范式转变。通过抽象化浏览器管理、持久化存储和长时间运行的执行过程,它实现了以前需要协调五个独立服务才能完成的单Agent架构。这种方法表明,在2025年,创建个人"Jarvis"式助手的障碍不再是技术复杂性,而是提示词工程和工具配置方面的创造力。

What We're Building / 我们正在构建什么

我想要一个为我工作的AI Agent。我希望它能搜索最新新闻,并以每日消息的形式推送给我。我希望能与它聊天并获得建议。我希望在未来扩展它的能力。最重要的是,我希望控制它。基本上,我想要一个"贾维斯"。

没错,就是漫威电影宇宙中为托尼·斯塔克服务的虚构AI管家贾维斯。我从未拥有过自己的Agent管家,仔细想想,谁不想要一个呢?几年前我还会告诉你这是不可能的事。但今天,随着Agent的兴起,未来已经到来。

好吧,某种程度上...我们比以往任何时候都更接近了!

为了完成这个任务,最直接的途径之一是使用类似OpenClaw的工具。不过,OpenClaw太新了,而且对于我的需求来说有些过于复杂,所以像任何优秀的工程师一样,我决定自己动手构建。OpenClaw是一个开源的自主AI Agent,它在你的本地机器或VPS上运行以自动执行任务。

最近,Amazon Bedrock AgentCore 发布了其托管式Harness的预览版。你只需在配置文件和系统提示词中定义Agent,然后部署即可。就这么简单!根据我的研究,它上手和运行都非常直接,从长远来看可以节省大量时间。所以我决定踏上这段旅程,创建属于我自己的"贾维斯"。

经过几个小时的调试和研究,我创建了"The Pulse"。它在一个真实的浏览器中打开Hacker News,通过RSS抓取Reddit帖子,将所有内容保存到持久化存储中,每6小时写一份热门故事摘要。它每天给我发消息,或者我可以随时联系它,询问AI领域的最新动态。它会读取自己一整天收集的数据。

下图的架构说明了整个流程:EventBridge每小时触发一次Lambda。该Lambda向Harness发起一次API调用。在Harness内部,Agent在其自己的microVM中运行——这是一个轻量级的虚拟机,专为你的会话启动,并配有独立的CPU、内存和文件系统。Agent会打开浏览器,抓取HN,获取Reddit RSS,并保存快照。每运行6次,它会读取所有快照,发现趋势,并撰写一份摘要。由于会话ID在多次运行中保持不变,所有数据都会累积在/mnt/data目录下。你也可以随时通过CLI与它交流,询问当前的热门话题。


Why Not Just Use Lambda? / 为什么不直接使用Lambda?

在深入细节之前,你可能在想:难道不能只用Lambda、一些Strands Agents代码、一个LLM和梦想来完成这一切吗?对于简单的单次任务,你可能是对的。但这个Agent需要Lambda无法提供的几个关键能力,这使得当前的方法非常值得。

让我们来分析一下关键的差异化因素:

Requirement AgentCore Harness Lambda-Only Approach Multi-Service Alternative
Browser Support Managed headless Chrome via agentcore_browser tool Not supported; need Fargate + Playwright Fargate + Playwright + custom container management
Persistent Storage Built-in sessionStoragePath at /mnt/data, persists across invocations /tmp is ephemeral, wiped after each invocation S3 + custom read/write logic for every file operation
Execution Time Limit Default 1 hour (configurable); session lifespan up to 8 hours Hard limit of 15 minutes Step Functions for orchestration
Memory / Context Built-in AgentCore Memory for facts, preferences, conversation summaries None; requires DynamoDB + custom integration DynamoDB + custom proximity-based retrieval
Infrastructure Complexity Single managed harness Simple but insufficient Fargate + S3 + DynamoDB + Step Functions (5 services)

首先,Agent打开一个真实的浏览器来抓取Hacker News。Lambda无法启动托管的浏览器会话。你需要Fargate加上Playwright,但这又涉及管理容器。

其次,它每小时将快照保存到/mnt/data/runs/,并在6小时后读取回来。Lambda的/tmp目录在每次调用后都会被清空。你需要S3加上自定义的读写逻辑来处理每次文件操作。对于一个本应是"保存文件"的操作来说,工作量太大了。

第三,每6小时的摘要运行会读取所有累积的数据,比较不同快照的评分,识别趋势,并撰写摘要。这可能需要一段时间。Lambda的最大执行时间为15分钟。而Harness默认每次调用有1小时的超时时间(我将其设置为30分钟,因为已经足够了),其microVM本身在多次调用之间可以保持活跃长达8小时。

接着是记忆能力。AgentCore Memory是一个内置服务,可以跨会话存储事实、偏好和对话摘要。因此,"我昨天问了什么?"之所以能工作,是因为记忆能向前传递上下文。在Lambda中,你需要DynamoDB加上自定义集成。

你能用Lambda加上S3、Fargate、DynamoDB和Step Functions来构建所有这些吗?当然可以。但那是五个服务,而不是一个。对于本教程来说,这多出了四个服务。


Prerequisites / 前提条件

  • Node.js 20+

  • Node.js 20+

  • 在预览区域配置了AWS凭证us-west-2us-east-1eu-central-1ap-southeast-2

  • 在你的账户中引导了CDKcdk bootstrap

  • 全局安装了AgentCore CLI

  • 在你的区域中拥有Claude Sonnet 4.6的Bedrock模型访问权限


Create the Harness Project / 创建Harness项目

有趣的部分从这里开始。我们将创建第一个托管式Harness。

agentcore create \
  --name thepulse \
  --model-provider bedrock \
  --session-storage-mount-path /mnt/data

cd thepulse

这一个命令就能搭建起整个项目:Harness配置、记忆、会话存储、CDK应用、IAM角色。--session-storage-mount-path标志连接了持久化存储,平台会为你创建一个/mnt/data挂载点。你无需担心Dockerfile或管理容器的问题。

现在添加浏览器工具。AgentCore Browser是一个托管式的无头Chrome实例,Harness可以按需启动它。你的Agent可以导航页面、点击元素、提取内容,基本上所有你用Playwright能做的事情都可以做到,而且无需自己管理浏览器基础设施。

agentcore add tool --harness thepulse --type agentcore_browser --name browser

Here's what you end up with:

最终你会得到如下项目结构:

thepulse/
├── agentcore/
│   ├── agentcore.json          # Project-level resource config
│   ├── aws-targets.json        # Deployment targets (account, region)
│   ├── .env.local              # Local dev config (gitignored)
│   └── cdk/                    # CDK TypeScript app
├── app/
│   └── thepulse/
│       ├── harness.json        # Agent config
│       └── system-prompt.md    # Agent instructions

Configure the Agent / 配置Agent

AgentCore CLI已经设置好了模型、记忆和会话存储。你只需要调整执行限制并编写系统提示词即可。

编辑 app/thepulse/harness.json 文件:

{
  "name": "thepulse",
  "model": {
    "provider": "bedrock",
    "modelId": "global.anthropic.claude-sonnet-4-6"
  },
  "tools": [
    {
      "type": "agentcore_browser",
      "name": "browser"
    }
  ],
  "skills": [],
  "memory": { "name": "thepulseMemory" },
  "sessionStoragePath": "/mnt/data",
  "maxIterations": 75,
  "timeoutSeconds": 1800
}

关键配置参数说明:

Parameter Value Why This Matters
modelId global.anthropic.claude-sonnet-4-6 Uses the global. prefix for region-agnostic, serverless inference
tools agentcore_browser Enables the agent to launch and control a real headless Chrome browser
sessionStoragePath /mnt/data Persistent file storage that survives across multiple agent invocations
maxIterations 75 Allows complex multi-step workflows (browsing, reading, summarizing)
timeoutSeconds 1800 30-minute window per invocation, sufficient for 6-hour batch digest processing

常见问题(FAQ)

使用AWS AgentCore托管Harness构建AI新闻摘要代理需要哪些前提条件?

需要有效的AWS账户、Bedrock服务权限、AgentCore托管Harness预览版访问权限,并熟悉Lambda、EventBridge及AWS CLI等基础工具。

AgentCore托管Harness相比直接使用Lambda有什么优势?

它抽象了浏览器管理、持久化存储和长期运行,支持有状态单代理架构,无需协调多个服务,显著降低开发复杂度。

如何调度“The Pulse”代理按计划运行并生成每日摘要?

使用EventBridge每小时触发Lambda调用Harness API,代理在微VM中运行,每6小时汇总快照发现趋势并写入摘要,数据持久化在/mnt/data。

阿凯广州
本文由 阿凯 审核,最后更新于 2026年7月2日
联系编辑 →
← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。