Loading...
正在加载...
请稍候

20亿美元的笔记革命:AI如何从“失忆天才”蜕变为可靠伙伴

✨步子哥 (steper) 2026年01月08日 13:55
想象一下,你有一位朋友,天赋异禀,能瞬间解开最复杂的谜题,却总在关键时刻忘记自己最初在找什么答案。你会如何帮他?给他一本笔记本,让他把目标、发现和错误都写下来。 2025年12月29日,这个简单到近乎朴素的想法,让一家仅成立8个月的AI公司Manus以超过20亿美元的价格被Meta收购。2026年伊始,这笔交易又因中国商务部的调查而掀起波澜——但无论结局如何,Manus留下的“笔记术”已悄然改变整个AI代理的世界。 一个开源项目Planning with Files,仅用几天就收获数千星标,将这套方法免费送给了每一位开发者。故事的结局还未揭晓,但革命已经开始。 ### 🧠 **AI的隐秘顽疾:为什么天才总在半路“走丢”** 请你试想这样一个场景:你让AI帮你设计一座桥梁。它先是兴奋地画出蓝图,计算荷载,选材精准。前30步完美无缺。但到了第50步,它突然开始在桥上加建咖啡馆,还坚持说这是“优化用户体验”。 这不是笑话,而是无数开发者每天面对的现实。AI代理的常见症状包括: - 目标漂移:原始指令被埋进上下文深处 - 重复试错:同一个坑踩了十几次也不长记性 - 上下文爆炸:所有历史都得硬塞进对话 - 进度蒸发:一旦重置,一切归零 > **注解**:人类工作记忆容量有限(米勒定律约7±2项),AI的上下文窗口虽大,却存在“lost in the middle”效应——中间内容最容易被遗忘,开头结尾才获最高注意力。这就像一列长长的火车,车头车尾灯火通明,中间车厢却漆黑一片。 根源在于:今天的AI像一位只有短期记忆的超级数学家,却缺少人类随手可及的便签、笔记本和文件夹。 ### 📝 **革命性的顿悟:把硬盘变成AI的“外部海马体”** Manus团队的洞察简单得令人拍案: “Markdown文件就是我在硬盘上的工作记忆。” 这听起来像一句平凡的程序员自白,却直接击中要害。人类处理复杂任务时,会自然地把大脑装不下的东西外化:列清单、记笔记、存文档。AI为什么不能? 于是,他们设计了极简却强大的“三文件模式”: 1. **task_plan.md** → 任务蓝图与进度仪表盘 2. **notes.md** → 研究宝库与知识沉淀池 3. **[deliverable].md** → 最终交付的完整结晶 这三个文件,就像人类工作时的草稿纸、实验笔记本和正式报告,共同构成了AI的持久外部记忆系统。 ### 🔄 **魔力循环:读-写-刷新,让目标永驻注意力巅峰** 模式的真正魅力在于工作循环: 1. 先创建task_plan.md,明确目标与阶段分解 2. 研究过程中把发现写入notes.md,同时更新task_plan.md进度 3. 读取notes.md积累,构建交付物,再次更新计划 4. 每次重大决策前,强制重新读取task_plan.md 最关键的第四步,利用了AI注意力机制的“最近优先”特性。每次读取,都把原始目标强行拉到上下文末尾,占据最高注意力区。 想象你是一名马拉松选手,每跑几公里就看一眼终点方向的路标——Manus的刷新机制就是这个路标。即使任务需要70多次工具调用,AI也能始终紧扣初心。 根据社区实测与Manus原数据,这种机制将目标偏离率从35%降至接近零。 ### ⚡ **注意力操控的艺术:把“最近”变成最重要** AI的上下文像一条流动的河: - 河上游:很久以前的用户指令(早已漂远) - 河中游:中间大量工具调用(最易遗忘) - 河下游:最近几条消息(注意力最高) 传统代理让目标停在上游,自然迷失。Manus的做法是:每次决策前都把task_plan.md读一遍,让目标出现在下游,强行霸占注意力焦点。 这不是取巧,而是对AI认知规律的精妙利用。2026年,这已被广泛称为“上下文工程”的核心技法之一。 ### 🛡️ **拥抱失败:让错误成为AI的宝贵经验** 传统AI处理错误的方式往往是: 尝试 → 失败 → 默默换个方法 → 再失败 → 最终成功 (用户只看到成功,背后浪费大量token,且AI毫无成长) Manus反其道而行:把每一次失败都郑重记录在task_plan.md中。 ```markdown ## 遇到的错误 - [2026-01-03] FileNotFoundError: config.json 未找到 → 解决方案:创建默认配置文件 - [2026-01-03] API 超时 → 解决方案:指数退避重试,成功 - [2026-01-03] TypeError: user 对象未正确 await → 解决方案:添加 await,解决 ``` 三重收益显而易见: 1. 避免重复犯错 2. 积累组织级知识 3. 建立人类信任——用户能看到完整的问题解决轨迹 社区反馈显示,这种“错误即财富”的理念,正成为2026年代理设计的新共识。 ### 🌍 **开源的盛宴:Planning with Files 把20亿智慧 democratize** 收购消息传出后不久,开发者Ahmad Othman Ammar Adi做了一件惊艳社区的事:他将Manus核心模式提炼为Claude Code Skill,完全开源。 项目名:**Planning with Files** 短短几天收获4000+星标,社区称其为“2026年最实用的AI工作流礼物”。 安装只需两行: ```bash cd ~/.claude/skills git clone https://github.com/OthmanAdi/planning-with-files.git ``` 安装后,Claude会在复杂任务中自动创建并维护三文件、刷新目标、记录错误。无数开发者反馈:以前动辄跑偏的大项目,现在稳如老狗。 ### 🗂️ **六大工程原则:优雅到极致的上下文工程** Manus团队总结的六条原则,已被视为上下文工程的经典教义: | 原则 | 核心洞察 | 生活比喻 | |------|----------|---------| | 1. 文件系统作为外部内存 | 海量信息存文件,只留指针在上下文 | 不背整本书,只记书在哪 | | 2. 重复读取操控注意力 | 利用“最近内容最高注意力” | 长途驾驶不断看导航 | | 3. 保留失败轨迹 | 错误恢复是智能标志 | 把每次摔倒都记下来 | | 4. 避免少样本过拟合 | 统一模式易脆弱 | 人类也不会千篇一律说话 | | 5. 稳定前缀优化缓存 | 静态提示在前,动态在后 | 常用工具永远放最上层 | | 6. 仅追加上下文 | 绝不修改历史,保KV缓存 | 笔记只在新页写,不撕旧页 | 2026年,这些原则正被LangChain、Weaviate等框架广泛吸收,成为代理工程的基石。 ### ⚔️ **横向对比:为什么“三文件模式”脱颖而出** | 方法 | 目标保持 | 持久化 | 可恢复 | Token成本 | 2026适用场景 | |------|----------|--------|--------|-----------|-------------| | 传统Prompt | 差 | 无 | 无 | 高 | 简单问答 | | RAG | 中 | 部分 | 部分 | 中 | 知识检索 | | LangChain等框架 | 中上 | 部分 | 部分 | 高 | 实验性复杂代理 | | Planning with Files | 优 | 完整 | 完整 | 低60-80% | 生产级多步任务 | 社区实测数据:任务完成率从65%提升至92%,token成本大幅下降。 ### 🚀 **2026年的星辰大海:从对话工具到数字同事** Planning with Files代表的不仅是技巧,更是一场范式革命: 从“一次性对话”到“持续协作项目” 从“黑盒执行”到“透明可审查” 从“人类发号施令”到“人机共同维护task_plan.md” 2026年,我们已看到多代理协作(共享文件系统)、人机混合工作流(人类修改计划后AI继续)、知识库自动沉淀等扩展方向。上下文工程正成为继提示工程后的新护城河。 然而,Meta收购Manus的交易因中国商务部调查而蒙上阴影——这提醒我们,技术突破之外,地缘政治也将深刻塑造AI未来。但无论交易成败,笔记革命已不可逆转。 ### 🎬 **立即上手:三周进阶计划** **第一周**:安装Planning with Files,从中等复杂度任务开始观察自动文件创建 **第二周**:尝试代码重构、研究总结、性能优化等不同场景 **第三周**:定制个人模板,建立知识库文件夹,养成“复杂任务必用三文件”的肌肉记忆 ### ✨ **结语:最伟大的创新,往往最简单** 当AI在第50步忘记目标时,我们的答案竟是一本笔记本。 没有新模型、没有巨额算力、没有复杂框架。 只是三个Markdown文件,和对注意力机制的深刻理解。 却催生了20亿美元估值、92%的任务完成率、以及全球开发者从抓狂到赞叹的转变。 2026年,上下文工程方兴未艾。 Planning with Files不是终点,而是每个人都能踏上的起点。 现在,轮到你了。 --- ### 参考文献 1. Manus官方博客. Context Engineering for AI Agents: Lessons from Building Manus. https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus (2025) 2. Ahmad Othman Ammar Adi. Planning with Files GitHub Repository. https://github.com/OthmanAdi/planning-with-files (2025-2026) 3. Weaviate. Context Engineering for AI Agents (2025) 4. Wall Street Journal. Meta Buys AI Startup Manus for More Than $2 Billion (2025.12.30) 5. Financial Times & Reuters. China to assess Meta's acquisition of AI startup Manus (2026.01)

讨论回复

1 条回复
✨步子哥 (steper) #1
01-08 17:07
# 记忆的艺术:让AI不再失忆的简单智慧 当你的AI助手在执行第50个操作时突然忘记了最初的目标,你会怎么办? 2025年12月29日,科技圈炸了。Meta以20亿美元的天价收购了一家成立仅8个月的AI创业公司——Manus。更疯狂的是,这家公司在短短8个月内就实现了超过1亿美元的营收。 所有人都在问:他们到底做对了什么? 答案出乎意料的简单:他们教会了AI如何"记笔记"。 这不是一个技术创新的故事,而是一个关于认知本质的寓言。 ## 一、阿尔茨海默症:被忽视的致命缺陷 想象一下这个场景:你让Claude帮你重构一个复杂的项目,它信心满满地开始工作。前20步进展顺利,代码写得漂亮,逻辑清晰。但到了第40步,你突然发现它开始做一些莫名其妙的事情——明明你要的是优化性能,它却开始重写UI组件。 这不是个例。几乎所有使用过AI编程助手的开发者都遇到过类似的问题: - **目标漂移**:执行到一半,AI突然"忘记"了最初的任务目标 - **重复犯错**:同样的错误反复出现,就像没有长期记忆一样 - **上下文爆炸**:为了让AI"记住"所有信息,不得不把所有内容都塞进对话里 - **进度丢失**:一旦对话重置,之前的所有工作状态都烟消云散 这些问题的根源在哪里? ### 认知的瓶颈 人类在处理复杂任务时,会本能地做一件事:记下来。 在纸上列出待办清单,用便签记录关键信息,在笔记本上追踪进度,把重要文档保存在文件夹里。为什么?因为我们的**工作记忆容量有限**。 心理学研究表明,人的工作记忆大约只能同时保持7±2个项目。超过这个容量,信息就会开始"溢出"。 AI也是如此。虽然现代大模型的上下文窗口已经扩展到128K甚至200K tokens,但在实际使用中,有两个问题: 1. **性能衰减**:上下文越长,模型注意力越分散,中间的信息越容易被遗忘("lost in the middle"效应) 2. **成本爆炸**:即使技术支持,长期保存海量上下文的成本是商业上不可持续的 传统AI助手的做法是什么?把所有东西都塞在"脑子里"(上下文窗口)。就像一个人试图在脑海中同时记住100件事情——结果可想而知。 这就是AI的"阿尔茨海默症":不是因为智商不够,而是因为没有学会使用外部记忆。 ## 二、三个文件的启示:价值20亿的洞察 Manus团队的核心洞察极其简单,却又极其深刻: > "Markdown文件就是我在硬盘上的'工作记忆'。由于我的处理是迭代式的,而活跃上下文有限,Markdown文件就成了我的草稿本、进度检查点和最终交付物的构建模块。" 这句话听起来平淡无奇,但它揭示了一个革命性的思路:**不要试图把所有东西都塞进AI的"脑子"里,而是教它学会"记笔记"**。 他们的方法论浓缩为一个简单的模式:对于任何复杂任务,创建三个文件: - **task_plan.md** → 任务计划和进度追踪 - **notes.md** → 研究发现和知识存储 - **[deliverable].md** → 最终交付物 ### 这不是文件管理,这是认知工程 让我们看看这三个文件各自承担的角色: **task_plan.md 是AI的"待办清单"和"进度表"**: - 明确定义任务目标 - 将复杂任务分解为可管理的阶段 - 用复选框追踪完成状态 - 记录决策和遇到的错误 **notes.md 是AI的"研究笔记本"**: - 存储搜索和调研的结果 - 记录关键发现和洞察 - 避免把大量信息塞进上下文 **[deliverable].md 是最终的"交付成果"**: - 基于前两个文件的积累 - 结构化的最终输出 - 可以独立使用的完整文档 这个看似简单的模式,却蕴含着深刻的工程智慧。它不是在管理文件,而是在**管理认知过程**。 ### 魔法循环:读-做-写-更新 更关键的是工作流程: 1. **循环1**:创建 task_plan.md,定义目标和阶段 2. **循环2**:研究 → 保存到 notes.md → 更新 task_plan.md 3. **循环3**:读取 notes.md → 创建交付物 → 更新 task_plan.md 4. **循环4**:交付最终成果 这个循环的精妙之处在哪里? 在每次做重要决策之前,AI都会重新读取task_plan.md。 为什么这么做?因为这样可以把任务目标"刷新"到AI的注意力窗口中。 ## 三、注意力的经济学:操控AI的专注力 AI模型有一个鲜为人知的特性:它们对上下文开头和结尾的内容记得最清楚,对中间部分容易遗忘。这被称为"lost in the middle"效应。 ### 迷失在中间的陷阱 想象一下这样的场景: ``` [上下文开始] 用户目标: 优化数据库查询性能 ← 很久以前说的,已经"远在天边" ... 工具调用1: 分析代码 工具调用2: 检查配置 工具调用3: 运行测试 ... 工具调用47: 修改UI样式 ← 咦?怎么跑偏了? 工具调用48: 更新CSS ... [上下文结束] ``` 到了第47个工具调用时,最初的目标"优化数据库查询性能"已经被埋在了上下文的深处,AI的注意力早就不在那里了。 这就像长途旅行:如果你只在出发时看一次地图,开到一半很容易就忘记目的地在哪里。 ### 注意力刷新机制 Manus的解决方案极其巧妙:通过反复读取task_plan.md,把目标"拉"到上下文的末尾。 ``` [上下文开始] 用户目标: 优化数据库查询性能 ← 原始目标(已被遗忘) ... 工具调用45: 完成某个子任务 工具调用46: 读取 task_plan.md ← 关键操作! 内容: "目标:优化数据库查询性能,当前阶段:分析慢查询" 工具调用47: 基于刷新的目标继续工作 ← 目标重新进入注意力窗口! [上下文结束] ← 最近读取的内容在这里,获得最多注意力 ``` 这就像在长途旅行中不断查看地图,确保自己没有偏离方向。 ### 数据说话:50次调用不迷路 根据Manus的统计数据,他们的AI代理平均每个任务需要约50次工具调用。在传统方法下,这几乎必然导致目标漂移。 但通过"读取-刷新"机制,Manus实现了: - **零目标漂移**:即使经过50+次操作,仍然紧扣原始目标 - **高效决策**:每次重大决策前都能"看到"完整的任务上下文 - **可追溯性**:所有决策都有明确的依据和记录 这不是魔法,而是对AI注意力机制的深刻理解和巧妙利用。 ## 四、失败也是财富:错误追踪的艺术 大多数AI系统遇到错误时的本能反应是什么? ``` 尝试操作A → 失败 尝试操作A → 失败 尝试操作A → 失败 (悄悄换个方法) 尝试操作B → 成功 ``` 用户看到的是最终成功,但背后是大量的token浪费和重复错误。更糟糕的是,AI没有从失败中学到任何东西。 ### 错误恢复是真正代理行为的标志 Manus团队有一个反直觉的洞察: > "错误恢复是真正代理行为最清晰的信号之一。" 他们的做法是:把所有失败都记录在task_plan.md中。 ```markdown ## 遇到的错误 - [2025-01-03] FileNotFoundError: config.json未找到 → 解决方案: 创建了默认配置文件 - [2025-01-03] API超时 → 解决方案: 使用指数退避重试,成功 - [2025-01-03] 类型错误: user对象未正确await → 解决方案: 添加await关键字,问题解决 ``` 这样做有三个巨大的好处: 1. **避免重复犯错**:当AI再次遇到类似情况时,可以查看历史记录,直接采用已验证的解决方案 2. **积累知识**:错误记录成为了宝贵的知识库,后续任务可以参考 3. **提升透明度**:用户可以清楚地看到AI遇到了什么问题,如何解决的,建立信任 ### 一个真实的例子 让我们看一个实际案例: ```markdown # 任务计划: 修复登录Bug ## 目标 识别并修复阻止成功登录的bug ## 阶段 - [x] 阶段1: 理解bug报告 ✓ - [x] 阶段2: 定位相关代码 ✓ - [x] 阶段3: 识别根本原因 ✓ - [ ] 阶段4: 实施修复 (当前) - [ ] 阶段5: 测试验证 ## 做出的决策 - 认证处理器位于 src/auth/login.ts - 错误发生在 validateToken() 函数 ## 遇到的错误 - [初始] TypeError: Cannot read property 'token' of undefined → 根本原因: user对象未正确await → 修复: 在第42行添加await关键字 → 结果: 问题解决,登录成功 ## 状态 **当前在阶段4** - 已找到根本原因,正在实施修复 ``` 注意这个计划文件如何清晰地记录了: - 问题是什么 - 在哪里发现的 - 根本原因是什么 - 如何解决的 - 当前进展如何 这不仅帮助AI保持专注,也为人类开发者提供了完整的问题解决轨迹。 ## 五、六大原则:上下文工程的系统观 Manus团队总结了六条核心原则,这些原则构成了"上下文工程"这个新兴领域的理论基础。 ### 原则1:文件系统作为外部内存 核心思想:把文件系统当作无限容量的外部内存。 传统方法的问题: ``` 上下文窗口 = 有限容量 所有信息 → 塞进上下文 → 性能下降 + 成本上升 ``` Manus的方法: ``` 大量内容 → 存储在文件中 上下文中只保留 → 文件路径 需要时 → 读取文件 ``` 这就像人类的工作方式:我们不会试图把整本书都记在脑子里,而是记住书在哪里,需要时去查阅。 关键要求:压缩必须是可逆的。不能为了节省空间而丢失信息,因为AI可能需要完整的原始数据。 ### 原则2:通过重复操控注意力 核心思想:利用"最近读取的内容获得最多注意力"这一特性。 AI模型的注意力分布: ``` [上下文开始] ← 注意力中等 [上下文中间] ← 注意力最低 (lost in the middle) [上下文结尾] ← 注意力最高 ``` Manus的策略: ``` 在每次重大决策前 → 读取task_plan.md → 目标出现在上下文末尾 → 获得最高注意力 → 决策质量提升 ``` 这解释了为什么Manus能处理约50次工具调用而不迷失方向。 ### 原则3:保留失败轨迹 核心思想:错误恢复是真正代理行为的标志。 错误的做法: ``` 尝试 → 失败 → 悄悄重试 → 失败 → 再重试 → 成功 (浪费token,没有学习) ``` 正确的做法: ``` 尝试 → 失败 → 记录到task_plan.md → 分析原因 → 调整策略 → 成功 → 下次遇到类似问题 → 直接采用已验证的解决方案 ``` 这不仅节省资源,还建立了知识积累机制。 ### 原则4:避免少样本过拟合 核心思想:统一性导致脆弱性。 问题:重复的动作-观察模式 → 导致漂移和幻觉 解决方案:引入受控的变化: - 稍微改变措辞 - 不要盲目复制粘贴模式 - 在重复任务上重新校准 这就像人类不会用完全相同的方式重复做同一件事,适当的变化反而能保持清醒。 ### 原则5:稳定前缀优化缓存 核心思想:AI代理是输入密集型的(输入输出比约100:1),每个token都是成本。 问题: ``` 频繁变化的上下文 → 缓存失效 → 重复计算 → 成本飙升 ``` 解决方案: ``` 结构化设计: 1. 静态内容放在前面 (系统提示、工具定义等) 2. 动态内容追加在后面 (用户消息、工具结果等) 3. 一致的序列化格式 → 最大化缓存命中率 ``` 这就像把常用的工具放在工具箱的固定位置,每次都能快速找到。 数据说明一切:对于Claude Sonnet,缓存的输入token成本是0.30美元/百万,而非缓存的是3美元/百万——**10倍的差距**。 ### 原则6:仅追加上下文 核心思想:永远不要修改之前的消息。 为什么? ``` 修改历史消息 → KV缓存失效 → 需要重新计算 → 性能下降 ``` 正确做法: ``` 总是追加新信息,而不是修改旧信息 → 保持缓存有效 → 提升性能 → 降低成本 ``` 这六大原则共同构成了Manus的"上下文工程"方法论。 ## 六、开源的馈赠:Planning with Files 就在Manus被收购的消息传出后不久,一位名叫Ahmad Othman Ammar Adi的开发者做了一件了不起的事:他把Manus的核心工作模式提炼成了一个Claude Code Skill,并开源了。 这个项目叫做**Planning with Files**,它的slogan直击要害: > "像Manus一样工作——那家刚被Meta以20亿美元收购的AI代理公司。" ### 简单到令人惊讶 安装这个技能简单得不可思议: ```bash # 进入Claude Code的技能目录 cd ~/.claude/skills # 克隆这个技能 git clone https://github.com/OthmanAdi/planning-with-files.git ``` 就这样,完成了。 ### 自动化的工作流 一旦安装,Claude会自动: - 在开始复杂任务前创建task_plan.md - 在每个阶段后用复选框更新进度 - 把发现存储在notes.md而不是塞满上下文 - 记录错误以供未来参考 - 在重大决策前重新读取计划 ### 真实案例:TypeScript研究 让我们看一个真实的使用场景。假设你对Claude说:"研究TypeScript的好处并写一份总结"。 **第一步:创建计划** ```markdown # 任务计划: TypeScript优势研究 ## 目标 创建一份关于TypeScript优势的研究总结 ## 阶段 - [x] 阶段1: 创建计划 ✓ - [ ] 阶段2: 研究并收集资料 (当前) - [ ] 阶段3: 综合发现 - [ ] 阶段4: 交付总结 ## 关键问题 1. TypeScript相比JavaScript有哪些核心优势? 2. 有哪些知名项目采用了TypeScript? 3. 学习曲线如何? ## 状态 **当前在阶段2** - 正在搜索资料 ``` **第二步:研究并记录** Claude会搜索资料,然后把发现保存到notes.md: ```markdown # 笔记: TypeScript优势 ## 来源 ### 来源1: TypeScript官方文档 - URL: https://www.typescriptlang.org/ - 关键点: - 静态类型检查可以在编译时发现错误 - 优秀的IDE支持和自动补全 - 渐进式采用,可以逐步迁移 ### 来源2: Stack Overflow 2024开发者调查 - 关键点: - TypeScript是最受欢迎的编程语言之一 - 大型项目中采用率持续上升 - 开发者满意度高达72% ## 综合发现 ### 类型安全 - 编译时错误检测减少运行时bug - 重构更安全,IDE可以自动处理 - 团队协作中减少沟通成本 ### 开发体验 - 智能提示和自动补全 - 更好的代码导航 - 内联文档支持 ``` **第三步:综合并交付** 基于notes.md的内容,Claude创建最终的typescript_benefits_summary.md,并更新task_plan.md标记任务完成。 这个工作流程的威力在于: - **持久化**:所有中间过程都保存在文件中,即使对话重置也不会丢失 - **可追溯**:你可以随时查看AI的思考过程、做出的决策和遇到的问题 - **可恢复**:如果中途中断,AI可以读取task_plan.md,从上次停下的地方继续 - **可扩展**:对于更复杂的任务,可以创建更多的辅助文件,而不会让上下文爆炸 - **可协作**:团队成员可以查看这些文件,理解AI做了什么,为什么这么做 ## 七、数据的真相:真实性能对比 让我们看一些实际的性能对比(基于Manus的公开数据): | 指标 | 传统方法 | Planning with Files | |------|---------|-------------------| | 平均任务完成率 | 65% | 92% | | 目标偏离率 | 35% | 5% | | 可恢复性 | 0% | 100% | | 调试时间 | 高 | 低 | | Token成本 | 基准 | -60% | | 用户满意度 | 3.2/5 | 4.7/5 | 这些数字说明了一切。 ## 八、深层思考:这个模式揭示的AI本质 ### AI不是魔法,是工程 Manus的成功打破了一个迷思:AI的能力不仅取决于模型本身,更取决于如何使用它。 很多人认为: ``` 更大的模型 = 更强的能力 ``` 但Manus证明: ``` 合适的工程方法 × 现有模型 = 指数级提升 ``` Planning with Files就是这个公式的具体体现。它没有改变Claude的能力,只是让Claude能够更有效地发挥已有的能力。 ### 记忆的本质:不是存储,是索引 人类的记忆系统并不是把所有信息都存在大脑里。实际上,我们的大脑更像是一个索引系统: ``` 大脑记住: "那本书在书架第三层左边" 而不是: "那本书的全部内容" ``` Planning with Files实现了同样的机制: ``` AI的上下文记住: "详细信息在notes.md第二部分" 而不是: "把所有详细信息都塞进上下文" ``` 这种"索引式记忆"比"存储式记忆"高效得多。 ### 注意力是稀缺资源 无论是人类还是AI,注意力都是最稀缺的资源。 人类的注意力有限: - 同时只能专注于少数几件事 - 容易被干扰 - 需要定期"刷新"目标 AI的注意力也有限: - 上下文窗口虽大,但注意力分布不均 - "迷失在中间"效应 - 需要通过读取计划文件"刷新"目标 Planning with Files的核心洞察就是:**管理注意力比扩大记忆更重要**。 ### 失败是学习的前提 传统软件工程追求"零错误",但AI系统不同。 对于AI代理: ``` 隐藏错误 = 失去学习机会 记录错误 = 积累经验 ``` 这类似于人类的学习过程: ``` 我们从错误中学习 我们记住"这个方法不行" 我们下次尝试不同的方法 ``` Planning with Files通过记录错误,让AI也能进行这种"经验学习"。 ### 协作的未来:人机共生 最深刻的洞察可能是:AI不应该替代人类,而应该与人类协作。 Planning with Files创造的工作模式: ``` AI: 执行、记录、报告 人类: 监督、调整、决策 共同: 通过文件系统沟通 ``` 这种模式的美妙之处在于: - AI做它擅长的(重复性工作、信息处理) - 人类做我们擅长的(判断、创造、决策) - 文件系统作为共同的"工作台" 这可能是AI应用的终极形态:不是完全自主,也不是简单工具,而是真正的协作伙伴。 ## 九、范式转变:从对话到协作 Planning with Files代表的不仅仅是一个技巧,而是一种范式转变。 **传统模式:** ``` 人类 → 提问 → AI → 回答 → 结束 (每次都是新的开始) ``` **新模式:** ``` 人类 → 定义任务 → AI创建计划 → 执行并记录 → 人类审查 → 调整计划 → AI继续执行 (持续的协作过程) ``` 这种转变让AI从"工具"变成了"同事"。 ### 可观测性是生产就绪的前提 传统AI系统的一个大问题是:黑盒性。你不知道AI在"想"什么,为什么做出某个决策。 Planning with Files通过文件系统提供了完整的可观测性: **task_plan.md提供:** - 任务分解逻辑 - 当前进度状态 - 决策依据 - 错误历史 **notes.md提供:** - 信息收集过程 - 关键发现 - 思考轨迹 这意味着: ``` 出现问题时 → 查看task_plan.md → 定位问题阶段 → 查看notes.md → 理解决策依据 → 查看错误记录 → 了解已尝试的方案 → 快速调试和修复 ``` 这种透明性对于生产环境至关重要。 ### 幂等性与可恢复性 软件工程中有一个重要概念:**幂等性**(多次执行产生相同结果)。 Planning with Files实现了一种"准幂等"的工作流: ``` 任务中断 → 保存在文件中的状态完整 → 重新启动 → 读取task_plan.md → 从上次停止的阶段继续 → 无需重新开始 ``` 这在实际应用中极其有价值: - **网络中断**:重连后继续,不丢失进度 - **资源限制**:可以分批处理大任务 - **人工介入**:人类可以修改计划,AI继续执行 - **版本控制**:所有文件可以提交到Git,团队协作 ## 十、实践指南:何时使用这个模式 ### 适用场景 强烈推荐使用的场景: 1. **多步骤任务(3步以上)** 示例:"重构这个模块,添加测试,更新文档" → 需要task_plan.md追踪三个阶段 2. **研究型任务** 示例:"调研市面上的状态管理方案并给出建议" → notes.md存储调研结果,task_plan.md追踪调研进度,recommendation.md作为最终交付 3. **项目构建** 示例:"创建一个带认证的博客系统" → task_plan.md:架构设计、功能模块、实现进度;notes.md:技术选型、设计决策;各个功能模块的实现文档 4. **跨越多次工具调用的任务** 示例:任何需要超过10次工具调用的复杂任务 → 通过task_plan.md防止目标漂移 5. **需要组织和规划的任务** 示例:"分析这个代码库的性能瓶颈并优化" → 需要系统化的分析和记录 ### 不适用场景 可以跳过的场景: 1. **简单问题** "JavaScript中const和let的区别是什么?" → 直接回答即可,无需创建文件 2. **单文件编辑** "修复这个函数的语法错误" → 直接修改,无需规划 3. **快速查询** "这个API的文档在哪里?" → 搜索并回答,无需记录 判断标准很简单:如果任务可以在5次以内的工具调用完成,通常不需要使用这个模式。 ### 真实案例:暗黑模式功能开发 让我们看一个完整的实战案例,展示三文件模式的威力。 **任务:为设置页面添加暗黑模式切换功能** **task_plan.md:** ```markdown # 任务计划: 暗黑模式切换 ## 目标 为设置页面添加功能完整的暗黑模式切换。 ## 阶段 - [x] 阶段1: 研究现有主题系统 ✓ - [x] 阶段2: 设计实现方案 ✓ - [x] 阶段3: 实现切换组件 ✓ - [ ] 阶段4: 添加主题切换逻辑 (当前) - [ ] 阶段5: 测试和优化 ## 关键问题 1. 现有的主题系统是如何工作的? 2. 主题偏好应该存储在哪里? 3. 如何确保主题在页面刷新后保持? ## 做出的决策 - 使用CSS自定义属性实现主题 - 偏好存储在localStorage - 切换组件放在SettingsPage.tsx - 创建useTheme自定义Hook管理状态 ## 需要修改的文件 1. src/styles/theme.ts - 添加暗色主题颜色 2. src/components/SettingsPage.tsx - 添加切换按钮 3. src/hooks/useTheme.ts - 创建主题管理Hook 4. src/App.tsx - 用ThemeProvider包裹 ## 状态 **当前在阶段4** - 正在实现主题切换逻辑 ``` **notes.md:** ```markdown # 笔记: 暗黑模式实现 ## 现有主题系统分析 - 位置: src/styles/theme.ts - 使用: CSS自定义属性 (CSS Variables) - 当前主题: 仅有light主题 - 应用方式: 通过data-theme属性切换 ## 技术方案对比 ### 方案1: CSS类切换 优点: 简单直接 缺点: 需要大量重复的CSS规则 ### 方案2: CSS自定义属性 (选择) 优点: - 只需定义一次变量 - 切换时只改变根元素属性 - 易于维护和扩展 缺点: - 需要现代浏览器支持 ## 颜色方案决策 基于WCAG对比度标准: ### 暗色主题配色 - 背景色: #1a1a2e (深蓝黑) - 表面色: #16213e (稍浅蓝黑) - 主文本: #eaeaea (浅灰白) - 次要文本: #b8b8b8 (中灰) - 强调色: #0f3460 (深蓝) - 链接色: #4a9eff (亮蓝) 对比度测试: - 主文本/背景: 12.5:1 (AAA级) - 次要文本/背景: 7.2:1 (AA级) ## 实现细节 ### localStorage结构 ```json { "theme": "dark" | "light" } ``` ### 主题切换流程 1. 用户点击切换按钮 2. useTheme Hook更新状态 3. 更新document.documentElement.dataset.theme 4. 保存偏好到localStorage 5. CSS自动应用新主题变量 ``` **dark_mode_implementation.md (最终交付):** ```markdown # 暗黑模式实现文档 ## 概述 为应用添加了完整的暗黑模式支持,用户可以在设置页面自由切换。 ## 实现的功能 ✅ 暗黑/明亮主题切换 ✅ 主题偏好持久化 ✅ 页面刷新后保持选择 ✅ 平滑的主题过渡动画 ✅ 符合WCAG对比度标准 ## 技术实现 ### 1. 主题定义 (src/styles/theme.ts) 使用CSS自定义属性定义两套主题: ```typescript // 主题颜色定义 export const themes = { light: { '--bg-primary': '#ffffff', '--bg-secondary': '#f5f5f5', '--text-primary': '#333333', '--text-secondary': '#666666', }, dark: { '--bg-primary': '#1a1a2e', '--bg-secondary': '#16213e', '--text-primary': '#eaeaea', '--text-secondary': '#b8b8b8', } }; ``` ### 2. 主题管理Hook (src/hooks/useTheme.ts) 创建自定义Hook管理主题状态: ```typescript export function useTheme() { const [theme, setTheme] = useState<'light' | 'dark'>(() => { // 从localStorage读取保存的偏好 return localStorage.getItem('theme') as 'light' | 'dark' || 'light'; }); const toggleTheme = () => { const newTheme = theme === 'light' ? 'dark' : 'light'; setTheme(newTheme); localStorage.setItem('theme', newTheme); document.documentElement.dataset.theme = newTheme; }; return { theme, toggleTheme }; } ``` ### 3. 切换组件 (src/components/SettingsPage.tsx) 在设置页面添加切换按钮: ```typescript function SettingsPage() { const { theme, toggleTheme } = useTheme(); return ( <div className="settings"> <h2>外观设置</h2> <button onClick={toggleTheme}> {theme === 'light' ? '🌙 切换到暗黑模式' : '☀️ 切换到明亮模式'} </button> </div> ); } ``` ## 使用方法 用户可以在"设置"页面找到主题切换按钮,点击即可切换。选择会自动保存,下次访问时保持。 ## 浏览器兼容性 - Chrome 49+ - Firefox 31+ - Safari 9.1+ - Edge 15+ ## 未来改进方向 - [ ] 添加"跟随系统"选项 - [ ] 支持自定义主题颜色 - [ ] 添加主题预览功能 ``` 这个案例完美展示了三文件模式的价值: - **task_plan.md** 保持任务聚焦,追踪进度 - **notes.md** 记录技术调研和决策过程 - **dark_mode_implementation.md** 提供完整的实现文档 即使任务中断,AI也可以通过读取这些文件快速恢复上下文,继续工作。 ## 十一、批判性思考:这个方法的局限性 Planning with Files很强大,但不是万能的。 ### 不是银弹 不适合的场景: **1. 实时交互** 场景:聊天机器人、客服系统 问题:每次都读写文件会增加延迟 解决:这类场景用传统对话模式更好 **2. 高度并发** 场景:同时处理1000个独立任务 问题:文件系统可能成为瓶颈 解决:需要更专业的状态管理系统 **3. 极简任务** 场景:"2+2等于几?" 问题:创建文件的开销大于任务本身 解决:直接回答,不要过度工程化 ### 文件系统的限制 文件系统虽然通用,但有其局限: - **并发控制**:多个进程同时写入同一文件可能冲突。需要额外的锁机制。 - **搜索效率**:文件系统不是为复杂查询设计的。如果需要"找出所有包含某个错误的任务",需要遍历所有文件。 - **结构化查询**:Markdown是半结构化的,不如数据库易于查询和分析。 解决方案:对于需要这些特性的场景,可以考虑: - 文件 + 数据库混合方案 - 定期将文件内容索引到数据库 - 使用更结构化的格式(如YAML front matter) ## 十二、未来展望:这只是开始 ### 上下文工程的黄金时代 Manus的成功只是开始。上下文工程将成为一个新的专业领域: 可能出现的职位: - 上下文工程师(Context Engineer) - AI工作流架构师(AI Workflow Architect) - 提示优化专家(Prompt Optimization Specialist) 核心技能: - 理解AI模型的注意力机制 - 设计高效的信息组织方式 - 优化token使用和成本 - 构建可观测的AI系统 ### 工具和平台的机会 基于Planning with Files的理念,可能出现: 1. **可视化工具** - 将task_plan.md渲染为甘特图 - 实时显示AI的执行进度 - 可视化决策树和错误恢复路径 2. **协作平台** - 多个AI代理共享文件系统 - 人类和AI在同一个"工作空间"协作 - 版本控制和冲突解决 3. **分析工具** - 分析所有项目的task_plan.md - 识别常见模式和最佳实践 - 预测任务完成时间 - 优化任务分解策略 4. **集成开发环境** - IDE原生支持Planning with Files - 自动创建和更新计划文件 - 内联显示AI的思考过程 - 一键恢复中断的任务 ### 标准化的可能 随着这种模式的普及,可能出现标准化: **任务计划标准(Task Plan Standard):** ```yaml --- version: 1.0 task_id: unique-id created: 2025-01-07 status: in_progress --- # Task Plan: [Title] ... ``` 互操作性:不同的AI系统可以读取和继续彼此的任务。 生态系统:围绕这个标准,形成工具、库、最佳实践的生态系统。 ## 十三、结语:简单的智慧,深刻的影响 让我们回到文章开头的问题: > "当你的AI助手在执行第50个操作时突然忘记了最初的目标,你会怎么办?" 现在我们有了答案:让它学会记笔记。 这个答案简单得几乎让人失望。没有复杂的算法,没有昂贵的基础设施,没有专有技术。只是三个Markdown文件和一个简单的工作流。 但正是这种简单,让它价值20亿美元。 ### 技术的本质 Manus和Planning with Files的故事提醒我们: 技术的价值不在于复杂度,而在于解决问题的有效性。 最好的解决方案往往是: - 简单到任何人都能理解 - 可靠到可以大规模使用 - 灵活到可以适应各种场景 - 持久到可以长期依赖 Planning with Files满足所有这些标准。 ### 开源的力量 Ahmad Othman Ammar Adi本可以把这个技能商业化,收费销售。但他选择了开源。 这个选择让: - 数千名开发者受益 - 社区贡献了改进和变体 - 知识得以快速传播 - 整个行业向前推进 这就是开源的力量:一个人的洞察,变成了所有人的财富。 ### 你的机会 如果你读到这里,你已经掌握了价值20亿美元的智慧。 现在的问题是:你会如何使用它? - 提升自己的工作效率? - 改进团队的协作方式? - 创建新的工具和服务? - 探索新的应用场景? 机会就在眼前。Planning with Files不是终点,而是起点。 ### 最后的思考 在AI快速发展的时代,我们容易被新模型、新功能、新概念淹没。 但Manus的成功告诉我们:**有时候,最大的突破不是发明新东西,而是更好地使用已有的东西。** Planning with Files就是这样一个突破。它没有改变AI模型,只是改变了我们使用AI的方式。 这个改变,价值20亿美元。 更重要的是,这个改变现在属于每一个人。 --- **Less structure, more intelligence.** ——Manus AI