Anthropic Managed Agents 完整指南
Beta
Anthropic Beta — managed-agents-2026-04-01

Anthropic
Managed Agents
完整指南

构建、部署并编排自主运行的 AI Agent。一次创建,无限复用,托管执行环境,SSE 实时流式传输。

开始构建
预计阅读时间 15 分钟
Python 和 TypeScript
SDK 自动处理 Beta Header

四个关键对象

Managed Agents 由四个核心原语组成。理解它们的边界和职责,是正确设计系统架构的第一步。

🤖

Agent(智能体)

持久化的配置模板,包含模型选择、系统提示词和工具集定义。创建一次,在多个 Session 中复用。类比:函数定义,而非函数调用。

持久化 · 可复用
🏗️

Environment(环境)

沙盒容器模板,定义网络访问策略、预装软件包和运行时资源。与 Agent 分离设计,允许同一 Agent 在不同环境中执行。

沙盒隔离 · 可配置
⚡

Session(会话)

Agent 的单次运行实例。绑定一个 Agent + 一个 Environment,每个任务创建独立 Session,互相隔离,状态不跨越泄漏。

一次性 · 状态隔离
📡

Events(事件流)

基于 SSE(Server-Sent Events)的双向通信机制。用户消息写入(POST),Agent 响应和工具调用流式读出(GET),通过 session.status_idle 信号任务完成。

SSE 流式 · 实时
架构数据流
从应用到容器的完整调用链路
Your App
Python / TS / CLI
调用方
SDK / HTTP
Anthropic API
Sessions · Events
托管层
内部调度
Agent Loop
Claude 推理引擎
AI 推理
工具调用
Container
Bash · Files · Web
沙盒执行

四步运行第一个 Agent

从零到运行中的 Agent,只需四个 API 调用。以下示例使用 Python SDK,假设你已安装依赖并配置了 API Key。

前置要求: 安装 Anthropic CLI 工具(ant)和 Python SDK,并导出 API Key。
bash — 安装依赖
brew install anthropics/tap/ant
pip install anthropic
export ANTHROPIC_API_KEY="your-key"
1

创建 Agent(持久化配置)

python
from anthropic import Anthropic

client = Anthropic()

agent = client.beta.agents.create(
    name="Coding Assistant",
    model="claude-sonnet-4-6",
    system="You are a helpful coding assistant. Write clean, "
           "well-documented code and explain your decisions.",
    tools=[{"type": "agent_toolset_20260401"}],
)

print(f"Agent created: {agent.id}")
# Agent ID 是持久的 — 保存它以便后续复用!
2

创建 Environment(沙盒容器模板)

Environment 定义 Agent 代码执行的沙盒环境。unrestricted 网络模式允许 Agent 访问外部 URL;也可设置 none 完全隔离网络。

python
environment = client.beta.environments.create(
    name="quickstart-env",
    config={
        "type": "cloud",
        "networking": {"type": "unrestricted"},  # 允许网络访问
    },
)

print(f"Environment created: {environment.id}")
# Environment ID 同样持久化 — 可跨 Session 复用
3

创建 Session(运行实例)

Session 将 Agent 配置与 Environment 绑定,产生一个独立的运行实例。每个任务创建独立 Session,保证状态隔离。

python
session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="Fibonacci Task — 2026-04-09",
)

print(f"Session created: {session.id}")
# Session 是短暂的 — 每个独立任务用一个新 Session
4

发送消息并流式接收事件

使用 SSE 建立事件流连接。发送用户消息后,Agent 开始工作并实时推送事件。收到 session.status_idle 说明当前任务已完成。

python
with client.beta.sessions.events.stream(session.id) as stream:
    # 向 Agent 发送用户消息
    client.beta.sessions.events.send(session.id, events=[{
        "type": "user.message",
        "content": [{"type": "text", "text": "创建一个 Fibonacci 数列生成脚本,"
                                              "包含单元测试,并运行验证它正确工作。"}],
    }])

    # 流式接收 Agent 响应
    for event in stream:
        match event.type:
            case "agent.message":
                # Agent 的文本回复
                print(f"🤖 Agent: {event.content}")
            case "agent.tool_use":
                # Agent 正在使用工具(如执行 bash 命令)
                print(f"🔧 工具调用: [{event.name}] {event.input}")
            case "agent.tool_result":
                # 工具执行结果
                print(f"✅ 结果: {event.content[:200]}...")
            case "session.status_idle":
                # Agent 完成任务,退出循环
                print("✨ 任务完成")
                break

真实世界的应用场景

Managed Agents 适用于需要多步骤推理、代码执行和持续迭代的复杂自动化任务。

⚙️

代码生成器

自动生成、测试并修复完整项目代码

"用 FastAPI 创建一个 REST API,包含用户认证、数据库模型和完整的 CRUD 操作,并写集成测试。"
  • Agent 分析需求,设计 API 结构和数据库 Schema
  • 生成 FastAPI 路由、Pydantic 模型和 SQLAlchemy ORM 代码
  • 执行 pip install 安装依赖,运行 pytest
  • 根据测试失败结果自动修复代码,直到全部通过
  • 生成 README 和 API 文档
python — 配置要点
agent = client.beta.agents.create(
    name="Code Generator",
    model="claude-sonnet-4-6",
    system="You are an expert software engineer. Write production-quality "
           "code with tests. Always run tests and fix failures before finishing.",
    tools=[{"type": "agent_toolset_20260401"}],
)
📊

数据分析师

处理 CSV、生成图表和洞察报告

"分析这份电商销售 CSV 数据,找出月度趋势、Top 10 产品,并生成包含交互图表的 HTML 报告。"
  • Agent 读取 CSV 文件,检查数据质量和异常值
  • 使用 pandas 进行数据清洗和统计聚合
  • 用 plotly 生成交互式月度趋势折线图和产品排行柱状图
  • 计算关键指标(MoM 增长率、客单价、退货率)
  • 输出完整的 HTML 报告,包含 AI 生成的自然语言洞察
python — 上传文件
client.beta.sessions.events.send(session.id, events=[{
    "type": "user.message",
    "content": [
        {"type": "text", "text": "分析以下销售数据:"},
        {"type": "document", "source": {
            "type": "base64",
            "media_type": "text/csv",
            "data": base64_csv_data,
        }},
    ],
}])
🚀

DevOps 助手

自动化 CI/CD 配置和基础设施脚本

"为我的 Next.js 应用设置 GitHub Actions CI/CD 流水线,包含测试、构建、Docker 镜像推送和 Vercel 部署。"
  • 分析项目结构,识别框架版本和测试框架
  • 生成 .github/workflows/ci.yml,包含矩阵测试策略
  • 编写 Dockerfile(多阶段构建,最小化镜像体积)
  • 配置 Vercel 部署步骤和环境变量处理
  • 验证 YAML 语法,检查 Secret 引用是否正确
python — 网络配置
# DevOps Agent 需要访问外部资源(npm, Docker Hub)
environment = client.beta.environments.create(
    name="devops-env",
    config={
        "type": "cloud",
        "networking": {"type": "unrestricted"},
    },
)
🔬

研究助手

抓取、阅读并汇总最新研究资料

"搜索过去三个月关于 LLM 推理加速的最新论文,总结关键技术突破,并按影响力排序生成研究报告。"
  • 访问 arXiv、Semantic Scholar API 搜索相关论文
  • 下载 PDF,提取摘要、方法和实验结果
  • 对比各论文的技术方案(量化、蒸馏、推测解码等)
  • 按引用量、新颖性和实用性综合评分排序
  • 生成 Markdown 研究报告,附带论文链接和核心贡献摘要
python — 流式处理
for event in stream:
    match event.type:
        case "agent.tool_use" if event.name == "bash":
            # 实时看到 Agent 正在访问哪些 URL
            print(f"📡 访问: {event.input.get('command', '')[:80]}")
        case "agent.message":
            # 流式打印 Agent 的分析文本
            print(event.content, end="", flush=True)
        case "session.status_idle":
            break

端点速查

所有端点都在 https://api.anthropic.com/v1/ 下。使用 SDK 时,Beta header managed-agents-2026-04-01 由 SDK 自动附加,无需手动处理。

端点路径 方法 描述 关键参数
/v1/agents POST 创建 Agent(持久化配置) name, model, system, tools
/v1/agents/:id GET 获取 Agent 详情 id
/v1/agents GET 列出所有 Agent limit, after_id
/v1/environments POST 创建 Environment(沙盒模板) name, config.type, config.networking
/v1/sessions POST 创建 Session(运行实例) agent, environment_id, title
/v1/sessions/:id GET 获取 Session 状态 id
/v1/sessions/:id/events GET SSE 建立 SSE 事件流,接收 Agent 实时输出 id(路径参数)
/v1/sessions/:id/events POST 向 Agent 发送用户消息 events[].type, events[].content
事件类型 方向 触发时机
user.message → 发送 用户向 Agent 发送文本或文件
agent.message ← 接收 Agent 生成文本回复(可能分块流式)
agent.tool_use ← 接收 Agent 调用工具(bash, read_file, web_search 等)
agent.tool_result ← 接收 工具执行完毕,返回结果
session.status_idle ← 接收 Agent 完成当前任务,等待下一个用户消息
session.status_error ← 接收 Session 发生错误,需要处理

使用 @anthropic-ai/sdk

TypeScript SDK 提供完整的类型定义,与 Python SDK 的 API 设计几乎一致。以下展示与 Python 快速开始相同的四步流程。

bash — 安装 SDK
npm install @anthropic-ai/sdk
# 或
bun add @anthropic-ai/sdk
typescript — 完整快速开始
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
});

async function runAgent() {
  // 步骤 1: 创建 Agent(一次性,可复用)
  const agent = await client.beta.agents.create({
    name: "Coding Assistant",
    model: "claude-sonnet-4-6",
    system:
      "You are a helpful coding assistant. Write clean, " +
      "well-documented code and explain your decisions.",
    tools: [{ type: "agent_toolset_20260401" }],
  });
  console.log(`Agent created: ${agent.id}`);

  // 步骤 2: 创建 Environment
  const environment = await client.beta.environments.create({
    name: "quickstart-env",
    config: {
      type: "cloud",
      networking: { type: "unrestricted" },
    },
  });

  // 步骤 3: 创建 Session
  const session = await client.beta.sessions.create({
    agent: agent.id,
    environment_id: environment.id,
    title: "Fibonacci Task",
  });

  // 步骤 4: 建立 SSE 流并发送消息
  const stream = await client.beta.sessions.events.stream(session.id);

  // 发送用户消息
  await client.beta.sessions.events.send(session.id, {
    events: [
      {
        type: "user.message",
        content: [
          {
            type: "text",
            text: "创建一个 Fibonacci 数列生成脚本,包含单元测试。",
          },
        ],
      },
    ],
  });

  // 消费事件流
  for await (const event of stream) {
    switch (event.type) {
      case "agent.message":
        console.log("🤖 Agent:", event.content);
        break;
      case "agent.tool_use":
        console.log(`🔧 工具: [${event.name}]`);
        break;
      case "agent.tool_result":
        console.log("✅ 结果:", String(event.content).slice(0, 200));
        break;
      case "session.status_idle":
        console.log("✨ 任务完成");
        stream.return(); // 关闭流
        break;
      case "session.status_error":
        console.error("❌ 错误:", event);
        stream.return();
        break;
    }
  }
}

runAgent().catch(console.error);
typescript — 带错误处理的生产级封装
interface AgentRunOptions {
  agentId: string;       // 复用已存在的 Agent
  environmentId: string; // 复用已存在的 Environment
  prompt: string;
  onToolUse?: (name: string, input: unknown) => void;
  onMessage?: (content: string) => void;
  timeoutMs?: number;    // 默认 5 分钟
}

async function runAgentTask(opts: AgentRunOptions): Promise {
  const { agentId, environmentId, prompt, timeoutMs = 300_000 } = opts;

  const session = await client.beta.sessions.create({
    agent: agentId,
    environment_id: environmentId,
    title: `Task — ${new Date().toISOString()}`,
  });

  const controller = new AbortController();
  const timeout = setTimeout(() => controller.abort(), timeoutMs);

  try {
    const stream = await client.beta.sessions.events.stream(session.id, {
      signal: controller.signal,
    });

    await client.beta.sessions.events.send(session.id, {
      events: [{ type: "user.message", content: [{ type: "text", text: prompt }] }],
    });

    for await (const event of stream) {
      if (event.type === "agent.message") opts.onMessage?.(event.content as string);
      if (event.type === "agent.tool_use") opts.onToolUse?.(event.name, event.input);
      if (event.type === "session.status_idle") break;
      if (event.type === "session.status_error") throw new Error(`Session error: ${JSON.stringify(event)}`);
    }
  } finally {
    clearTimeout(timeout);
  }
}

ant 命令行参考

ant 是 Anthropic 官方 CLI,通过 Homebrew 安装。支持通过命令行管理 Agent、Environment 和 Session,适合脚本化流水线和快速调试。

bash — 安装 ant CLI
brew install anthropics/tap/ant
ant --version
ant auth login
Agent 管理
ant beta:agents create --name "My Agent" --model claude-sonnet-4-6
创建新 Agent,返回 Agent ID
ant beta:agents list
列出账户下所有 Agent
ant beta:agents get <agent-id>
查看指定 Agent 的完整配置
Environment 管理
ant beta:environments create --name "my-env" --networking unrestricted
创建云端沙盒环境
ant beta:environments list
列出所有 Environment
Session 管理
ant beta:sessions create --agent <id> --environment <id>
创建新 Session,绑定 Agent 和 Environment
ant beta:sessions list
列出近期 Session 及其状态
ant beta:sessions run --session <id> --message "你好"
向 Session 发送消息并流式输出响应
bash — 完整 CLI 工作流示例
# 一次性创建(保存 ID 供复用)
AGENT_ID=$(ant beta:agents create \
  --name "DevOps Agent" \
  --model claude-sonnet-4-6 \
  --system "You are a DevOps expert." \
  --output json | jq -r '.id')

ENV_ID=$(ant beta:environments create \
  --name "devops-env" \
  --networking unrestricted \
  --output json | jq -r '.id')

echo "Agent: $AGENT_ID"
echo "Env: $ENV_ID"

# 每次任务创建新 Session
SESSION_ID=$(ant beta:sessions create \
  --agent $AGENT_ID \
  --environment $ENV_ID \
  --output json | jq -r '.id')

# 运行任务(流式输出)
ant beta:sessions run \
  --session $SESSION_ID \
  --message "创建 Nginx 反向代理配置,支持 HTTPS 和 gzip 压缩"

生产环境建议

以下建议来自 Managed Agents API 的设计原则,帮助你构建稳定、高效的 Agent 系统。

♻️

复用 Agent 和 Environment ID

Agent 和 Environment 是持久化的配置。创建一次后将 ID 存入数据库或环境变量,每次任务复用,只为每个任务创建新 Session。避免重复创建浪费资源。

🔧

使用 agent_toolset_20260401

这是完整工具集,包含 bash(命令执行)、文件读写、Web 访问等核心能力。如果 Agent 需要执行代码、访问网络,必须指定此工具集。

⏱️

正确处理 session.status_idle

收到此事件意味着 Agent 完成了当前任务,正在等待下一条用户消息。这是退出事件循环的正确信号,不要依赖超时来判断任务完成。

🛡️

SSE 断流重连处理

SSE 连接可能因网络波动中断。生产代码应实现重连逻辑(指数退避),并通过 GET /v1/sessions/:id 检查 Session 当前状态,决定是否需要重新订阅事件流。

🔐

Beta Header 自动附加

使用官方 Python 或 TypeScript SDK 时,managed-agents-2026-04-01 Beta header 由 SDK 自动处理,无需手动设置。直接调用 HTTP API 时才需要手动添加。

📝

精心设计 System Prompt

System prompt 对 Agent 行为影响巨大。明确指定:输出格式要求、错误处理策略(遇到失败是重试还是报告)、完成任务的判断标准、工具使用优先级。

🌐

谨慎选择网络策略

默认使用 unrestricted(允许全部网络访问)。处理敏感数据时考虑 none(完全隔离)。未来版本可能支持白名单域名策略,根据安全需求选择合适配置。

📊

监控和日志记录

记录每个 Session 的 ID 和开始时间。在 agent.tool_use 事件中记录工具名称和耗时。设置任务超时(通常 5-15 分钟),避免失控的 Agent 无限运行产生意外费用。

什么时候该用 Managed Agents?

Anthropic 提供多种 AI 集成方式,各有适用场景。选择正确的方案对架构设计至关重要。

能力维度 Managed Agents Messages API Claude Code Tool Use (API)
代码执行环境 ✓ 托管沙盒 ✗ 无 ✓ 本地机器 ✗ 需自建
自主多步推理 ✓ 内置 Loop ✗ 单轮 ✓ 完整 Loop △ 需手动管理
实时流式输出 ✓ SSE ✓ SSE ✓ 终端输出 ✓ SSE
配置持久化 ✓ Agent 对象 ✗ 每次传入 △ CLAUDE.md ✗ 每次传入
网络访问控制 ✓ 策略可配置 ✗ 无执行环境 △ 依赖本地 ✗ 需自建
适合对象 自动化任务、SaaS 平台嵌入 简单对话、内容生成 开发者本地工具 自定义工具集成
基础设施负担 ✓ 零基础设施 ✓ 零基础设施 △ 本地机器 ✗ 需自建执行层
典型延迟 秒级~分钟级(任务型) 毫秒~秒级(单轮) 秒级~分钟级 毫秒~秒级
选择建议: 如果任务需要执行代码、访问文件系统、多步骤迭代(写代码→运行→修复→再运行),且你不想维护自己的执行基础设施,Managed Agents 是最佳选择。如果只需要单次文本生成或简单问答,Messages API 更简单高效。