Anthropic 新发布的 Claude Managed Agents,凭什么把智能体开发周期从数月砍到数周?
Anthropic 新发布的 Claude Managed Agents,凭什么把智能体开发周期从数月砍到数周?
昨天凌晨,Anthropic 发布了 Claude Managed Agents。我花了一整天时间研究官方文档和技术博客,发现这东西确实有点东西——它解决的不是"怎么写 Agent"的问题,而是"怎么让 Agent 在生产环境活下去"的问题。
本文提纲
- Agent 开发的冰山困境
- 三层解耦架构:Session、Harness、Sandbox
- 安全设计:凭证分离与权限隔离
- 性能优化:TTFT 缩短的秘密
- 定价与成本分析
- 实战:快速部署第一个 Managed Agent
Agent 开发的冰山困境
如果你尝试过把一个 AI Agent 部署到生产环境,你一定懂我在说什么。
我去年帮一个朋友做智能客服 Agent,Agent 本身的代码大概 500 行。但为了把它跑起来,我搞了三周:
- 搭容器环境,确保 Agent 不会把生产数据库搞挂
- 写凭证管理系统,API Key 不能硬编码在代码里
- 配日志和监控,出了问题得能查
- 做状态持久化,用户刷新页面后对话不能丢
- 设置自动重试和错误恢复机制
最后算下来,Agent 代码占 10%,基础设施占 90%。
这就是 Anthropic 想解决的问题。官方原话是:
"部署一个生产级智能体,不仅需要开发团队构建智能体本身,还需要搭建大量基础支撑架构。"
Managed Agents 的承诺很直接:你只管定义 Agent 要干什么,剩下的基础设施我来搞定。
三层解耦架构:Session、Harness、Sandbox
这是 Managed Agents 最核心的设计。Anthropic 把智能体拆成了三个独立组件:
graph TB
subgraph "Managed Agents Architecture"
subgraph "Session Layer"
S1[Context Persistence]
S2[Conversation State]
S3[Long-term Memory]
end
subgraph "Harness Layer"
H1[Task Orchestration]
H2[Tool Coordination]
H3[Fault Recovery]
end
subgraph "Sandbox Layer"
B1[Code Execution]
B2[Resource Isolation]
B3[Network Security]
end
S1 --> H1
S2 --> H2
H1 --> B1
H2 --> B2
endSession:会话层
Session 负责"记住"——对话上下文、用户偏好、长期记忆。
以前我们做 Agent,最头疼的就是对话状态管理。用户聊着聊着突然关闭页面,再打开得从头开始。Session 层把这个事儿托管了:
- 自动持久化:对话状态自动保存,不用担心进程重启
- 会话恢复:用户断线重连后,上下文自动恢复
- 长期记忆:可以配置让 Agent 记住跨会话的信息
Harness:协调器
Harness 是"大脑的大脑"——它决定 Agent 该干什么、用什么工具、失败了怎么办。
核心能力:
- 任务编排:把复杂任务拆成子任务,并行或串行执行
- 工具调度:决定什么时候调用哪个工具(数据库、API、文件系统)
- 故障转移:某个步骤失败了,自动重试或切换策略
Sandbox:沙箱层
Sandbox 是"安全屋"——Agent 执行代码的地方,和外部世界隔离。
关键设计:
- 隔离容器:每个 Agent 一个独立容器,互不干扰
- 资源限制:CPU、内存、网络都有上限,防止一个 Agent 吃满资源
- 权限控制:可以精细配置 Agent 能访问哪些网络、哪些文件
为什么解耦很重要?
传统架构的问题是"一损俱损"——一个组件出问题,整个会话就丢了。
解耦之后:
- Session 挂了?Harness 可以重启一个新的,状态从持久化存储恢复
- Harness 升级?Session 和 Sandbox 不受影响
- Sandbox 被攻击?其他组件的安全凭证根本不在这里面
这就像操作系统把 CPU、内存、硬盘抽象成独立模块,一个模块坏了不影响其他模块。
安全设计:凭证分离与权限隔离
这部分是我觉得最用心的设计。
凭证分离原则
以前写 Agent,API Key 直接写在环境变量里,Agent 代码随时能读到。如果有人通过 Prompt 注入让 Agent 执行恶意代码,API Key 就暴露了。
Managed Agents 的做法是把凭证放在 Sandbox 之外:
graph LR
A[Claude Generated Code] --> B[Sandbox]
B -->|No Access| C[Credential Vault]
B --> D[Security Proxy]
D -->|Only Authorized Access| C流程是这样的:
- Agent 代码运行在 Sandbox 里
- Sandbox 无法直接访问任何凭证
- 需要调用外部 API 时,通过 Security Proxy
- Security Proxy 验证请求合法性,然后代为调用
这样即使 Agent 被注入恶意指令,攻击者也无法拿到原始凭证。
权限配置示例
你可以精细控制每个工具的权限:
tools:
- name: database_query
require_approval: true # 需要人工确认
allowed_networks:
- internal-db.company.com
- name: web_search
require_approval: false # 自动执行这意味着敏感操作(如数据库查询)必须人工批准,而搜索可以自动执行。
性能优化:TTFT 缩短的秘密
TTFT(Time To First Token)是用户感知延迟的关键指标。
解耦架构带来了一个意外收益:推理启动时间显著缩短。
原理很简单:
- Session 和 Sandbox 可以提前预热(预加载容器、初始化运行时)
- 用户发请求时,Harness 无需等待基础设施就绪,直接开始推理
这就像餐厅提前备好菜,客人点单后直接下锅,而不是等客人点单了才开始洗菜切菜。
定价与成本分析
官方定价:
费用 = Claude 模型调用费 + 运行时费用
运行时费用:0.08 USD / Agent / 小时来算一笔账。假设一个智能客服 Agent:
- 日均处理 1000 次对话
- 每次对话平均 2000 tokens
- 每天运行 8 小时
| 方案 | 月成本 |
|---|---|
| 自建基础设施 | 服务器 200 USD + 开发人力 15,000 USD,约 15,200 USD |
| Managed Agents | 模型费约 600 USD + 运行时约 20 USD,约 620 USD |
差了 20 多倍。当然,这假设你的人力成本是真实成本。如果是个人项目,差距没那么夸张。
实战:快速部署第一个 Managed Agent
通过 CLI 创建
# 1. 创建项目
claude agent create my-agent
# 2. 描述任务
claude agent describe "帮我监控数据库,发现异常查询时发 Slack 告警"
# 3. 添加工具
claude agent tools add database_connector slack_webhook
# 4. 配置安全规则
claude agent security set --require-approval-for database_query
# 5. 部署
claude agent deploy --env production通过 API 创建
from anthropic import Anthropic
client = Anthropic()
agent = client.managed_agents.create(
name="Database Monitor",
description="监控数据库异常并发送 Slack 告警",
tools=[
{"type": "database_connector", "config": {...}},
{"type": "slack_webhook", "config": {...}}
],
security_policy={
"require_approval": ["database_query"],
"allowed_networks": ["internal-db.company.com"]
}
)
# 启动
session = client.managed_agents.start(agent.id)写在最后
Managed Agents 不是银弹,但它确实解决了一个真实的痛点:Agent 开发的门槛不在模型能力,而在工程能力。
以前你想做一个生产级 Agent,需要一个后端工程师、一个运维工程师、一个安全工程师。现在,一个产品经理加一个 Prompt 工程师可能就够了。
这可能才是 AI 民主化的真正含义——不是让每个人都能用 AI,而是让每个人都能把 AI 部署到生产环境。
参考资料: