<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Anthropic on 鬼哥的空间</title><link>https://guige.ai/tags/anthropic/</link><description>Recent content in Anthropic on 鬼哥的空间</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sat, 18 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://guige.ai/tags/anthropic/index.xml" rel="self" type="application/rss+xml"/><item><title>Claude-Cookbooks 全景导航：被 README 藏起来的另一半</title><link>https://guige.ai/p/claude-cookbooks-index/</link><pubDate>Sat, 18 Apr 2026 00:00:00 +0000</pubDate><guid>https://guige.ai/p/claude-cookbooks-index/</guid><description>&lt;img src="https://guige.ai/" alt="Featured image of post Claude-Cookbooks 全景导航：被 README 藏起来的另一半" /&gt;&lt;p&gt;最近 AI 的发展真的是日行千里。&lt;/p&gt;
&lt;p&gt;每天打开手机开源社区、翻公众号、过一遍 GitHub Trending——新模型、新工具、新系统、新应用，再加上无数业内高人分享的实践经验，内容浩如烟海，&lt;strong&gt;百家争鸣，百家齐放&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;说实话，我自己看着都眼花缭乱。有时候晚上躺下想到&amp;quot;今天又没来得及看那几篇论文、那几个新项目&amp;quot;，连睡觉都觉得是在浪费学习时间。&lt;/p&gt;
&lt;p&gt;这种状态持续久了，人是会焦虑的。鬼哥每天拼命学习, 拼命实践, 都快忘了自己还是个吉他手, 也得花时间练琴了.&lt;/p&gt;
&lt;p&gt;但前阵子我沉下心来，花了一段时间认真翻了一遍 Anthropic 官方的这份 &lt;a class="link" href="https://github.com/anthropics/claude-cookbooks" target="_blank" rel="noopener"
 &gt;claude-cookbooks&lt;/a&gt;——翻完之后我反倒松了一口气。&lt;/p&gt;
&lt;p&gt;这份仓库里的内容，&lt;strong&gt;积累了 Anthropic 工程师过去三年对 AI 工程化的思考&lt;/strong&gt;。覆盖面非常全：从 API 最基础的用法，到 Prompt Caching 的成本优化，到 Tool Use 的各种进阶模式，再到 Agent SDK、Managed Agents、Skills 这些最近才成型的产品形态——几乎把&amp;quot;怎么用好 Claude 做一个能上生产的 AI 应用&amp;quot;这件事，从头到尾挨个讲了一遍。&lt;/p&gt;
&lt;p&gt;宝藏是真的多，内容也真的多。想用一两篇文章讲清楚根本不现实。&lt;/p&gt;
&lt;p&gt;所以我决定先写这一篇——&lt;strong&gt;给这份指南做一个大致的梳理，整理出一份索引地图。&lt;/strong&gt; 后面每个具体话题，再单独开长文展开。&lt;/p&gt;
&lt;p&gt;也建议你把这份 cookbook 当作一份&lt;strong&gt;可以反复查、反复学的学习地图&lt;/strong&gt;：不需要一次读完，但值得在接下来几个月里反复回来翻。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;你打开 &lt;a class="link" href="https://github.com/anthropics/claude-cookbooks" target="_blank" rel="noopener"
 &gt;anthropics/claude-cookbooks&lt;/a&gt; 的 README，看到的大概是十几条链接——分类、RAG、摘要、几个 tool use 示例、一篇 prompt caching。&lt;/p&gt;
&lt;p&gt;如果你只看 README，会以为这就是一份写了两年没人管的老项目。&lt;/p&gt;
&lt;p&gt;但你往目录里翻一下就会发现——&lt;strong&gt;这份仓库里塞着接近一百篇 notebook，README 里能看到的，大概只占三分之一。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;被 README 藏起来的另一半，恰恰是这两年 Anthropic 官方重点推进的东西：Claude Agent SDK 教程、Managed Agents 的 CMA 系列、Skills 技能包、Tool Use 的进阶玩法、Extended Thinking 和 Tool Search 的新模式……这些内容散落在 &lt;code&gt;claude_agent_sdk/&lt;/code&gt;、&lt;code&gt;managed_agents/&lt;/code&gt;、&lt;code&gt;skills/&lt;/code&gt;、&lt;code&gt;patterns/agents/&lt;/code&gt; 这些 README 完全没提的目录下。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/cover.webp" srcset="https://guige.ai/p/claude-cookbooks-index/cover_hu_53cbe1068ad82fe6.webp 800w, https://guige.ai/p/claude-cookbooks-index/cover_hu_929032a06d32b24c.webp 1600w, https://guige.ai/p/claude-cookbooks-index/cover_hu_1d8f6eabb53c4602.webp 2400w, https://guige.ai/p/claude-cookbooks-index/cover.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;p&gt;这篇文章做的事很简单：&lt;strong&gt;把这份 repo 按主题重新整理成一张可以反复查的索引地图。&lt;/strong&gt; 每个模块一句话定位、列出具体 notebook 文件名、说清楚什么时候该看它——后面想逐篇深入的时候，翻这一页就知道从哪下手。&lt;/p&gt;
&lt;p&gt;不做深度拆解，只做导航。真正的&amp;quot;为什么要这么设计&amp;quot;那种长文，留给后面每个主题单开一篇来写。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一先把这份-repo-的定位搞清楚"&gt;一、先把这份 repo 的定位搞清楚
&lt;/h2&gt;&lt;p&gt;在往下看之前，先明确一件事：&lt;strong&gt;claude-cookbooks 不是文档的补充，而是可跑的工程示例库。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Anthropic 官方的内容资源现在大致分成三层：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;资源&lt;/th&gt;
 &lt;th&gt;角色&lt;/th&gt;
 &lt;th&gt;面向&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://docs.claude.com" target="_blank" rel="noopener"
 &gt;docs.claude.com&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;权威文档&lt;/td&gt;
 &lt;td&gt;查 API 参数、模型特性&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://github.com/anthropics/courses" target="_blank" rel="noopener"
 &gt;anthropics/courses&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;入门课程&lt;/td&gt;
 &lt;td&gt;第一次接触 API 的开发者&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://github.com/anthropics/claude-cookbooks" target="_blank" rel="noopener"
 &gt;anthropics/claude-cookbooks&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;工程菜谱&lt;/td&gt;
 &lt;td&gt;已经会调 API、想把某个具体场景做好的人&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cookbook 是&amp;quot;可执行的最佳实践&amp;quot;：每个 notebook 就是一个最小可跑的场景，装完依赖、填上 API key 就能复现。它的价值不在于&amp;quot;教你 Claude 是什么&amp;quot;，而在于&amp;quot;别人做过这件事，代码给你抄走&amp;quot;。&lt;/p&gt;
&lt;p&gt;换句话说，文档告诉你&lt;strong&gt;某个 API 参数是什么意思&lt;/strong&gt;，cookbook 告诉你&lt;strong&gt;在真实场景里这个参数应该怎么配、还要和哪几件事配合用&lt;/strong&gt;。这两者是互补的——文档适合查细节，cookbook 适合找套路。&lt;/p&gt;
&lt;p&gt;这也解释了为什么它的更新节奏跟着 Anthropic 的产品线走——&lt;strong&gt;每出一个新产品或新能力，这里就会多一个目录&lt;/strong&gt;。Claude Agent SDK 发布之后有了 &lt;code&gt;claude_agent_sdk/&lt;/code&gt;，Managed Agents 发布之后有了 &lt;code&gt;managed_agents/&lt;/code&gt;，Skills 功能上线之后有了 &lt;code&gt;skills/&lt;/code&gt;。所以它也是观察 Anthropic 官方工程重点转向的一个风向标。&lt;/p&gt;
&lt;p&gt;一个小提醒：README 里的链接还是旧的 &lt;code&gt;anthropic-cookbook&lt;/code&gt; 仓库路径（目录名对，仓库名已改成 &lt;code&gt;claude-cookbooks&lt;/code&gt;）。clone 的时候用新名字，跟着链接点进去会被 GitHub 自动重定向，不影响看内容，但会让你怀疑自己是不是 clone 错了库。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二一张总览图20-多个目录怎么归类"&gt;二、一张总览图：20 多个目录怎么归类
&lt;/h2&gt;&lt;p&gt;仓库里大大小小二十多个目录，我按&amp;quot;使用场景&amp;quot;把它们重新归了一下组：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;大类&lt;/th&gt;
 &lt;th&gt;涉及目录&lt;/th&gt;
 &lt;th&gt;解决的问题&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;基础能力&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;capabilities/&lt;/code&gt; &lt;code&gt;multimodal/&lt;/code&gt; &lt;code&gt;extended_thinking/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Claude API 开箱即用能做的事&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Tool Use&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tool_use/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;让模型调用外部工具&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;性能与成本&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;misc/&lt;/code&gt;（caching/batch 部分） &lt;code&gt;observability/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Prompt caching、批处理、用量监控&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Agent 三条路径&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;patterns/agents/&lt;/code&gt; &lt;code&gt;claude_agent_sdk/&lt;/code&gt; &lt;code&gt;managed_agents/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从模式→SDK→托管运行时的递进&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Skills 技能包&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;skills/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;打包专业能力给 Claude 调用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;第三方集成&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;third_party/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pinecone / Voyage / Mongo / Wolfram 等八家&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;评估与微调&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;tool_evaluation/&lt;/code&gt; &lt;code&gt;finetuning/&lt;/code&gt; &lt;code&gt;misc/building_evals.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Prompt eval、工具 eval、Bedrock 微调&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;工程实践（meta）&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;整个仓库的组织方式&lt;/td&gt;
 &lt;td&gt;uv / ruff / registry / slash commands&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/overview.webp" srcset="https://guige.ai/p/claude-cookbooks-index/overview_hu_30e715d96f70a7a.webp 800w, https://guige.ai/p/claude-cookbooks-index/overview_hu_d2028a1bd822e71e.webp 1600w, https://guige.ai/p/claude-cookbooks-index/overview_hu_61f12447a251cb2d.webp 2400w, https://guige.ai/p/claude-cookbooks-index/overview.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;p&gt;接下来按这个骨架一层层往里翻。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="三基础能力层claude-api-开箱即用能做什么"&gt;三、基础能力层：Claude API 开箱即用能做什么
&lt;/h2&gt;&lt;h3 id="31-capabilities--经典的-nlp-任务"&gt;3.1 &lt;code&gt;capabilities/&lt;/code&gt; — 经典的 NLP 任务
&lt;/h3&gt;&lt;p&gt;这是整个 cookbook 里最&amp;quot;传统&amp;quot;的一块，也是大部分教程会从这里开始的原因——这些任务不依赖任何高级特性，一个 API key 就能跑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;classification/&lt;/code&gt;&lt;/strong&gt; — 文本分类。几个 prompt 模式对比，从 zero-shot 到 few-shot 到带 chain-of-thought 的长 prompt。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;summarization/&lt;/code&gt;&lt;/strong&gt; — 摘要。包括长文分块摘要、多文档合并摘要、以及&amp;quot;按角色视角写摘要&amp;quot;这种进阶玩法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;retrieval_augmented_generation/&lt;/code&gt;&lt;/strong&gt; — RAG。从最基础的&amp;quot;向量检索 + 拼 prompt&amp;quot;到带 rerank、混合检索的几种设计。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;contextual-embeddings/&lt;/code&gt;&lt;/strong&gt; — 这是比较新的一篇，讲 Anthropic 自己提出的&amp;quot;给每个 chunk 加一段上下文描述再 embed&amp;quot;的做法，在某些场景上能显著提升召回。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;text_to_sql/&lt;/code&gt;&lt;/strong&gt; — 自然语言转 SQL，包括 schema 注入、错误恢复、结果校验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;knowledge_graph/&lt;/code&gt;&lt;/strong&gt; — 用 Claude 从文本抽取三元组、构建图谱。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你是刚开始用 Claude API 做项目，这块是&amp;quot;背景知识&amp;quot;——不是每篇都要精读，但至少扫一遍标题，知道什么场景能在这里找到参考实现。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;contextual-embeddings/&lt;/code&gt; 这篇值得单独提一下。传统 RAG 的 embedding 过程是直接把 chunk 扔进 embedding 模型，但很多 chunk 脱离上下文后其实没法检索——比如一段&amp;quot;它在第三季度增长了 12%&amp;quot;，没有&amp;quot;哪家公司 / 哪个产品&amp;quot;的上下文，embedding 向量就很泛。Anthropic 的做法是先用 Claude 给每个 chunk 生成一段上下文描述（&amp;ldquo;这段来自 XXX 公司 2024 Q3 财报的营收章节&amp;rdquo;），再和原文拼在一起去 embed。实测在有些场景上能把召回率提升 35% 以上，代价是 embedding 阶段的 prompt caching 必须做好，不然成本会飙。&lt;/p&gt;
&lt;h3 id="32-multimodal--视觉能力"&gt;3.2 &lt;code&gt;multimodal/&lt;/code&gt; — 视觉能力
&lt;/h3&gt;&lt;p&gt;Claude 的 vision 能力现在已经是基础配置，这个目录把&amp;quot;怎么用好它&amp;quot;讲了一圈：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;getting_started_with_vision.ipynb&lt;/code&gt;&lt;/strong&gt; — 入门。base64 编码、URL 传图、多图一起传的几种姿势。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;best_practices_for_vision.ipynb&lt;/code&gt;&lt;/strong&gt; — 最佳实践。图片放在 prompt 的哪个位置、多图之间怎么编号、什么时候该先 OCR 再喂文字。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;reading_charts_graphs_powerpoints.ipynb&lt;/code&gt;&lt;/strong&gt; — 图表解读。财报柱状图、流程图、PPT 截图的实战。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;how_to_transcribe_text.ipynb&lt;/code&gt;&lt;/strong&gt; — 表单/手写稿 OCR。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;crop_tool.ipynb&lt;/code&gt;&lt;/strong&gt; — 让 Claude 自己决定&amp;quot;先裁图再看细节&amp;quot;的分步处理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;using_sub_agents.ipynb&lt;/code&gt;&lt;/strong&gt; — 用 Haiku 做前置视觉处理，Opus 做最终决策的 sub-agent 模式。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="33-extended_thinking--让模型想得更久"&gt;3.3 &lt;code&gt;extended_thinking/&lt;/code&gt; — 让模型&amp;quot;想得更久&amp;quot;
&lt;/h3&gt;&lt;p&gt;Extended Thinking 是 Claude 4 系列引入的能力，让模型在给出答案前先做一段内部推理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;extended_thinking.ipynb&lt;/code&gt;&lt;/strong&gt; — 基础用法。怎么打开、thinking budget 怎么设、拿到的 thinking block 长什么样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;extended_thinking_with_tool_use.ipynb&lt;/code&gt;&lt;/strong&gt; — 和 tool use 结合。这个组合比较微妙——model 在 tool call 之间保留 thinking context 的方式跟普通对话不一样，这一篇讲清楚了边界。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="四tool-use-专题整个-cookbook-最密的一块"&gt;四、Tool Use 专题：整个 cookbook 最密的一块
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;tool_use/&lt;/code&gt; 目录是更新最频繁、内容也最厚的一块。里面的 notebook 粗粗可以分成&amp;quot;基础用法&amp;quot;和&amp;quot;进阶玩法&amp;quot;两层：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;基础几篇，先过一遍：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;calculator_tool.ipynb&lt;/code&gt; — 第一次接触 tool use 必看，一个最简单的计算器示例。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_choice.ipynb&lt;/code&gt; — &lt;code&gt;auto&lt;/code&gt; / &lt;code&gt;any&lt;/code&gt; / &lt;code&gt;tool&lt;/code&gt;（强制某个具体工具）三种模式的区别。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;parallel_tools.ipynb&lt;/code&gt; — 一次响应里并发调多个工具。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;extracting_structured_json.ipynb&lt;/code&gt; — 用 tool use 强制返回结构化 JSON，比裸 prompt 稳定得多。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_use_with_pydantic.ipynb&lt;/code&gt; — 直接用 Pydantic 模型定义 tool schema。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;customer_service_agent.ipynb&lt;/code&gt; — 经典的客服机器人综合示例。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;进阶部分，每篇都是一个独立课题：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;memory_cookbook.ipynb&lt;/code&gt; + &lt;code&gt;memory_tool.py&lt;/code&gt;&lt;/strong&gt; — Claude 的 memory tool，让模型能读写自己的记忆文件。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;programmatic_tool_calling_ptc.ipynb&lt;/code&gt;&lt;/strong&gt; — PTC（Programmatic Tool Calling）。让 Claude 生成一段小代码来决定怎么调用一组工具，而不是一个个手动编排。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;automatic-context-compaction.ipynb&lt;/code&gt;&lt;/strong&gt; — 自动上下文压缩。长对话里如何在触发上限前让模型自己&amp;quot;总结前面然后丢掉&amp;quot;。这一篇和我之前写过的 &lt;a class="link" href="https://luoli523.github.io/p/claude-code-session-management/" target="_blank" rel="noopener"
 &gt;Session 管理文章&lt;/a&gt; 其实是同一套思路的底层实现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;tool_search_with_embeddings.ipynb&lt;/code&gt; + &lt;code&gt;tool_search_alternate_approaches.ipynb&lt;/code&gt;&lt;/strong&gt; — 工具太多塞不进 prompt 的时候怎么办。用 embedding 召回最相关的工具再喂给模型。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;vision_with_tools.ipynb&lt;/code&gt;&lt;/strong&gt; — 把 vision 输入和 tool use 混在一起用的注意事项。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;threat_intel_enrichment_agent.ipynb&lt;/code&gt;&lt;/strong&gt; — 威胁情报富化 Agent，一个比较完整的垂直场景实战。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;context_engineering/&lt;/code&gt;&lt;/strong&gt; 子目录 — 专门讲上下文工程的一组 notebook，是相对独立的小专题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个目录是我个人会反复回来查的。基本上做任何一个需要&amp;quot;让模型调用外部能力&amp;quot;的项目，都能在这里找到至少一个相近的参考实现。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;特别想点名 PTC 和 Tool Search 这两篇。&lt;/strong&gt; PTC（Programmatic Tool Calling）解决的是&amp;quot;工具编排逻辑比工具本身还复杂&amp;quot;的场景——比如你有 10 个工具需要按特定顺序调用并做中间结果处理，与其让模型一轮一轮 tool call，不如让它一次性生成一段编排代码，由你在沙箱里执行。这种做法在复杂工作流里能把 round-trip 次数从十几轮压到两三轮，延迟和成本都是数量级的改善。&lt;/p&gt;
&lt;p&gt;Tool Search 解决的是另一类问题：&lt;strong&gt;工具数量多到塞不进 prompt&lt;/strong&gt;。一个大型 Agent 系统可能挂了几百个 MCP 工具，全部塞进去既超 token 又污染模型判断。用 embedding 预先对工具做语义索引，按用户 query 召回 top-K 工具再喂给模型，是目前比较成熟的解法。这一篇讲清楚了实现细节和几种 trade-off。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/tool-use.webp" srcset="https://guige.ai/p/claude-cookbooks-index/tool-use_hu_e6dfd6544783b5d6.webp 800w, https://guige.ai/p/claude-cookbooks-index/tool-use_hu_e4d5b93d38434ff6.webp 1600w, https://guige.ai/p/claude-cookbooks-index/tool-use_hu_1065b15c30b97f93.webp 2400w, https://guige.ai/p/claude-cookbooks-index/tool-use.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="五性能与成本优化"&gt;五、性能与成本优化
&lt;/h2&gt;&lt;p&gt;做 Demo 的时候钱和速度都不敏感，但一旦到线上，&lt;strong&gt;成本和延迟立刻就会成为第一优先级问题。&lt;/strong&gt; 这块内容散落在几个目录里，我挑出来单独放一节：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/prompt_caching.ipynb&lt;/code&gt;&lt;/strong&gt; — Prompt caching 的基础用法。配合我之前那篇 &lt;a class="link" href="https://luoli523.github.io/p/llm-prompt-caching-explained/" target="_blank" rel="noopener"
 &gt;Prompt Caching 深度拆解&lt;/a&gt; 一起看效果最好：那篇讲&amp;quot;为什么要这么做&amp;quot;和底层 KV cache 原理，这篇告诉你&amp;quot;具体几行代码怎么写&amp;quot;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/speculative_prompt_caching.ipynb&lt;/code&gt;&lt;/strong&gt; — 推测式缓存。不等用户发消息，提前把可能的下一轮 prompt 预热进缓存。在某些低延迟场景下能把首 token 延迟打下去很多。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/batch_processing.ipynb&lt;/code&gt;&lt;/strong&gt; — Message Batches API。离线批处理的价格是实时请求的 50%，跑评测、做回填数据时能省很多。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/session_memory_compaction.ipynb&lt;/code&gt;&lt;/strong&gt; — 会话记忆压缩。和 tool use 里的 automatic-context-compaction 是配套关系，一个讲工具侧，一个讲消息侧。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;observability/usage_cost_api.ipynb&lt;/code&gt;&lt;/strong&gt; — Usage &amp;amp; Cost API。用来做团队用量看板、成本归因报表。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/using_citations.ipynb&lt;/code&gt;&lt;/strong&gt; — Citations 功能。让 Claude 在回答里标注&amp;quot;这句话来自文档的哪一段&amp;quot;，做 RAG 产品时非常有用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/sampling_past_max_tokens.ipynb&lt;/code&gt;&lt;/strong&gt; — 当输出被 max_tokens 截断时怎么优雅续写。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这几篇单独看每一个都不长，但组合起来基本就是一个&amp;quot;线上项目优化清单&amp;quot;。上线前对着这张清单过一遍，能省下不少成本和踩坑时间。&lt;/p&gt;
&lt;p&gt;有一个非常容易被忽略的组合用法：&lt;strong&gt;prompt caching + batch processing&lt;/strong&gt;。Batch API 本身就打 5 折，再加上 caching 命中的部分又打 1 折左右，叠加下来做离线大规模推理时的成本可以比天真实现低 85% 以上。如果你在做评估、数据标注、回填历史数据这类离线任务，这个组合的经济性优势非常大，但大多数人做 MVP 时根本不会想到要用它。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="六agent-的三条进阶路径"&gt;六、Agent 的三条进阶路径
&lt;/h2&gt;&lt;p&gt;这是整个 cookbook 里我认为&lt;strong&gt;最值得花时间的一块&lt;/strong&gt;，也是 README 最没讲清楚的一块。&lt;/p&gt;
&lt;p&gt;Anthropic 把&amp;quot;怎么构建 Agent&amp;quot;拆成了三个层次递进的目录：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;patterns/agents/ ← 模式层：概念和套路（轻量）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;claude_agent_sdk/ ← SDK 层：用 Agent SDK 自己组装（中等）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;managed_agents/ ← 托管层：用 Managed Agents 托管运行时（重型）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;从左到右是&amp;quot;自由度递减、工程量递减&amp;quot;的关系。&lt;/strong&gt; 哪一层适合你，取决于你要做的系统规模和运行需求。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/agents-layers.webp" srcset="https://guige.ai/p/claude-cookbooks-index/agents-layers_hu_f3490ccceed35968.webp 800w, https://guige.ai/p/claude-cookbooks-index/agents-layers_hu_f705429a21435e12.webp 1600w, https://guige.ai/p/claude-cookbooks-index/agents-layers_hu_5220f69a14a1d93b.webp 2400w, https://guige.ai/p/claude-cookbooks-index/agents-layers.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;h3 id="61-模式层-patternsagents--先把套路搞清楚"&gt;6.1 模式层 &lt;code&gt;patterns/agents/&lt;/code&gt; — 先把套路搞清楚
&lt;/h3&gt;&lt;p&gt;这个目录对应的是 Anthropic 那篇著名博客 &lt;a class="link" href="https://www.anthropic.com/research/building-effective-agents" target="_blank" rel="noopener"
 &gt;&lt;em&gt;Building Effective Agents&lt;/em&gt;&lt;/a&gt; 里提的几种基础模式的&lt;strong&gt;可运行版本&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;basic_workflows.ipynb&lt;/code&gt;&lt;/strong&gt; — Prompt chaining / Routing / Parallelization 三种基础工作流模式。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;evaluator_optimizer.ipynb&lt;/code&gt;&lt;/strong&gt; — 评估者-优化者模式。一个 Agent 输出、另一个 Agent 打分并反馈，循环到满足条件为止。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;orchestrator_workers.ipynb&lt;/code&gt;&lt;/strong&gt; — 编排者-工人模式。主 Agent 拆任务，子 Agent 并发执行。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这三篇是&amp;quot;概念打底&amp;quot;。哪怕你最后不用 Agent SDK，看一遍这三个模式，再去评估任何第三方 Agent 框架的设计，心里都会有一把尺子。&lt;/p&gt;
&lt;h3 id="62-sdk-层-claude_agent_sdk--官方的-agent-教程"&gt;6.2 SDK 层 &lt;code&gt;claude_agent_sdk/&lt;/code&gt; — 官方的 Agent 教程
&lt;/h3&gt;&lt;p&gt;这是 Anthropic 最近重点推进的一块，基于 &lt;a class="link" href="https://github.com/anthropics/claude-agent-sdk-python" target="_blank" rel="noopener"
 &gt;claude-agent-sdk-python&lt;/a&gt;，六篇 notebook 是一条渐进式的教学路径：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;#&lt;/th&gt;
 &lt;th&gt;文件&lt;/th&gt;
 &lt;th&gt;学到什么&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;00&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;00_The_one_liner_research_agent.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;一行 &lt;code&gt;query()&lt;/code&gt; 起一个研究 Agent，理解异步迭代和基础概念&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;01&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;01_The_chief_of_staff_agent.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;CEO 助理 Agent——Memory、Output Styles、Plan Mode、Slash Commands、Hooks、子 Agent 编排全家桶&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;02&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;02_The_observability_agent.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;可观测性 Agent，需要 GitHub Token + Docker&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;03&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;03_The_site_reliability_agent.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;SRE Agent，处理告警和事故&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;04&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;04_migrating_from_openai_agents_sdk.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;从 OpenAI Agents SDK 迁移过来的映射指南——&lt;strong&gt;有存量代码的团队重点看这篇&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;05&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;05_Building_a_session_browser.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Session 浏览器 demo，可视化 Agent 会话&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这一条路径的隐含逻辑是：&amp;ldquo;你如果已经在用 Claude Code，那 Claude Code 背后的 Agent 内核就是 Agent SDK，你可以用同样的工具链做任何 Agent 应用，而不只是软件开发&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;01 这篇 Chief of Staff 我单独推荐——它是整个教程里&lt;strong&gt;最接近&amp;quot;生产级 Agent 到底长什么样&amp;quot;的那篇&lt;/strong&gt;。里面把持久化记忆（CLAUDE.md 机制）、输出风格切换（给 CEO 发邮件 vs 给团队发内部备忘是两种语气）、Plan Mode（复杂任务先产出方案再执行）、Slash Commands（把高频操作做成可复用快捷方式）、Hooks（每次工具调用都自动写审计日志）、Subagent 编排（法务/财务/战略三个专项 Agent 分工协作）这一整套都串起来了。看完之后你会意识到，&lt;strong&gt;&amp;ldquo;Agent&amp;rdquo; 这个概念背后其实是一组工程约束的组合&lt;/strong&gt;，单独拎出任何一个都不够，组合起来才是真正可以上生产的东西。&lt;/p&gt;
&lt;h3 id="63-托管层-managed_agents--claude-managed-agents-cma"&gt;6.3 托管层 &lt;code&gt;managed_agents/&lt;/code&gt; — Claude Managed Agents (CMA)
&lt;/h3&gt;&lt;p&gt;Managed Agents 是 Anthropic 相对较新的一个产品形态：&lt;strong&gt;服务端托管的 Agent 运行时&lt;/strong&gt;，带沙箱、会话持久化、文件状态保留，你只要定义 Agent 和环境，剩下的交给托管服务。&lt;/p&gt;
&lt;p&gt;这个目录分成两组：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;三个应用型示例&lt;/strong&gt;（适合先看，建立直觉）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data_analyst_agent.ipynb&lt;/code&gt; — CSV 进、HTML 分析报告出的数据分析 Agent。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;slack_data_bot.ipynb&lt;/code&gt; — 把上面那个分析 Agent 包成 Slack Bot。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sre_incident_responder.ipynb&lt;/code&gt; — 告警→调查→PR→人审→合并的完整 SRE 流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;六个教程型 notebook&lt;/strong&gt;（以 &lt;code&gt;CMA_&lt;/code&gt; 开头，建议按顺序读）：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Notebook&lt;/th&gt;
 &lt;th&gt;主题&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_iterate_fix_failing_tests.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;入门。引入 agent / environment / session、文件挂载、流式事件循环&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_orchestrate_issue_to_pr.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;issue → 修复 → PR → CI → 人审 → 合并的完整编排&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_explore_unfamiliar_codebase.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;在陌生代码库里探索，含&amp;quot;过期文档陷阱&amp;quot;演示&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_gate_human_in_the_loop.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;人类审批关卡，用自定义工具的 &lt;code&gt;decide()&lt;/code&gt; / &lt;code&gt;escalate()&lt;/code&gt; 模式&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_prompt_versioning_and_rollback.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;提示词版本化与回滚&lt;/strong&gt;——生产 Agent 的脆弱环节，中文圈讲得很少&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CMA_operate_in_production.ipynb&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;生产部署：MCP 工具集、vault 存 per-user 凭证、webhook idle 模式&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这一组是目前 cookbook 里&lt;strong&gt;最贴近&amp;quot;企业级 Agent 运营&amp;quot;的内容&lt;/strong&gt;。如果你在做 B 端 Agent 产品，哪怕不用 Managed Agents，也强烈建议看一遍 prompt versioning 和 operate in production 这两篇——它们把&amp;quot;Agent 上线之后你还要做哪些事&amp;quot;讲得最清楚。&lt;/p&gt;
&lt;p&gt;稍微展开一下 &lt;code&gt;CMA_prompt_versioning_and_rollback.ipynb&lt;/code&gt; 为什么特别值得看：传统软件工程里代码改动有 Git、有 CI、有灰度发布，但 &lt;strong&gt;prompt 的改动目前很多团队还靠 Excel 或 Notion 维护&lt;/strong&gt;。Prompt 不是代码但比代码更脆弱——同一个字改一下，模型行为可能完全变样。这篇 notebook 给出的答案是把 prompt 也纳入版本化体系：服务端存版本、每个 session 可以绑定到特定版本、用标注过的测试集做版本对比、发现回归可以按 session ID 批量回滚。这套工作流不依赖 Managed Agents 本身也能借鉴——核心思路是&lt;strong&gt;把 prompt 当成一等公民的配置来治理&lt;/strong&gt;。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="七skills-技能包"&gt;七、Skills 技能包
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;skills/&lt;/code&gt; 目录对应的是 Claude 的 Skills 功能——&lt;strong&gt;打包好的&amp;quot;专业能力&amp;quot;&lt;/strong&gt;，Claude 在需要的时候自动发现并加载。&lt;/p&gt;
&lt;p&gt;核心理念是 &lt;strong&gt;Progressive Disclosure&lt;/strong&gt;：技能定义不在每轮对话里都加载，只在模型判断&amp;quot;这个任务需要 Excel 能力&amp;quot;时才把 Excel skill 拉进来，从而节省 token。&lt;/p&gt;
&lt;p&gt;这个目录下有三篇 notebook：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;notebooks/01_skills_introduction.ipynb&lt;/code&gt; — 基础：加 beta header、创建第一个 Excel/PPT/PDF。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notebooks/02_skills_financial_applications.ipynb&lt;/code&gt; — 金融场景：投资组合报告、多格式工作流（CSV → Excel → PPT → PDF）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notebooks/03_skills_custom_development.ipynb&lt;/code&gt; — 自定义 skill 开发：金融比率计算器、品牌指南 skill。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Skills 这个功能对应的是你在 Claude.ai 里看到的&amp;quot;Claude 帮你直接生成 Excel/PPT&amp;quot;那个能力。如果你想做类似的&amp;quot;让 Claude 产出真正可用的办公文档&amp;quot;的产品，这是唯一的官方路径。&lt;/p&gt;
&lt;p&gt;Progressive Disclosure 这个机制值得单独理解一下。传统做法里，你要给模型扩展能力，通常是把所有工具定义、system prompt、知识都塞进每一轮对话——结果是&lt;strong&gt;你挂的能力越多，token 成本越高，而且大部分 token 根本用不上&lt;/strong&gt;。Skills 的思路是把能力拆成有元数据的&amp;quot;技能包&amp;quot;，只在模型判断当前任务需要时才动态加载对应的代码和指令，本质上是一种 &lt;strong&gt;lazy loading + capability routing&lt;/strong&gt;。这个设计思路在做大型 Agent 平台时非常关键，哪怕你不用 Skills 产品本身，理解它的机制对你设计自己的能力注入系统也有参考价值。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="八第三方集成一览"&gt;八、第三方集成一览
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;third_party/&lt;/code&gt; 下有八家集成，都是最小可跑的对接示例：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;目录&lt;/th&gt;
 &lt;th&gt;角色&lt;/th&gt;
 &lt;th&gt;典型场景&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Pinecone/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;向量数据库&lt;/td&gt;
 &lt;td&gt;RAG 召回&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;VoyageAI/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Embedding 模型&lt;/td&gt;
 &lt;td&gt;RAG、语义搜索&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;MongoDB/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文档数据库 + 向量搜索&lt;/td&gt;
 &lt;td&gt;一体化 RAG 后端&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;LlamaIndex/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;RAG 框架&lt;/td&gt;
 &lt;td&gt;和 Claude 一起用的完整 pipeline&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Wikipedia/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;知识源&lt;/td&gt;
 &lt;td&gt;实时查询百科做事实补充&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;WolframAlpha/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;计算/数学&lt;/td&gt;
 &lt;td&gt;精确数值计算、公式求解&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;Deepgram/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;语音转文字&lt;/td&gt;
 &lt;td&gt;音频输入场景&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ElevenLabs/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;文字转语音&lt;/td&gt;
 &lt;td&gt;语音输出场景&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这块适合按需查阅——你项目里用到哪家就去看哪篇，不需要通读。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="九评估与微调"&gt;九、评估与微调
&lt;/h2&gt;&lt;p&gt;这两块相对偏&amp;quot;工程化&amp;quot;，但一旦你开始做严肃点的 AI 产品就绕不过去：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/building_evals.ipynb&lt;/code&gt;&lt;/strong&gt; — 自动化评估。用 Claude 当 judge 给自己的 prompt 打分。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/generate_test_cases.ipynb&lt;/code&gt;&lt;/strong&gt; — 用 Claude 生成测试用例来做对抗性评估。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;tool_evaluation/tool_evaluation.ipynb&lt;/code&gt;&lt;/strong&gt; — 工具级评估。Agent 系统里每个 tool 调用是否正确、参数是否合理的专项评估。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/metaprompt.ipynb&lt;/code&gt;&lt;/strong&gt; — Metaprompt：让 Claude 帮你写/优化 prompt。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;misc/building_moderation_filter.ipynb&lt;/code&gt;&lt;/strong&gt; — 用 Claude 搭内容审核过滤器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;finetuning/finetuning_on_bedrock.ipynb&lt;/code&gt;&lt;/strong&gt; — 在 AWS Bedrock 上微调 Claude，附 &lt;code&gt;datasets/&lt;/code&gt; 示例数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;微调这块目前官方只出了 Bedrock 路径的教程，直接从 Anthropic API 做 fine-tuning 目前还不是公开能力。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="十仓库工程实践这本身就是一份怎么管理-notebook-项目的样板"&gt;十、仓库工程实践：这本身就是一份&amp;quot;怎么管理 Notebook 项目&amp;quot;的样板
&lt;/h2&gt;&lt;p&gt;这一节是给另一类读者的——&lt;strong&gt;那些在自己团队里也要维护大量 notebook / 示例代码的工程师。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;claude-cookbooks 这个 repo 本身的组织方式，其实是一份挺成熟的范本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;用 &lt;code&gt;uv&lt;/code&gt; 做包管理&lt;/strong&gt;。有 &lt;code&gt;uv.lock&lt;/code&gt; 和 &lt;code&gt;uv.toml&lt;/code&gt;，&lt;code&gt;uv sync --all-extras&lt;/code&gt; 一键把所有依赖装齐。相比 &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;，速度快一个数量级，也更容易复现。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ruff&lt;/code&gt; 做 lint 和 format&lt;/strong&gt;。行长 100、双引号。Notebook 里放宽了 E402（中间 import）、F811（重定义）、N803/N806（变量命名），这几条放宽对 notebook 写作很实用——Jupyter 里本来就会有大量这种&amp;quot;不优雅但可读&amp;quot;的写法。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;pre-commit&lt;/code&gt; + &lt;code&gt;Makefile&lt;/code&gt; + &lt;code&gt;tox&lt;/code&gt;&lt;/strong&gt;。&lt;code&gt;make check&lt;/code&gt; / &lt;code&gt;make fix&lt;/code&gt; / &lt;code&gt;make test&lt;/code&gt; 三条命令覆盖日常。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;registry.yaml&lt;/code&gt; + &lt;code&gt;authors.yaml&lt;/code&gt;&lt;/strong&gt;。每篇 notebook 在 &lt;code&gt;registry.yaml&lt;/code&gt; 里登记标题、路径、作者、分类，方便后续站点化检索。这是一个很聪明的做法——&lt;strong&gt;内容和元数据分离&lt;/strong&gt;，让 notebook 集合可以被当成一个可查询的数据库来对待。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.claude/&lt;/code&gt; 目录 + 自定义 slash commands&lt;/strong&gt;。&lt;code&gt;/notebook-review&lt;/code&gt;（检查 notebook 质量）、&lt;code&gt;/model-check&lt;/code&gt;（校验模型 ID 是不是用了非推荐的日期版本）、&lt;code&gt;/link-review&lt;/code&gt;（检查死链）。这几个 slash command 既给人用，也给 CI 用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;lychee.toml&lt;/code&gt;&lt;/strong&gt;。专门的死链检查配置，比自己手写正则靠谱。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; 里写死模型 ID 规范&lt;/strong&gt;。明确规定&lt;strong&gt;永远用非日期别名&lt;/strong&gt;（如 &lt;code&gt;claude-sonnet-4-6&lt;/code&gt;）而不是 &lt;code&gt;claude-sonnet-4-6-20250514&lt;/code&gt;。这种小约定写在 CLAUDE.md 里，让 Claude Code 或其他 Agent 在写示例代码时不会跑偏。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/engineering.webp" srcset="https://guige.ai/p/claude-cookbooks-index/engineering_hu_20e96aab13bf3de9.webp 800w, https://guige.ai/p/claude-cookbooks-index/engineering_hu_1827c5387705f6a2.webp 1600w, https://guige.ai/p/claude-cookbooks-index/engineering_hu_afecf6a7cba2650a.webp 2400w, https://guige.ai/p/claude-cookbooks-index/engineering.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;p&gt;这些细节如果你自己维护过一个 notebook 集合，应该能立刻 get 到它们的价值。我之前维护过几套内部示例代码，最大的痛点就是&lt;strong&gt;时间一长没人管，示例里的 API 调用方式和模型名全都过时了&lt;/strong&gt;。claude-cookbooks 用 CI + slash command + 自动化校验把这件事从&amp;quot;靠人自觉&amp;quot;变成&amp;quot;靠流程保证&amp;quot;，是很值得抄的做法。&lt;/p&gt;
&lt;p&gt;另一个细节是 &lt;code&gt;registry.yaml&lt;/code&gt; 里每篇 notebook 都登记了分类标签和作者。这看起来只是一个 meta 索引文件，但它背后其实是一个&lt;strong&gt;内容运营思路&lt;/strong&gt;：让示例集合既能被人读，也能被机器查询。未来如果要做一个&amp;quot;按类目筛选的交互式站点&amp;quot;或者&amp;quot;根据用户目标推荐 notebook 的 Agent&amp;quot;，&lt;code&gt;registry.yaml&lt;/code&gt; 就是现成的数据源。把内容和元数据分开，永远比把元数据硬编码进 README 要更灵活。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="十一我接下来会按什么顺序往里钻"&gt;十一、我接下来会按什么顺序往里钻
&lt;/h2&gt;&lt;p&gt;最后给自己留一份阅读路线图，也供参考：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果你是第一次用 Claude API：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;misc/prompt_caching.ipynb&lt;/code&gt; — 先把成本大头的底子打好&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_use/calculator_tool.ipynb&lt;/code&gt; + &lt;code&gt;tool_choice.ipynb&lt;/code&gt; — Tool use 基础&lt;/li&gt;
&lt;li&gt;&lt;code&gt;capabilities/retrieval_augmented_generation/&lt;/code&gt; — 如果你要做 RAG&lt;/li&gt;
&lt;li&gt;&lt;code&gt;multimodal/getting_started_with_vision.ipynb&lt;/code&gt; — 如果涉及图像&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;如果你已经在用 Claude Code，想扩展到自定义 Agent：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;patterns/agents/&lt;/code&gt; 三篇 — 先把概念过一遍&lt;/li&gt;
&lt;li&gt;&lt;code&gt;claude_agent_sdk/00&lt;/code&gt; → &lt;code&gt;01&lt;/code&gt; → &lt;code&gt;04&lt;/code&gt; — 沿着教程走&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_use/memory_cookbook.ipynb&lt;/code&gt; + &lt;code&gt;automatic-context-compaction.ipynb&lt;/code&gt; — 长会话 Agent 必备&lt;/li&gt;
&lt;li&gt;&lt;code&gt;managed_agents/CMA_operate_in_production.ipynb&lt;/code&gt; — 想上线再看这篇&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;如果你在做 B 端 Agent 产品：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;managed_agents/&lt;/code&gt; 全套六篇 CMA 教程&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tool_evaluation/tool_evaluation.ipynb&lt;/code&gt; + &lt;code&gt;misc/building_evals.ipynb&lt;/code&gt; — 评估不能缺&lt;/li&gt;
&lt;li&gt;&lt;code&gt;observability/usage_cost_api.ipynb&lt;/code&gt; — 成本监控&lt;/li&gt;
&lt;li&gt;&lt;code&gt;managed_agents/CMA_prompt_versioning_and_rollback.ipynb&lt;/code&gt; — 运营侧&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/claude-cookbooks-index/roadmap.webp" srcset="https://guige.ai/p/claude-cookbooks-index/roadmap_hu_1d416a2740308291.webp 800w, https://guige.ai/p/claude-cookbooks-index/roadmap_hu_4d9e6d16e7eafd7.webp 1600w, https://guige.ai/p/claude-cookbooks-index/roadmap_hu_b6dc883e03637fbb.webp 2400w, https://guige.ai/p/claude-cookbooks-index/roadmap.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="结尾这只是起点"&gt;结尾：这只是起点
&lt;/h2&gt;&lt;p&gt;写到这里回头看，这份 cookbook 里随便挑一个模块展开，都够单独写一篇长文：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Agent SDK 的六篇 notebook 值得一篇一篇拆，特别是 Chief of Staff 那篇里塞了一整套生产级 Agent 该有的能力&lt;/li&gt;
&lt;li&gt;Managed Agents 这个新产品形态本身就值得一篇&amp;quot;它和 Agent SDK 到底什么区别&amp;quot;的分析&lt;/li&gt;
&lt;li&gt;Tool Use 里的 PTC、Tool Search with Embeddings、Memory Tool 每一个单拿出来都能写一篇技术拆解&lt;/li&gt;
&lt;li&gt;Skills 的 Progressive Disclosure 机制和它对 token 经济的影响，是个完整的专题&lt;/li&gt;
&lt;li&gt;&lt;code&gt;patterns/agents/&lt;/code&gt; 对应的那三种设计模式，配合实际项目经验聊一聊会很有意思&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些我都打算一篇一篇写。这份导航文章就当是书签——&lt;strong&gt;以后每完成一篇深度拆解，就回来把对应的链接加上&lt;/strong&gt;，让这里慢慢长成一张真正可用的学习路线图。&lt;/p&gt;
&lt;p&gt;如果你也在看这份 cookbook，欢迎告诉我你最关心哪个模块，我排序的时候可以参考一下。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/anthropics/claude-cookbooks" target="_blank" rel="noopener"
 &gt;anthropics/claude-cookbooks&lt;/a&gt; — 本文索引的主体&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/anthropics/claude-agent-sdk-python" target="_blank" rel="noopener"
 &gt;anthropics/claude-agent-sdk-python&lt;/a&gt; — Agent SDK 本体&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/anthropics/courses" target="_blank" rel="noopener"
 &gt;anthropics/courses&lt;/a&gt; — 如果你还在更早的阶段，先看这个&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.anthropic.com/research/building-effective-agents" target="_blank" rel="noopener"
 &gt;Building Effective Agents&lt;/a&gt; — Anthropic 官方 Agent 设计方法论&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills" target="_blank" rel="noopener"
 &gt;Equipping agents for the real world with Skills&lt;/a&gt; — Skills 的设计理念&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Claude Managed Agents：从聊天机器人到自主 Agent 的一步之遥</title><link>https://guige.ai/p/managed-agents-intro/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://guige.ai/p/managed-agents-intro/</guid><description>&lt;img src="https://guige.ai/" alt="Featured image of post Claude Managed Agents：从聊天机器人到自主 Agent 的一步之遥" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;150 行代码就能造一个&amp;quot;数字分身&amp;quot;，但它只会聊天，不会做事。&lt;/p&gt;
&lt;p&gt;如果它能帮你写代码、搜资料、跑脚本呢？&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;两个月前，我给博客做了一个 AI 数字分身——&lt;a class="link" href="https://github.com/luoli523/guige_avatar" target="_blank" rel="noopener"
 &gt;guige_avatar&lt;/a&gt;。访客点击右下角的聊天按钮，就能和&amp;quot;鬼哥&amp;quot;的 AI 分身聊技术、聊 AI、聊生活。&lt;/p&gt;
&lt;p&gt;整个后端只有 &lt;strong&gt;150 行 JavaScript&lt;/strong&gt;，部署在 Vercel 上，用的是 OpenAI 的 GPT-4.1-nano。它很轻量，也确实能用——但说实话，它&lt;strong&gt;只是一个穿了马甲的 Chat Completion API&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;2026 年 4 月，Anthropic 推出了 &lt;a class="link" href="https://platform.claude.com/docs/en/managed-agents/overview" target="_blank" rel="noopener"
 &gt;Claude Managed Agents&lt;/a&gt;——一个托管式的 Agent 运行时平台。看完文档后我意识到：&lt;strong&gt;如果用 Managed Agents 重构鬼哥分身，它能从一个只会聊天的机器人，进化成一个真正能做事的自主 Agent。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本文就以这个真实案例为主线，带你理解 Managed Agents 到底是什么、能做什么、以及什么时候该用它。&lt;/p&gt;
&lt;p&gt;&lt;img alt="封面" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/cover.webp" srcset="https://guige.ai/p/managed-agents-intro/cover_hu_620005b34563ee68.webp 800w, https://guige.ai/p/managed-agents-intro/cover_hu_bfb5e493a5abda79.webp 1600w, https://guige.ai/p/managed-agents-intro/cover_hu_4610a2e67a5696ef.webp 2400w, https://guige.ai/p/managed-agents-intro/cover.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一手搓版guige_avatar-架构剖析"&gt;一、手搓版：guige_avatar 架构剖析
&lt;/h2&gt;&lt;p&gt;先看看现在的数字分身长什么样。注意截图右下角那个小对话气泡——那就是访客与鬼哥 AI 分身聊天的入口。&lt;/p&gt;
&lt;p&gt;&lt;img alt="鬼哥博客首页，右下角的聊天气泡就是数字分身的入口" class="gallery-image" data-flex-basis="456px" data-flex-grow="190" height="1504" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/guige-page.webp" srcset="https://guige.ai/p/managed-agents-intro/guige-page_hu_cceadf3dd8d252db.webp 800w, https://guige.ai/p/managed-agents-intro/guige-page_hu_794cc983d27f907c.webp 1600w, https://guige.ai/p/managed-agents-intro/guige-page_hu_f561722c567c0cf3.webp 2400w, https://guige.ai/p/managed-agents-intro/guige-page.webp 2860w" width="2860"&gt;&lt;/p&gt;
&lt;h3 id="11-整体架构"&gt;1.1 整体架构
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;访客浏览器 Vercel Serverless
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;┌─────────────┐ POST ┌──────────────────┐ ┌─────────┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 博客首页 │ ─────────→ │ api/chat.js │ ───→ │ OpenAI │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ 聊天面板(JS) │ ←───────── │ (~150 行) │ ←─── │ API │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└─────────────┘ JSON │ │ └─────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ ↓ fire-and-forget│
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; │ Telegram 通知 │
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └──────────────────┘
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↑
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; data/persona.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; (人设 YAML ~200行)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="12-核心代码就这么简单"&gt;1.2 核心代码：就这么简单
&lt;/h3&gt;&lt;p&gt;后端的核心逻辑可以浓缩成这几步：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 1. 加载人设 YAML → 构建 system prompt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;persona&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;yaml&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;data/persona.yaml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;systemPrompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;buildSystemPrompt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;persona&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 2. 拼接历史（最多 10 轮）+ 当前消息
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;system&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;systemPrompt&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;history&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;slice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;userMessage&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 3. 一次 API 调用，返回结果
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kr"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;openai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;gpt-4.1-nano&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;messages&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;没有 agent loop，没有工具调用，没有自主决策。&lt;strong&gt;每次请求就是一次单轮 LLM 推理。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="13-人设工程它的真正价值"&gt;1.3 人设工程：它的真正价值
&lt;/h3&gt;&lt;p&gt;guige_avatar 最精巧的部分不是代码，而是 &lt;code&gt;persona.yaml&lt;/code&gt;——一个约 200 行的人设定义文件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;personality&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;traits&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;技术极客&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;偶尔幽默&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;喜欢深度思考&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;speaking_style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;口语化但有技术深度&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;knowledge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;expertise&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;大数据&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;AI/LLM&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;分布式系统&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;current_projects&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Claude Code 源码分析&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;博客写作&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;boundaries&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;forbidden_topics&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;政治敏感&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;个人隐私&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;fallback&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;这个话题我不太方便聊，换个有趣的话题吧？&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这种&amp;quot;人设工程&amp;quot;确实让对话体验很自然。但问题是——&lt;strong&gt;人设再好，它也只能聊天，不能做事。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="手搓版架构" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/handcraft-arch.webp" srcset="https://guige.ai/p/managed-agents-intro/handcraft-arch_hu_22ab63d93d1de2c2.webp 800w, https://guige.ai/p/managed-agents-intro/handcraft-arch_hu_663f8fdd5e8a695e.webp 1600w, https://guige.ai/p/managed-agents-intro/handcraft-arch_hu_3dd5c9597b6ba3fe.webp 2400w, https://guige.ai/p/managed-agents-intro/handcraft-arch.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;h3 id="14-手搓版的天花板"&gt;1.4 手搓版的天花板
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;能力&lt;/th&gt;
 &lt;th&gt;状态&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;闲聊&lt;/td&gt;
 &lt;td&gt;✅ 流畅自然&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;回答技术问题&lt;/td&gt;
 &lt;td&gt;✅ 基于人设知识&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;搜索最新信息&lt;/td&gt;
 &lt;td&gt;❌ 无网络访问&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;查看博客文章&lt;/td&gt;
 &lt;td&gt;❌ 无文件读取&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;帮访客写代码&lt;/td&gt;
 &lt;td&gt;❌ 无代码执行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;记住上次对话&lt;/td&gt;
 &lt;td&gt;❌ 刷新即丢失&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;自主完成任务&lt;/td&gt;
 &lt;td&gt;❌ 无 agent loop&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这就是一个典型的&lt;strong&gt;聊天机器人&lt;/strong&gt;——能对话，但不能行动。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="二managed-agents它到底是什么"&gt;二、Managed Agents：它到底是什么？
&lt;/h2&gt;&lt;h3 id="21-一句话定义"&gt;2.1 一句话定义
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;Managed Agents = Anthropic 托管的 Agent 运行时。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你不需要自己搭 agent loop、沙箱、工具执行层。Anthropic 提供一个完整的云端容器环境，Claude 在里面自主运行 bash、读写文件、搜索网页、执行代码。&lt;/p&gt;
&lt;p&gt;如果 Messages API 是&amp;quot;你调用模型，模型返回文本&amp;quot;，那 Managed Agents 就是&amp;quot;你定义 Agent，Agent 自主完成任务&amp;quot;。&lt;/p&gt;
&lt;h3 id="22-与-messages-api-的定位差异"&gt;2.2 与 Messages API 的定位差异
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;Messages API&lt;/th&gt;
 &lt;th&gt;Managed Agents&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;本质&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;直接模型调用&lt;/td&gt;
 &lt;td&gt;预构建的 Agent 运行时&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;适合&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;自定义 agent loop、精细控制&lt;/td&gt;
 &lt;td&gt;长时间异步任务、最小化基础设施&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;工具执行&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;你的代码负责执行&lt;/td&gt;
 &lt;td&gt;Anthropic 云端容器执行&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;类比&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;买 CPU 自己组电脑&lt;/td&gt;
 &lt;td&gt;买整机开箱即用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="23-核心概念四件套"&gt;2.3 核心概念四件套
&lt;/h3&gt;&lt;p&gt;Managed Agents 的整个模型围绕四个概念：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;概念&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;类比&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Agent&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;模型 + system prompt + 工具 + MCP servers&lt;/td&gt;
 &lt;td&gt;一个人的&amp;quot;能力定义&amp;quot;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;云端容器模板：预装包、网络规则&lt;/td&gt;
 &lt;td&gt;这个人的&amp;quot;工作环境&amp;quot;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;运行中的 Agent 实例，绑定 Agent + Environment&lt;/td&gt;
 &lt;td&gt;一次具体的&amp;quot;工作会话&amp;quot;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Events&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;应用与 Agent 之间的消息流（SSE）&lt;/td&gt;
 &lt;td&gt;你和这个人之间的&amp;quot;对话&amp;quot;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;工作流程：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;创建 Agent（一次性） → 创建 Environment（一次性）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↘ ↙
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 创建 Session（每次任务）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 发送 Event（用户消息）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 流式接收 Agent 响应（SSE）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 可中途引导或中断
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="三case-study数字分身-v1手搓vs-v2managed-agents"&gt;三、Case Study：数字分身 v1（手搓）vs v2（Managed Agents）
&lt;/h2&gt;&lt;p&gt;这是本文最核心的部分。我们来看，如果用 Managed Agents 重构鬼哥分身，会发生什么变化。&lt;/p&gt;
&lt;p&gt;&lt;img alt="v1 vs v2 对比" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/v1-vs-v2.webp" srcset="https://guige.ai/p/managed-agents-intro/v1-vs-v2_hu_64057650187a708d.webp 800w, https://guige.ai/p/managed-agents-intro/v1-vs-v2_hu_d5d73ff2fe15b9be.webp 1600w, https://guige.ai/p/managed-agents-intro/v1-vs-v2_hu_746c7c151d2c65db.webp 2400w, https://guige.ai/p/managed-agents-intro/v1-vs-v2.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;h3 id="31-对话--能动手工具能力"&gt;3.1 对话 → 能动手：工具能力
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;v1（手搓版）&lt;/strong&gt;：只能基于 system prompt 中的静态知识回答。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;访客：你最近写了什么文章？
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;鬼哥分身：我最近在写 Agent Skills 和 Gemma 4 的分析文章...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;（这是 persona.yaml 里预写的，不是实时查的）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;v2（Managed Agents 版）&lt;/strong&gt;：有完整的工具链。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;访客：你最近写了什么文章？
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;鬼哥分身：[使用 bash] ls content/post/ | tail -5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; [使用 read] 读取最近 5 篇文章的 frontmatter
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 我最近写了这些文章：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 1. Agent Skills 深度解析（4月7日）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 2. Gemma 4 深度分析（4月5日）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 3. Karpathy 的 LLM Wiki（4月2日）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ...每篇都有链接，要看哪篇？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Managed Agents 的内置工具：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;工具&lt;/th&gt;
 &lt;th&gt;能力&lt;/th&gt;
 &lt;th&gt;数字分身的用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Bash&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;执行 shell 命令&lt;/td&gt;
 &lt;td&gt;列出文章、统计数据&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Read / Write / Edit&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;文件读写&lt;/td&gt;
 &lt;td&gt;查看博客内容、生成草稿&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Glob / Grep&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;文件搜索&lt;/td&gt;
 &lt;td&gt;搜索特定话题的文章&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Web Search / Fetch&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;网络搜索&lt;/td&gt;
 &lt;td&gt;查最新技术动态&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="32-内存级历史--持久化会话"&gt;3.2 内存级历史 → 持久化会话
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;v1&lt;/strong&gt;：对话历史存在前端 JavaScript 内存中，刷新页面就没了。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-javascript" data-lang="javascript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// v1：前端维护历史，刷新即丢失
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt; &lt;span class="c1"&gt;// 🔥 页面刷新 = 失忆
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;v2&lt;/strong&gt;：Session 天然持久化，Event 历史服务端保存。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# v2：Session 持久化，随时可恢复&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sessions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;avatar_agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;environment_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;env&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;访客 A 的对话&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 下次访问，用同一个 session_id 继续&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 完整的对话历史都在服务端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;更关键的是，Managed Agents 有 &lt;strong&gt;Memory（研究预览阶段）&lt;/strong&gt;——跨会话的长期记忆。这意味着鬼哥分身可以记住：&amp;ldquo;上次这个访客问过 Spark 调优，他应该是做大数据的。&amp;rdquo;&lt;/p&gt;
&lt;h3 id="33-单轮推理--多步-agent-loop"&gt;3.3 单轮推理 → 多步 Agent Loop
&lt;/h3&gt;&lt;p&gt;这是最本质的差异。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;v1&lt;/strong&gt;：一问一答，没有中间推理步骤。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户消息 → LLM 生成回复 → 返回
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;v2&lt;/strong&gt;：Agent 可以自主规划多步执行。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;用户消息 → Claude 思考 → 调用工具 A → 分析结果 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; → 调用工具 B → 综合判断 → 生成回复 → 返回
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;比如访客问&amp;quot;帮我分析一下你这个博客的技术栈&amp;quot;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;v1：只能背 persona.yaml 里预写的答案&lt;/li&gt;
&lt;li&gt;v2：&lt;code&gt;grep -r &amp;quot;hugo&amp;quot; config/&lt;/code&gt; → &lt;code&gt;cat themes/hugo-theme-stack/...&lt;/code&gt; → &lt;code&gt;ls layouts/&lt;/code&gt; → 基于实际代码给出准确分析&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="34-无沙盒--云端容器"&gt;3.4 无沙盒 → 云端容器
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;v1&lt;/strong&gt;：代码在 Vercel Serverless Function 里跑，只有 150ms 的冷启动预算，不能装额外的包。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;v2&lt;/strong&gt;：完整的云端容器。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;span class="lnt"&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;environment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environments&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;guige-avatar-env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;networking&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;unrestricted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 可以预装任何包&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# Python, Node.js, Go, Hugo...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;容器意味着：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;可以预装 Hugo 来本地构建预览&lt;/li&gt;
&lt;li&gt;可以跑 Python 脚本分析数据&lt;/li&gt;
&lt;li&gt;可以 git clone 仓库来读取最新代码&lt;/li&gt;
&lt;li&gt;网络不受限，可以访问外部 API&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="35-单-agent--多-agent-编排"&gt;3.5 单 Agent → 多 Agent 编排
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;v1&lt;/strong&gt;：一个 function 处理所有事情。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;v2&lt;/strong&gt;：可以按职责拆分为多个专精 Agent。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 主 Agent：鬼哥分身（对话协调者）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;avatar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;鬼哥分身&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;你是鬼哥的数字分身...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;callable_agents&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;blog_agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;id&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;code_agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sub-Agent 1：博客助手（搜索和推荐文章）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;blog_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;博客助手&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-haiku-4-5&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# 用小模型节省成本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;你负责搜索和推荐鬼哥的博客文章...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Sub-Agent 2：代码助手（分析代码、写 demo）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;code_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;代码助手&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;你负责帮访客分析代码和写 demo...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;当访客问文章相关的问题时，主 Agent 委托给博客助手；问代码问题时，委托给代码助手。&lt;strong&gt;各司其职，成本可控。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="多 Agent 编排" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/multi-agent.webp" srcset="https://guige.ai/p/managed-agents-intro/multi-agent_hu_aa670aa6c4ed5388.webp 800w, https://guige.ai/p/managed-agents-intro/multi-agent_hu_43412c256babf6b2.webp 1600w, https://guige.ai/p/managed-agents-intro/multi-agent_hu_cf4b3beb83e4114b.webp 2400w, https://guige.ai/p/managed-agents-intro/multi-agent.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="四完整对比手搓-vs-托管"&gt;四、完整对比：手搓 vs 托管
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;维度&lt;/th&gt;
 &lt;th&gt;v1 手搓版&lt;/th&gt;
 &lt;th&gt;v2 Managed Agents&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;本质&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Chat Completion 包装器&lt;/td&gt;
 &lt;td&gt;自主 Agent 平台&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Agent Loop&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;无，单轮 request-response&lt;/td&gt;
 &lt;td&gt;有，多步推理 + 工具调用循环&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;工具能力&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;td&gt;Bash、文件操作、Web 搜索、MCP&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;代码执行&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;不可能&lt;/td&gt;
 &lt;td&gt;云端容器沙盒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;对话记忆&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;前端内存，刷新丢失&lt;/td&gt;
 &lt;td&gt;服务端持久化 Session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;长期记忆&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;无&lt;/td&gt;
 &lt;td&gt;Memory（研究预览）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;多 Agent&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;不可能&lt;/td&gt;
 &lt;td&gt;Coordinator + Sub-agents&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;后端代码&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;~150 行 JS&lt;/td&gt;
 &lt;td&gt;~50 行 Python（SDK 调用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;基础设施&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Vercel function（自己维护）&lt;/td&gt;
 &lt;td&gt;Anthropic 全托管&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;模型&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;GPT-4.1-nano（OpenAI）&lt;/td&gt;
 &lt;td&gt;Claude Sonnet/Haiku（Anthropic）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;成本&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;API 调用费 + Vercel 免费层&lt;/td&gt;
 &lt;td&gt;API 调用费 + Session 运行费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;开发周期&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;1 天&lt;/td&gt;
 &lt;td&gt;1 天（SDK 很简洁）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;适合场景&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;轻量级人设聊天&lt;/td&gt;
 &lt;td&gt;需要工具和自主性的场景&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="五sdk-实战5-分钟跑通-managed-agents"&gt;五、SDK 实战：5 分钟跑通 Managed Agents
&lt;/h2&gt;&lt;h3 id="51-安装"&gt;5.1 安装
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install anthropic
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;your-key&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="52-创建-agent--environment--session"&gt;5.2 创建 Agent + Environment + Session
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;anthropic&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Anthropic&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1. 创建 Agent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;鬼哥分身 v2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;system&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;你是鬼哥（luoli523）的数字分身。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;性格：技术极客，偶尔幽默，喜欢深度思考。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;擅长：大数据、AI/LLM、分布式系统、Claude Code。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;说话风格：口语化但有技术深度，喜欢用类比解释复杂概念。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;你可以使用工具来查看博客文章、搜索信息、执行代码。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;当访客问到你不确定的事情时，先搜索再回答，不要编造。&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 2. 创建 Environment&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;environment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environments&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;avatar-env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;networking&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;unrestricted&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3. 创建 Session&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sessions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;environment_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;environment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;访客对话&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Agent: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Environment: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;environment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Session: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="53-发消息--流式接收"&gt;5.3 发消息 + 流式接收
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sessions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;events&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 发送用户消息&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sessions&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;events&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;events&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;user.message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;content&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;帮我看看你博客最近写了什么文章&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# 流式处理响应&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;match&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent.message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;block&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;block&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent.tool_use&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;[🔧 使用工具: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;]&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;session.status_idle&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;✅ 完成&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;输出可能长这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;让我看看最近的文章...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[🔧 使用工具: bash]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[🔧 使用工具: read]
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;最近写了这几篇：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1. **Agent Skills 深度解析**（4月7日）— 拆解 Addy Osmani 的 19 个 AI Agent skill
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2. **Gemma 4 深度分析**（4月5日）— Google 开源模型的架构和应用
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;3. **Karpathy 的 LLM Wiki**（4月2日）— 从零理解 LLM 的百科全书
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;要看哪篇的详细内容？
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;✅ 完成
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="54-typescript-版本"&gt;5.4 TypeScript 版本
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;span class="lnt"&gt;25
&lt;/span&gt;&lt;span class="lnt"&gt;26
&lt;/span&gt;&lt;span class="lnt"&gt;27
&lt;/span&gt;&lt;span class="lnt"&gt;28
&lt;/span&gt;&lt;span class="lnt"&gt;29
&lt;/span&gt;&lt;span class="lnt"&gt;30
&lt;/span&gt;&lt;span class="lnt"&gt;31
&lt;/span&gt;&lt;span class="lnt"&gt;32
&lt;/span&gt;&lt;span class="lnt"&gt;33
&lt;/span&gt;&lt;span class="lnt"&gt;34
&lt;/span&gt;&lt;span class="lnt"&gt;35
&lt;/span&gt;&lt;span class="lnt"&gt;36
&lt;/span&gt;&lt;span class="lnt"&gt;37
&lt;/span&gt;&lt;span class="lnt"&gt;38
&lt;/span&gt;&lt;span class="lnt"&gt;39
&lt;/span&gt;&lt;span class="lnt"&gt;40
&lt;/span&gt;&lt;span class="lnt"&gt;41
&lt;/span&gt;&lt;span class="lnt"&gt;42
&lt;/span&gt;&lt;span class="lnt"&gt;43
&lt;/span&gt;&lt;span class="lnt"&gt;44
&lt;/span&gt;&lt;span class="lnt"&gt;45
&lt;/span&gt;&lt;span class="lnt"&gt;46
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Anthropic&lt;/span&gt; &lt;span class="kr"&gt;from&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;@anthropic-ai/sdk&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 创建 Agent
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;鬼哥分身 v2&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;system&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你是鬼哥的数字分身...&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="kr"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 创建 Environment
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;env&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;avatar-env&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="kr"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;networking&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="kr"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;unrestricted&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 创建 Session
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sessions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;agent&lt;/span&gt;: &lt;span class="kt"&gt;agent.id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;environment_id&lt;/span&gt;: &lt;span class="kt"&gt;env.id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 发消息 + 流式响应
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sessions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;beta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;sessions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kr"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;user.message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="kr"&gt;type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;text&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;你最近在研究什么？&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent.message&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;block&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;block&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent.tool_use&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="sb"&gt;n[🔧 &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sb"&gt;]`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;session.status_idle&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;\n\n✅ Done&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="六工具配置精细控制"&gt;六、工具配置：精细控制
&lt;/h2&gt;&lt;p&gt;默认的 &lt;code&gt;agent_toolset_20260401&lt;/code&gt; 启用全部工具。但你也可以按需开关：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 只开 bash 和文件操作，关掉网络&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;安全受限的分身&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;default_config&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;configs&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;bash&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;read&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;glob&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;grep&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;# web_fetch 和 web_search 保持关闭&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;还支持&lt;strong&gt;自定义工具&lt;/strong&gt;——你定义接口，Claude 决定何时调用，你的代码执行后把结果返回：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;beta&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;带自定义工具的分身&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;claude-sonnet-4-6&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;agent_toolset_20260401&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;get_blog_stats&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;获取博客的访问统计数据&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;input_schema&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;object&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;properties&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;period&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;string&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;统计周期：today, week, month&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;required&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;period&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="七手搓-vs-托管什么时候用哪个"&gt;七、手搓 vs 托管：什么时候用哪个？
&lt;/h2&gt;&lt;p&gt;这两种方案不是非此即彼的关系，而是&lt;strong&gt;不同复杂度和需求下的最优选择&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id="用手搓版messages-api--自建"&gt;用手搓版（Messages API / 自建）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;需求简单&lt;/strong&gt;：纯聊天，不需要工具调用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;成本敏感&lt;/strong&gt;：Vercel 免费层 + 便宜的小模型就够了&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;完全控制&lt;/strong&gt;：你需要自定义每一个细节&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;已有基础设施&lt;/strong&gt;：你的团队已经有成熟的 agent 框架&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;离线场景&lt;/strong&gt;：需要本地部署&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="用-managed-agents"&gt;用 Managed Agents
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;需要工具能力&lt;/strong&gt;：Agent 需要执行代码、搜索网页、读写文件&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长时间任务&lt;/strong&gt;：任务可能运行几分钟甚至几小时&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;零基础设施&lt;/strong&gt;：不想自己维护沙盒和 agent loop&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多 Agent 编排&lt;/strong&gt;：任务需要多个专精 Agent 协作&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;持久化会话&lt;/strong&gt;：需要跨请求保持上下文和文件状态&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="混合方案最佳实践"&gt;混合方案：最佳实践
&lt;/h3&gt;&lt;p&gt;实际上，鬼哥分身最可能的进化路径是&lt;strong&gt;混合方案&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;访客消息
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;前端（博客首页）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;轻量网关（Vercel / Cloudflare Worker）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── 简单闲聊 → 直接 Messages API（省钱）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── 复杂任务 → 转发到 Managed Agents Session
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;简单问答（&amp;ldquo;你是谁？&amp;ldquo;&amp;ldquo;你喜欢什么？&amp;quot;）走便宜的 Messages API；需要搜索、执行代码、多步推理的任务走 Managed Agents。&lt;strong&gt;按需升级，不浪费。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="实战架构" class="gallery-image" data-flex-basis="430px" data-flex-grow="179" height="1536" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://guige.ai/p/managed-agents-intro/practice-arch.webp" srcset="https://guige.ai/p/managed-agents-intro/practice-arch_hu_daefceaeebc9ccd4.webp 800w, https://guige.ai/p/managed-agents-intro/practice-arch_hu_f7dc5814f962696e.webp 1600w, https://guige.ai/p/managed-agents-intro/practice-arch_hu_65478ca9d4d45495.webp 2400w, https://guige.ai/p/managed-agents-intro/practice-arch.webp 2752w" width="2752"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="八beta-注意事项"&gt;八、Beta 注意事项
&lt;/h2&gt;&lt;p&gt;Managed Agents 目前是 &lt;strong&gt;Beta 状态&lt;/strong&gt;（&lt;code&gt;managed-agents-2026-04-01&lt;/code&gt;），几个关键信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;所有 API 账户默认可用&lt;/strong&gt;，无需单独申请&lt;/li&gt;
&lt;li&gt;SDK 自动设置 beta header，直接用就行&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Research Preview 功能&lt;/strong&gt;（Outcomes、Multi-agent、Memory）需要&lt;a class="link" href="https://claude.com/form/claude-managed-agents" target="_blank" rel="noopener"
 &gt;单独申请&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rate Limit：创建操作 60 req/min，读取操作 600 req/min&lt;/li&gt;
&lt;li&gt;支持 &lt;strong&gt;7 种 SDK&lt;/strong&gt;：Python、TypeScript、Go、Java、C#、Ruby、PHP&lt;/li&gt;
&lt;li&gt;还有 CLI 工具 &lt;code&gt;ant&lt;/code&gt;（Homebrew 安装）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;品牌规范提醒&lt;/strong&gt;：如果你在产品中集成 Managed Agents，可以用 &amp;ldquo;Claude Agent&amp;rdquo; 命名，但&lt;strong&gt;不能用&lt;/strong&gt; &amp;ldquo;Claude Code&amp;rdquo; 或 &amp;ldquo;Claude Cowork&amp;rdquo; 的名称和视觉元素。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;p&gt;从 guige_avatar 到 Managed Agents，本质上是从 &lt;strong&gt;&amp;ldquo;调用模型生成文本&amp;rdquo;&lt;/strong&gt; 到 &lt;strong&gt;&amp;ldquo;委托 Agent 完成任务&amp;rdquo;&lt;/strong&gt; 的范式转移。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;从&lt;/th&gt;
 &lt;th&gt;到&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Chat Completion&lt;/td&gt;
 &lt;td&gt;Agent Session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;单轮推理&lt;/td&gt;
 &lt;td&gt;多步 Agent Loop&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;无工具&lt;/td&gt;
 &lt;td&gt;Bash + 文件 + Web + 自定义&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;前端内存&lt;/td&gt;
 &lt;td&gt;服务端持久化&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;单一 Agent&lt;/td&gt;
 &lt;td&gt;多 Agent 编排&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;自建一切&lt;/td&gt;
 &lt;td&gt;托管运行时&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Managed Agents 本质上是 &amp;ldquo;Claude Code as a Service&amp;rdquo;&lt;/strong&gt;——把 Claude Code 的核心能力（bash、文件操作、web 搜索、agent loop）包装成云端 API，让开发者在自己的产品中嵌入 Claude 级别的 Agent 能力。&lt;/p&gt;
&lt;p&gt;对于鬼哥分身来说，150 行手搓版已经够用了。但当某天访客说&amp;quot;帮我写一个 Spark 调优的 demo&amp;quot;时，Managed Agents 版本会回答：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;好的，让我帮你写一个...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[🔧 使用工具: write] 创建 spark_tuning_demo.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[🔧 使用工具: bash] python spark_tuning_demo.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;脚本已经写好并测试通过了，关键的调优点是...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;从&amp;quot;我告诉你&amp;quot;到&amp;quot;我帮你做&amp;rdquo;——这就是一步之遥。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://platform.claude.com/docs/en/managed-agents/overview" target="_blank" rel="noopener"
 &gt;Claude Managed Agents 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://platform.claude.com/docs/en/managed-agents/quickstart" target="_blank" rel="noopener"
 &gt;Managed Agents Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://platform.claude.com/docs/en/managed-agents/tools" target="_blank" rel="noopener"
 &gt;Managed Agents 工具配置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://platform.claude.com/docs/en/managed-agents/multi-agent" target="_blank" rel="noopener"
 &gt;Multi-agent Sessions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/luoli523/guige_avatar" target="_blank" rel="noopener"
 &gt;guige_avatar 源码&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>