彻底搞懂Anthropic官方Agent框架(非常详细):从入门到精通看这篇就够了!

张开发
2026/4/16 3:44:24 15 分钟阅读

分享文章

彻底搞懂Anthropic官方Agent框架(非常详细):从入门到精通看这篇就够了!
最近Anthropic推出了Claude Managed Agents。这是一套用来构建和部署云端 Agent 的 API。和常见的 Agent 框架不太一样它的核心其实是一个叫Harness的编排引擎把工具调用、上下文管理、错误恢复这些事都帮你处理了而且会随着模型能力一起升级。之前 Anthropic 的产品线有一个明显的断层。面向消费者有claude.ai和Claude Code面向开发者有Messages API。但如果一家企业想基于 Claude 做一个长时间运行的、能自主调用工具的 Agent它需要自己搭沙箱、做状态管理、处理权限、写错误恢复逻辑。这些基础设施工作可能比 Agent 本身的业务逻辑还重Managed Agents 就是来填这个空的。你可以直接在 Anthropic 的云服务上跑一个 Agent它自带环境、工具和执行能力。你只需要告诉它要做什么然后接收结果就行了。四大核心概念Managed Agents 构建在四个相互协作的核心概念之上。如果你使用过 Claude Code 或 Agent SDK这个思维模型会感觉很熟悉。1. Agent智能体Agent 可以理解为一份可复用的配置用哪个模型、系统提示词是什么、能用哪些工具、要不要接 MCP 服务都在这里定义。创建之后会拿到一个 Agent ID后面可以在不同会话里反复使用。from anthropic import Anthropicclient Anthropic()agent client.beta.agents.create( nameCode Reviewer, modelclaude-sonnet-4-6, systemYou are a senior code reviewer. Review code for bugs, performance issues, and security vulnerabilities. Be direct and specific., tools[{type: agent_toolset_20260401}],)print(agent.id) # ag_01ABC...agent_toolset_20260401基本就是一套「开箱即用」的工具组合包括 Bash、文件读写Read / Write / Edit、代码搜索Glob / Grep还有 Web 访问Web Search / Web Fetch。这些能力也不是强制全开你可以按需要关掉比如不想让它执行 shell 命令就直接禁用。另外Agent 是带版本的。每次更新都会生成一个新版本你可以查看历史记录或者把某个会话固定在指定版本上。这在生产环境里挺有用——可以先用新版本跑一轮测试没问题再切过去。2. Environment环境Environment 可以理解为智能体的运行模板用来定义它「在什么环境里干活」。这里可以配置依赖包、网络规则以及需要挂载的文件。environment client.beta.environments.create( namepython-dev, config{ type: cloud, packages: { pip: [pytest, requests, pandas], apt: [git, curl], }, networking: {type: unrestricted}, },)你可以用pip、npm、apt、cargo、gem和go提前装好依赖。而且同一个环境会被缓存后续会话启动会更快不用每次都重新装一遍。网络默认是unrestricted也可以切到limited再配一个域名白名单。如果你的智能体会处理敏感数据这样可以把它能访问的范围限制得很清楚。另外你还可以把 GitHub 仓库直接挂进环境里environment client.beta.environments.create( namemy-repo-env, config{ type: cloud, github: { repository: myorg/myrepo, branch: main, }, packages: { pip: [pytest], }, networking: {type: unrestricted}, },)会话启动时会自动 clone 下来用起来就像本地项目一样。配合代码审查类的智能体可以很方便地做自动化 PR 检查。3. Session会话Session 可以理解为智能体真正「干活」的地方是运行在环境里的一个实例。每个会话都有独立的容器包含自己的文件系统、进程和网络不会互相影响。session client.beta.sessions.create( agentagent.id, environment_idenvironment.id,)print(session.id) # ses_01XYZ...print(session.status) # running会话会一直存在直到你手动关闭或者超时结束。在这期间智能体可以在多轮对话之间保留状态用起来有点像 Claude Code 里的连续对话。4. Events事件Events 就是你和正在运行的会话之间的「通信通道」。你通过服务器发送事件SSE把消息发给智能体同时也能实时接收它的响应、工具调用和状态更新。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: Review the code in src/ for security issues}], }]) # 流式传输响应 for event in stream: if event.type agent.message: for block in event.content: print(block.text, end) elif event.type agent.tool_use: print(f\n[Using tool: {event.name}]) elif event.type session.status_idle: print(\n[Agent finished]) break因为是流式的你可以看到它在做什么什么时候读文件、什么时候跑命令、什么时候去查 Web整个过程都是可见的。必要的时候也可以中途打断它。完整实战示例下面是一个完整的工作示例创建一个编码助手、给它任务然后实时看它执行的过程。from anthropic import Anthropicclient Anthropic()# 1. 创建智能体agent client.beta.agents.create( namePython Developer, modelclaude-sonnet-4-6, systemYou are an expert Python developer. When given a task:1. Plan your approach first2. Write clean, well-tested code3. Run the tests to verify everything works4. Fix any issues before reporting completion, tools[{type: agent_toolset_20260401}],)# 2. 创建包含常用 Python 包的环境environment client.beta.environments.create( namepython-env, config{ type: cloud, packages: { pip: [pytest, requests, pydantic, fastapi, uvicorn], }, networking: {type: unrestricted}, },)# 3. 启动会话session client.beta.sessions.create( agentagent.id, environment_idenvironment.id,)# 4. 给它一个任务并流式传输响应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: Build a FastAPI app with: - A /health endpoint - A /fibonacci/{n} endpoint that returns the nth fibonacci number - Input validation (n must be between 1 and 1000) - Unit tests for both endpoints Run the tests and make sure they all pass. }], }]) for event in stream: if event.type agent.message: for block in event.content: if hasattr(block, text): print(block.text, end) elif event.type agent.tool_use: print(f\n → {event.name}) elif event.type session.status_idle: break# 5. 在同一会话中发送后续消息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: Now add a /prime/{n} endpoint that checks if n is prime. Add tests for it too.}], }]) for event in stream: if event.type agent.message: for block in event.content: if hasattr(block, text): print(block.text, end) elif event.type session.status_idle: break智能体会自己走完整个流程先想怎么做再写代码、建文件、装依赖、跑测试最后把结果返回给你。因为 Session 是持续存在的后面的任务可以直接基于前面已经写好的代码继续做不需要重新来一遍。本质上这就是和 Claude Code 一样的那套ReActReason → Act → Observe循环。不同的是这一整套运行环境和调度逻辑都已经帮你搭好了你只需要给任务就行。自定义工具和 MCP 服务器内置工具已经能覆盖不少场景但一旦需要接入你自己的系统就要用到扩展能力了。Managed Agents 提供了两种方式。自定义工具你可以用 JSON Schema 定义工具接口。当智能体决定调用时会发出一个结构化请求你的服务去执行然后把结果再回传给它。agent client.beta.agents.create( nameDeploy Assistant, modelclaude-sonnet-4-6, systemYou help with deployments. Use the deploy tool to trigger deployments., tools[ {type: agent_toolset_20260401}, { type: custom, name: trigger_deploy, description: Trigger a deployment to a specified environment, input_schema: { type: object, properties: { service: {type: string, description: Service name}, environment: {type: string, enum: [staging, production]}, version: {type: string, description: Version tag to deploy}, }, required: [service, environment, version], }, }, ],)比如智能体调用trigger_deploy你在事件流里接住这个请求执行部署逻辑再把结果返回。这种方式可以很方便地接入内部 API、数据库、CI/CD 流水线等。MCP 服务器如果你了解 MCP这一块就更省事了。Managed Agents 可以直接连到 MCP 服务器相当于复用一整套现成工具。比如 Slack、GitHub、Jira 这些只要有 MCP 接口基本不需要自己再写一层集成直接就能用。多智能体编排研究预览版这里开始变得有意思了。Managed Agents 提供了一个多智能体编排的研究预览。你可以定义一个「协调器」智能体把任务拆分后分配给多个「工作者」智能体来完成。每个工作者在自己的上下文里运行互不干扰但它们共享同一个容器和文件系统。换句话说对话是隔离的但工作结果是共享的。一个比较实际的例子协调器把代码审查和测试分别交给两个智能体处理。# 创建专业智能体reviewer client.beta.agents.create( nameCode Reviewer, modelclaude-sonnet-4-6, systemYou are an expert code reviewer. Focus on code quality, bugs, and security., tools[{type: agent_toolset_20260401}],)tester client.beta.agents.create( nameTest Writer, modelclaude-sonnet-4-6, systemYou write comprehensive test suites. Focus on edge cases and error handling., tools[{type: agent_toolset_20260401}],)# 创建可以委托给专业智能体的协调器coordinator client.beta.agents.create( nameTech Lead, modelclaude-opus-4-6, systemYou are a tech lead managing a code review process. You have two team members:- Code Reviewer: Reviews code for quality, bugs, and security- Test Writer: Writes comprehensive testsDelegate review and testing tasks to the appropriate specialist, then synthesize their findings into a final report., tools[{type: agent_toolset_20260401}], agents[ {agent_id: reviewer.id, name: Code Reviewer}, {agent_id: tester.id, name: Test Writer}, ],)协调器负责什么时候拆任务、怎么拆然后把各个结果收回来最后统一整理输出。因为大家共享同一套文件系统测试智能体可以直接看到审查智能体标出来的问题再针对这些地方补测试整个流程是串起来的。目前的限制是只支持一层分工协调器 → 工作者工作者不能再继续往下拆。不过即便这样这个模式已经挺实用了。可以把它理解成一套「AI 版 CI/CD 流水线」不同智能体分别做 lint、测试、安全扫描、部署各自处理然后由协调器统一收口。与其他方法的对比Anthropic 现在的智能体相关产品其实有点重叠可以简单按「你要自己管多少东西」来理解方法你需要管什么适合场景Messages API全部循环、工具、容器需要完全自定义Agent SDK工具执行、容器想用工具但自己托管Managed Agents只管提示词和任务后端自动化Claude Code CLI基本不用管本地交互式开发Claude Cowork不用管非技术用户如果换成更实际一点的选型思路可以这么看使用 Messages API当你需要完全控制整个 Agent 流程比如自己决定每一步怎么走、用什么模型或者有一些很定制化的需求。。使用 Agent SDK当你想用 Claude Code 那一套成熟工具文件操作、搜索、bash但又希望所有东西跑在自己的环境里。使用 Managed Agents当你只想把 Agent 跑起来不想管基础设施。很适合做后端自动化比如 PR 审查、代码生成流水线、测试、文档生成这些。使用 Claude Code当你是在本地写代码需要一个能随时帮你改代码、查问题的助手。定价详解Managed Agents 的费用其实可以拆成两块token 运行时间。1Token 费用和普通 API 一样模型输入输出Opus 4.6$5/MTok$25/MTokSonnet 4.6$3/MTok$15/MTokHaiku 4.5$1/MTok$5/MTok2会话运行时间按会话计费$0.08 / 小时精确到毫秒。只有在运行中的时间才收费空闲不算钱。可以用一个简单的例子来感受一下一次用 Opus 4.6 跑了大约 1 小时的编码任务消耗 50K 输入 token 15K 输出 token总成本大概是• 输入$0.25• 输出$0.375• 运行时间$0.08•总计约 $0.705从成本结构来看其实挺好理解的• token 是「思考成本」• runtime 是「环境成本」而且 runtime 这部分其实不贵。你拿它和自己在 AWS 上搭一套EC2 容器 调度 工具链对比会发现时间成本和工程复杂度往往更高。还有几个容易忽略的点•Web 搜索$10 / 1000 次•提示词缓存命中缓存只算 0.1x这点挺关键因为 Agent 通常有很长的上下文可以构建什么下面这些是我觉得比较有意思、也比较实用的用法自动化 PR 审查把 GitHub 仓库挂进来做一个代码审查的智能体每次有 PR 就跑一轮。它可以读 diff、查 bug、看安全问题、跑测试然后直接给出审查结果。如果用多智能体还可以把安全、性能、代码质量拆开各自处理。自愈 CI/CDCI 挂了的时候自动拉起一个智能体把报错信息和代码给它。它去分析原因、写修复、再开一个 PR。对于 flaky 测试或者简单回归问题这种方式能省掉不少人工排查时间。文档生成让智能体直接读代码库生成或更新 API 文档、README、变更日志这些。因为它能跑代码、调命令所以连示例代码都可以顺手验证一遍而不是「看起来对」。数据流水线调试数据任务出问题时拉一个能看代码、日志、监控的智能体可以通过 MCP 接入。它可以一路追问题、找原因甚至直接给出修复方案。代码迁移比如要从一个框架迁到另一个可以做一个专门的迁移智能体。给它旧代码和新框架文档让它一块一块地改而不是一次性全推翻。快速上手安装其实很简单常见语言基本都支持Python、TypeScript、Java、Go、C#、Ruby、PHP。# Pythonpip install anthropic# TypeScriptnpm install anthropic-ai/sdk# CLIbrew install anthropics/tap/ant用的时候有一个小点要注意所有请求需要带上managed-agents-2026-04-01这个 beta 头。不过如果你直接用client.beta.agents这一套接口SDK 会帮你自动处理。另外一些还在预览阶段的功能比如多智能体、内存、结果管理需要单独申请开通[1]。文档也已经比较全了可以直接去官方文档[2]看详细用法。写到最后Managed Agents 其实代表了 Anthropic 的一个明显变化从「提供模型能力」走向「提供完整的智能体运行平台」。以前是你调用 API、自己把循环和工具这些东西拼起来现在更像是你定义任务执行这件事交给平台。我觉得可以用 AWS 来类比从 EC2什么都自己管到 Lambda只写逻辑其他交给平台。Anthropic 也在走类似的路径从 Messages API到现在的 Managed Agents。多智能体的预览版本其实已经在暗示下一步不是一个 Agent而是一组分工明确的 Agent一起完成任务。换句话说以后可能不是「写一个系统」而是「配置一组智能体」。如果你之前自己搭过 Agent就会知道有多少时间花在这些事情上循环控制、工具调用、执行环境、上下文管理……Managed Agents 做的事情其实很简单把这些基础设施都收走让你只用关心任务本身。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多文章