Claude Managed Agents Cookbook
Anthropic 官方 Cookbook 实践:构建基于 Claude Managed Agents 的数据分析师和 Slack Bot。
核心概念
Claude Managed Agents 基于四个核心概念:
- Agent:模型、系统提示词、工具、MCP servers 和 skills
- Environment:配置的容器模板(包、网络访问)
- Session:在环境中运行的 agent 实例,执行特定任务
- Events:应用与 agent 之间交换的消息
Agent + Environment = Session。Anthropic 处理沙盒、工具执行和上下文管理。
Cookbook 1:Data Analyst Agent
将 CSV 转换为带交互式图表的叙事 HTML 报告。
关键实现步骤
- 创建 Environment:声明
pandas和plotly为预装包 - 创建 Agent:使用
agent_toolset_20260401(八工具:bash/read/write/edit/glob/grep/web_fetch/web_search) - 上传数据集 → Files API
- 创建 Session 并发送分析任务
- 流式监控运行过程
- 获取报告:
/mnt/session/outputs/下的文件通过 Files API 获取
系统提示词要点
- 专业精确风格,使用具体数字
- 图表之间短段落(2-3 句)
- 以最具行动力的发现开头
- 输出到
/mnt/session/outputs/report.html
Cookbook 2:Slack Data Analyst Bot
用 Bolt for Python 包装数据分析师 agent,@bot + CSV 附件即可获得线程内分析报告。
架构
user: @databot what's driving Q1 revenue? [sales.csv]
|
bot uploads CSV and starts agent session
|
bot streams progress back to thread
|
bot posts finished report to thread
关键设计
- Thread-to-Session 映射:
thread_sessions: dict[str, str]维持多轮对话上下文 - 后台线程:Slack 3 秒 ack 窗口要求慢操作必须在后台线程执行
- Socket Mode:WebSocket 交付,无需公网 URL
- Follow-ups:线程内回复继续同一会话
生产考虑
- 将
thread_sessions持久化到数据库,确保 bot 重启后对话不丢失 - 线程过期时归档会话释放容器
- 在数据分析师 notebook 中修改 agent 系统提示词即可改变分析风格
最佳实践
- Agent 和 Environment 创建一次,跨运行复用
- 每个对话创建新 Session
- 完成后归档 Session 释放容器
- 将 agent/environment ID 保存到
.env供其他应用复用