一个Agent上下文不够用?claude-code-from-scratch多Agent架构(Sub-Agent fork-return)深度解析
一个Agent上下文不够用claude-code-from-scratch多Agent架构Sub-Agent fork-return深度解析【免费下载链接】claude-code-from-scratchBuild your own Claude Code from scratch. Claude Code 开源了 50 万行代码读不动用 ~5000 行 TypeScript / Python 从零复现核心架构11 章分步教程带你理解 coding agent 精髓项目地址: https://gitcode.com/gh_mirrors/cl/claude-code-from-scratch用claude-code-from-scratch这个项目只需约 5000 行 TypeScript / Python 代码就能看懂多 Agent 架构的核心玩法——Sub-Agent fork-return 模式。当主 Agent 的上下文快被大任务撑爆时它会把子任务「fork」出去让一个拥有全新上下文窗口的Sub-Agent独立执行干完只把一份精简结论「return」回来。本文带你看懂这套机制的设计思想、三种内置子 Agent 类型和关键实现代码。为什么「上下文不够用」是单 Agent 的死穴先搞清楚问题出在哪。一个 Coding Agent 的本质是一个循环调用模型 → 执行工具 → 把结果塞回消息数组 → 重复。每读一个文件、每跑一次命令上下文都在膨胀。跑几十轮后会发生三件事窗口爆满API 直接报错对话中断这也是第 7 章 docs/07-context.md 做四层压缩的原因信噪比下降大量中间搜索过程淹没关键信息模型「看花了眼」成本失控每轮请求都要把全部历史重发一遍。压缩compact能治标但治不了根大任务的中间过程本就不该灌回主对话。解法只有一个字——分。这就是多 Agent 架构登场的原因。核心理解fork-return 模式的「分而治之」fork-return分叉-返回是最朴素也最实用的多 Agent 模式整个流程只有四步阶段发生了什么上下文视角Fork主 Agent 调用agent工具传入一个 task 描述主对话里只多了一条工具调用记录Execute子 Agent 用自己的干净上下文跑完整工具循环可多轮几十次搜索、读取都发生在「沙箱」里Return子 Agent 把最终文本结论作为tool_result交回主对话只增加一段摘要Forget子 Agent 实例销毁中间过程全部丢弃主上下文保持干净关键洞察主 Agent 的上下文里没有子 Agent 的搜索过程只有一份结论。子 Agent 读 50 个文件产生的噪音被天然隔离了——这不是压缩是「物理隔离」。三种内置子 Agent 类型explore / plan / general项目用一套配置文件就定义了三种职责不同的子 Agent源码见 src/subagent.ts类型工具权限职责典型场景explore只读三件套read_file、list_files、grep_search快速代码搜索尽快返回「这个函数在哪被调用」plan同 explore只读输出结构化实现方案「先别动手给我一份改造计划」️general除agent外的全部工具独立完成一个完整任务「把这段代码的测试补全」两个细节很值得品味1. 连 shell 都不给 explore。探索只需要读和搜索性不放run_shell——从工具层面直接断掉跑破坏性命令的可能比在 prompt 里叮嘱「请只跑只读命令」可靠得多。2. 子 Agent 不能再创建子 Agent。general类型的工具列表里过滤掉了agent工具防止 A 建 B、B 建 C 的递归嵌套指数级消耗 token——每层都有自己的系统提示词和消息历史实践中 1 层委派已覆盖绝大多数场景。实现关键代码走读简单到令人惊讶教学版实现里fork-return 的全部核心就两处改动。① 主循环里把agent工具单独拦下来steps/canonical/ts/agent.ts// The agent tool forks a read-only sub-agent with its own context. if (tu.name agent) { const summary await runSubAgent(task, this.client, MODEL); results.push({ type: tool_result, tool_use_id: tu.id, content: summary }); continue; }对主 Agent 来说agent就是一个返回字符串的普通工具——它甚至不知道也不需要知道背后跑了多长的循环。② 子 Agent 本体一个带新消息数组的迷你循环steps/canonical/ts/subagent.tsexport async function runSubAgent(task: string, client: Anthropic, model: string): Promisestring { const messages: Anthropic.MessageParam[] [{ role: user, content: task }]; // 全新上下文 const tools toolDefinitions.filter((t) EXPLORE_TOOLS.includes(t.name)); // 只读工具 while (true) { const reply await client.messages.create({ model, system: You are an explore sub-agent..., tools, messages }); // ...执行工具、回填结果直到没有 tool_use 为止 if (toolUses.length 0) return /* 拼接最终文本 */; } }注意这个while循环和主 Agent 的 agent loop结构完全一样——这正是整个项目的精髓Sub-Agent 本质上就是一个配置不同的 Agent 实例不同 system prompt、不同工具集、不同消息数组而不是另一套代码。生产版还加了一个优雅的outputBuffer设计子 Agent 的文本输出不直接打印而是收集到缓冲区runOnce执行完统一取走返回token 消耗也用「运行后 - 运行前」的增量汇总到父 Agent 的账本上避免重复计费。详见 docs/11-multi-agent.md。fork-return 为什么是学习多 Agent 的最佳起点生产环境的多 Agent 体系如 Claude Code 的 Coordinator 协调者、Swarm 蜂群模式允许 Agent 间对等通信、并行探索但复杂度是指数级上升的。fork-return 的优势恰好相反它把一切都简化到最坏情况也简单✅无共享状态子 Agent 上下文独立物理上不可能污染主对话✅控制流确定发任务 → 等结果没有消息队列、没有并发协调✅容错免费子 Agent 出错时返回一段错误字符串父 Agent 的 LLM 看到后自行决定重试或换策略不会崩溃。这也是为什么该项目选它作为「第 11 章」——在上下文管理、权限、Plan Mode 之后它是第一个让你感受到「架构 算法」的章节。动手跑起来一条命令看委派全过程无需 API key项目自带本地 mock 模型直接运行第 11 章 demosteps/run.mjsnode steps/run.mjs 11你会看到这样的输出you: Use a sub-agent to find out what greeting.txt says. → agent({task:Read greeting.txt and report its contents.}) The sub-agent reports greeting.txt says: hello from the subagent demo.主 Agent 没有自己读文件——它派了个子 Agent 去查拿回结论后作答。整个委派过程对应场景文件 steps/scenarios/delegate-to-subagent.json想改场景做实验可以直接对照它。进阶玩法在项目的.claude/agents/目录下放一个.md文件frontmatter 写name、description、allowed-tools正文写 prompt就能定义自定义子 Agent 类型项目级优先于用户级~/.claude/agents/——和 Claude Code 的扩展方式完全一致。写在最后回到标题的问题一个 Agent 上下文不够用怎么办claude-code-from-scratch 给出的答案是——不要试图塞进去fork 出去、拿回结论、忘掉过程。这个不足 200 行实现的模式浓缩了多 Agent 架构最本质的三件事上下文隔离、职责划分工具权限即职责、以及「子 Agent 只是一个配置不同的 Agent」的复用思想。想动手复现整个教程把仓库拉下来跟着 13 章走一遍即可git clone https://gitcode.com/gh_mirrors/cl/claude-code-from-scratch想深入理解上下文压缩如何与 fork-return 配合、或者 Coordinator 模式的 4 阶段工作流可以从 docs/11-multi-agent.md 和 docs/07-context.md 继续读起。【免费下载链接】claude-code-from-scratchBuild your own Claude Code from scratch. Claude Code 开源了 50 万行代码读不动用 ~5000 行 TypeScript / Python 从零复现核心架构11 章分步教程带你理解 coding agent 精髓项目地址: https://gitcode.com/gh_mirrors/cl/claude-code-from-scratch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

React 重渲染优化:拆分组合 Hook 计算(Split Combined Hook Computations)——ZCode 前端性能最佳实践深度解析

React 重渲染优化:拆分组合 Hook 计算(Split Combined Hook Computations)——ZCode 前端性能最佳实践深度解析

人工智能大模型代码智能体AI Agent桌面应用后端前端CLI 【免费下载链接】ZCode ZCode 是 AI 编程工作台,提供桌面应用、浏览器界面和终端 Agent。本仓库包含客户端、后端服务、共享 UI,以及 Agent CLI 与运行时源码。 项目地址: https://gitc…

2026/10/2 10:50:38 阅读更多 →
一个 Agent 额度用完,怎么让别的接着干?

一个 Agent 额度用完,怎么让别的接着干?

用 OpenViking 把记忆放到 Agent 外面:Agent 接力不丢失上下文,让每个 Agent 做它最擅长的事晚上十一点,你让 Codex 重构一个支付模块。它已经读完了二十几个文件,跟你确认过三次边界:旧接口先别删,金额统一…

2026/10/2 10:51:14 阅读更多 →
Codex 必备插件推荐:10款提升AI编程效率的实用工具

Codex 必备插件推荐:10款提升AI编程效率的实用工具

Codex 的插件我前前后后装过二十多个,最后留在环境里的就这 10 个。不是说我多克制,而是踩够了"装了一堆、一个没用、还拖慢 Codex"的坑之后,我给自己定了一条规矩:凡是不能让我"日常本来就要做的事"变得更快…

2026/10/2 10:51:18 阅读更多 →

最新新闻

轻量级虚拟试衣镜Python开源方案:USB摄像头实时试穿

轻量级虚拟试衣镜Python开源方案:USB摄像头实时试穿

简介:这是一套基于深度学习的虚拟试衣镜完整实现方案,面向计算机视觉方向的学习者与算法工程师,解决服装数字化展示中的姿态对齐、人体分割与跨域图像生成等核心问题。项目融合人体姿态估计、人体解析、几何匹配与GAN四大模型,仅依…

2026/10/2 14:42:07 阅读更多 →
YOLOv8路面坑洼检测实战:从训练到推理的完整项目解析

YOLOv8路面坑洼检测实战:从训练到推理的完整项目解析

简介:这份资源面向计算机视觉学习者与道路安全检测方向的开发者,提供一套基于YOLOv8实现路面坑洼识别的完整Python项目,可用于课程设计、毕业设计或算法复现练习。压缩包共10个文件,约170.66MB,包含4个py脚本&#xff…

2026/10/2 14:42:07 阅读更多 →
电机控制框架选型实战:五套架构优缺点与工程决策指南

电机控制框架选型实战:五套架构优缺点与工程决策指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 14:42:06 阅读更多 →
私有环境RAG知识库搭建实战:从文档切分到微信钉钉接入

私有环境RAG知识库搭建实战:从文档切分到微信钉钉接入

1. 为什么要在私有环境里搭一套 RAG 知识库1.1 从“模型很聪明”到“模型懂我们公司”的落差大模型刚火那阵子,我身边不少朋友的第一反应都是:这东西这么能聊,直接拿它当客服、当内部助手不就完了?真上手用一段时间就会发现&#…

2026/10/2 14:42:06 阅读更多 →
NLP微博情感分类实战:从朴素贝叶斯到BERT的完整指南

NLP微博情感分类实战:从朴素贝叶斯到BERT的完整指南

简介:这份资源是面向NLP情感分析新人的微博内容分类实战源码,适合刚接触深度学习文本分类、希望跑通完整项目流程的学习者。项目围绕微博语料展开,覆盖数据分析、文本预处理、词向量构建、模型训练与测评全过程,并配有博主博客文字…

2026/10/2 14:42:06 阅读更多 →
把Python解释器放进Docker:PyCharm配置与调试全攻略

把Python解释器放进Docker:PyCharm配置与调试全攻略

先说点实在的:你是不是也遇到过这种场景——项目在别人电脑上跑得好好的,拉到本地一堆报错;或者为了装一个依赖包,把系统里的 Python 环境搞乱了,最后只能重装;又或者新同事入职,光搭开发环境就…

2026/10/2 14:41:06 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →