# Build Managed Agents

> 教 Claude Code / OpenClaw 等 coding agent 使用 Anthropic Claude Managed Agents（云端托管代理服务）API —— create/run/audit 全流程。当用户（或上游 coding agent）需要创建托管 agent、跑 session、流式处理事件、审计用量或调用 /v1/agents、/v1/environments、/v1/sessions 等 API 时使用。触发词：managed agents、托管代理、build a managed agent、agent_toolset_20260401、client.beta.agents、client.beta.sessions。

- **Type:** Skill
- **Install:** `agentstack add skill-yijiaduan-build-managed-agents-build-managed-agents`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [YijiaDuan](https://agentstack.voostack.com/s/yijiaduan)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [YijiaDuan](https://github.com/YijiaDuan)
- **Source:** https://github.com/YijiaDuan/build-managed-agents

## Install

```sh
agentstack add skill-yijiaduan-build-managed-agents-build-managed-agents
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# build-managed-agents

这是一个给 coding agent（Claude Code / OpenClaw / Cursor agent 等）用的 skill —— 当 coding agent 需要帮用户构建基于 Claude Managed Agents 的应用时，照着本 skill 的 recipe 执行。

Anthropic 托管的 agent 运行时：云容器 + 内置工具 + 事件流。你不用自己搭 agent loop、工具执行、沙箱。

本 skill 覆盖三个阶段：**Create**（定义 agent/环境/session）→ **Run**（发消息、流式接收、处理工具确认）→ **Audit**（查状态、事件流、token 用量、成本）。

## 何时使用

- 用户要"创建一个 managed agent" / "托管 agent" / "跑一个 session"
- 代码里出现 `client.beta.agents`、`client.beta.environments`、`client.beta.sessions`
- 用户询问 `/v1/agents`、`/v1/environments`、`/v1/sessions` 等端点
- 用户要审计/调试 session（看事件流、token 消耗、错误重试）

## 前置条件

```bash
pip install anthropic  # Python
# 或 npm install @anthropic-ai/sdk  # TypeScript

export ANTHROPIC_API_KEY="sk-ant-..."
```

所有 API 需要 beta header：`anthropic-beta: managed-agents-2026-04-01`（SDK 自动加）。

Research preview 功能（outcomes / 多 agent / memory stores）需额外：`managed-agents-2026-04-01-research-preview`。

## 核心概念速查

| 概念 | 说明 | 生命周期 |
|------|------|---------|
| **Agent** | 模型 + system prompt + 工具 + MCP + skills | 复用，有版本号 |
| **Environment** | 云容器模板（预装包、网络规则） | 复用 |
| **Session** | 一次运行实例（Agent × Environment） | 一次性，有完整事件流 |
| **Event** | 会话中每条消息/工具调用/状态变更 | 永久存储，可审计 |

## 标准工作流

### 1. Create 阶段（一次性）

```python
from anthropic import Anthropic
client = Anthropic()

agent = client.beta.agents.create(
    name="My Agent",
    model="claude-sonnet-4-6",
    system="你的 system prompt",
    tools=[{"type": "agent_toolset_20260401"}],  # bash/read/write/edit/glob/grep/web_fetch/web_search
)

env = client.beta.environments.create(
    name="my-env",
    config={"type": "cloud", "networking": {"type": "unrestricted"}},
)
```

详细参数、MCP、skills、自定义工具、权限策略 → 见 `reference/create.md`

### 2. Run 阶段（每个任务一次）

```python
session = client.beta.sessions.create(agent=agent.id, environment_id=env.id)

with client.beta.sessions.events.stream(session.id) as stream:
    client.beta.sessions.events.send(
        session.id,
        events=[{"type": "user.message", "content": [{"type": "text", "text": "..."}]}],
    )
    for event in stream:
        match event.type:
            case "agent.message":
                for block in event.content:
                    print(block.text, end="")
            case "agent.tool_use":
                pass  # 内置工具，系统自动执行
            case "agent.custom_tool_use":
                # 自定义工具 — 你必须发 user.custom_tool_result 回去
                ...
            case "session.status_idle":
                break
```

关键细节：
- **必须先开 stream 再 send**（不然前几个事件丢失）
- 遇到 `always_ask` 权限的工具，agent 会停下等 `user.tool_confirmation`
- 遇到 `agent.custom_tool_use`，你必须回 `user.custom_tool_result`，否则 session 卡死
- 要中断 agent 用 `user.interrupt`

完整事件类型表、图片/文档输入、多 agent、outcomes、memory stores → 见 `reference/run.md` 和 `reference/events.md`

### 3. Audit 阶段（任何时候）

```python
# 列出所有 session 状态
for s in client.beta.sessions.list(limit=50):
    print(s.id, s.status, s.usage.input_tokens + s.usage.output_tokens)

# 拉某个 session 的完整事件流（审计链）
for evt in client.beta.sessions.events.list(session_id):
    print(evt.type, evt.processed_at)

# 看 token 用量 + 时长
s = client.beta.sessions.retrieve(session_id)
print(s.usage, s.stats)
```

成本估算、按时间段过滤、错误分类统计 → 见 `reference/audit.md`

## 可用脚本

- `scripts/quickstart.py` — 一键跑通 create→run→audit 的最小模板
- `scripts/admin.py` — 管理工具（list-sessions / show / stats / cleanup）

直接 copy 到项目里改 system prompt 即可。

## 常见陷阱

1. **Agent 版本漂移**：生产环境要 pin 版本 `agent={"type": "agent", "id": "...", "version": N}`，否则 update 后静默升级
2. **Stream 顺序**：先 `.stream()` 打开通道，再 `.send()` 发消息，顺序反了会丢事件
3. **Custom tool 悬挂**：收到 `agent.custom_tool_use` 必须回 `user.custom_tool_result`（`is_error=True` 也行），否则 session 永远 idle
4. **Tool confirmation**：`always_ask` 权限下 agent 会停在 `session.status_idle` 且 `stop_reason.type="requires_action"`，需要 `user.tool_confirmation` 放行
5. **Rate limits**：Create 类 60/min，Read 类 600/min。列表操作尽量用 limit + pagination
6. **Archive vs Delete**：优先 archive（保留审计），delete 是永久的
7. **Running session 不能 delete**：先发 `user.interrupt` 让它 idle

## 参考文件索引

- `reference/create.md` — Agent/Environment/Session 完整创建参数
- `reference/run.md` — 事件收发、流式、多 agent、memory stores、outcomes
- `reference/events.md` — 所有事件类型 schema（agent.* / user.* / session.* / span.*）
- `reference/audit.md` — 列表查询、用量统计、成本估算、合规审计
- `reference/errors.md` — 错误类型、重试策略、状态机
- `scripts/quickstart.py` — 可运行模板
- `scripts/admin.py` — CLI 管理工具

## 官方文档

- https://platform.claude.com/docs/en/managed-agents/overview
- https://platform.claude.com/docs/en/managed-agents/quickstart
- https://platform.claude.com/docs/en/api/agents

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [YijiaDuan](https://github.com/YijiaDuan)
- **Source:** [YijiaDuan/build-managed-agents](https://github.com/YijiaDuan/build-managed-agents)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-yijiaduan-build-managed-agents-build-managed-agents
- Seller: https://agentstack.voostack.com/s/yijiaduan
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
