一天一个开源项目(第 227 篇):Strands Agents Harness SDK —— 从「手写 Agent 循环」到「一行代码拿到生产级 Agent」

AWS 团队主导的开源项目 Strands Agents 发布 Harness SDK,把上下文压缩、会话持久化、长期记忆、多模型切换等原本要自己攒的基础设施,封装成一次 create_harness() 调用,返回的仍是一个可改可换的普通 Agent。

一句话看懂:AWS 团队主导的开源项目 Strands Agents 发布 Harness SDK,把上下文压缩、会话持久化、长期记忆、多模型切换等原本要自己攒的基础设施,封装成一次 create_harness() 调用,返回的仍是一个可改可换的普通 Agent。

事件核心:发生了什么

“一天一个开源项目”系列第 227 篇介绍的 Strands Agents(仓库名 harness-sdk),是一个由 strands-agents 组织、AWS 团队主导维护的 Monorepo,采用 Apache-2.0 协议,支持 Python 3.10+ 与 Node.js 22+,已通过 PyPI 和 npm 发行。截至目前公开数据显示约 8,300+ Stars、1,200+ Forks、837 个 Open Issues,创建于 2025 年 5 月,社区活跃度较高。

项目采用分层结构:底层 Strands SDK 提供模型驱动的 Agent 循环、工具系统和多供应商适配;上层 Strands Harness 通过 create_harness()(TS 为 createHarness())一次性配好上下文管理、会话落盘、长期记忆、技能加载和缓存,返回值仍是标准 strands.Agent,可逐项覆盖或替换。官方还提供 @strands-agents/cli,可直接在终端与 Harness Agent 对话。

为什么重要

手写 Agent 循环的团队通常会走同一条路:先是“调用模型 + 执行工具”,随后陆续补上历史截断、工具结果摘要、多供应商适配、会话恢复和记忆检索。这些补丁彼此不兼容,也很难迁移。Strands 的判断是:这些能力属于基础设施,不该每个团队重新发明一遍。

更值得注意的是它的定位——在用户自己的进程里运行,没有托管控制面。这与 Bedrock AgentCore 一类托管方案形成互补:既要生产级默认配置,又不想把 Agent 生命周期交给平台,是目前公开信息显示它主打的差异点。统一的 provider/model 写法也降低了在 Bedrock、Anthropic、OpenAI、Google 之间迁移的成本。

对用户/开发者/创作者的影响

对开发者,接入成本明显降低:pip install strands-harness 或 npm install @strands-agents/harness 后,用一行代码即可拿到带 shell、文件读写、web_fetch、programmatic_tool_caller 和 subagent 委派的 Agent。内置工具支持列表“钉死”或字典增删改,便于控制权限边界。对做客服、个人助理类产品的团队,默认落盘到 ./.agent/sessions 并后台提炼长期记忆,省去了自建设计。对需要多步探索的任务,subagent 能把搜索类工作甩给干净子上下文,避免主上下文被淹没。

值得关注的后续

一是 Harness 的默认配置是否会被生产团队长期接受,还是普遍改回底层 SDK 自行拼装;二是 837 个 Open Issues 的收敛速度,直接影响其稳定性口碑;三是 MCP 集成、拦截机制与子 Agent 委派模式的成熟度,以及与 LangGraph、OpenAI Agents SDK 等竞品的生态争夺。

来源:juejin

celebrityanime
celebrityanime
文章: 25869

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注