
今天逛 GitHub 看到一个项目,我觉得做 Agent 开发的人会喜欢。
strands-agents/harness-sdk


Stars:6,711 | Forks:995 | License:Apache-2.0 | 主要语言:Python
你们写 Agent 的时候有没有这种感受:
调一次模型很简单,但麻烦的全在后面——
模型要调工具,工具参数怎么校验?工具失败了怎么把错误交回模型?上下文太长了怎么办?换模型厂商要不要重写一堆代码?上线后怎么知道 Agent 到底做了什么?
如果这些都自己写,代码很快就会变成一团乱麻。
harness-sdk 做的事情就是:把这些"脏活"收进一套 SDK 里,让你专注在业务逻辑上。
简单说,这是一个开源的 AI Agent SDK,叫 Strands Agents。
它给 Python 和 TypeScript 开发者提供一套写 Agent 的基础件:
所以它不是聊天应用,也不是现成的桌面助手。更像是你在做 Agent 产品时,可以放到底层的一套 SDK。

文档里讲得很清楚:模型拿到输入和上下文 → 判断是否需要工具 → 执行工具 → 结果放回上下文 → 继续推理 → 直到给出最终回答。
听起来简单?但真实项目里细节很多:
这些都要有人兜住。Strands Agents 把这些都封装好了。
这个我觉得挺重要的。
它支持 Amazon Bedrock、Anthropic、OpenAI、Google、Ollama、LiteLLM、MistralAI、SageMaker、Vercel、Writer,还有自定义 provider。
Python 和 TypeScript 覆盖范围不完全一样,但主线很清楚:不要把 Agent 绑死在某一个模型后端上。
今天用 Claude,明天想换 Gemini?改个配置就行,不用重写业务逻辑。
这是我最喜欢的功能。
它允许你在 Agent 生命周期的关键节点挂自己的逻辑:
你可以用它做:
这意味着你对 Agent 有完整的控制权,不是黑盒。



MCP 内置支持
Strands Agents 直接内置了 MCP 接入。你可以把 MCP server 暴露的工具挂到 Agent 上,让 Agent 用外部服务。Python 和 TypeScript 都有写法。
Guardrails 安全防护
官方把它放在 Safety & Security 下面,支持:
Demo 时可能不显眼,但一旦 Agent 要碰业务系统、内部数据、客户输入,这就很重要了。


Python 版本:
pip install strands-agents strands-agents-tools
from strands import Agent
from strands_tools import calculator
agent = Agent(tools=[calculator])
agent("What is the square root of 1764")
就这几行,能跑了。
TypeScript 版本:
npm install @strands-agents/sdk
import { Agent } from '@strands-agents/sdk'
const agent = new Agent()
const result = await agent.invoke('What is the square root of 1764?')
console.log(result)
注意一点: 两个 SDK 默认走 Amazon Bedrock。README 提醒要先配好 AWS 凭据。
要换 Anthropic、OpenAI、Gemini、Ollama 等 provider,按文档装对应依赖再切模型实例就行。
这几类人可能会觉得有用:
但它不是万能答案。
它更偏 SDK 和工程底座。你还是要自己设计业务流程、工具边界、权限、日志留存和上线策略。
尤其是工具能改文件、查库、发请求的时候,别只相信模型自己会收住——该加的限制要加。
如果只是想快速做一个聊天页面,它可能显得重。
可如果你想把 Agent 做成能维护、能排查、能限制行为的系统,这个项目值得认真看一遍。
6.7k Star,Python + TypeScript 双 SDK,hooks 和 guardrails 都给到位了——做 Agent 工程化的时候,这种底座还是省心的。
你们现在用什么框架写 Agent?是自己拼的还是用了现成的 SDK?评论区聊聊 👇