构建可靠智能体最难的部分是"上下文工程"。Karpathy 把这定义为"在上下文窗口中填入恰好合适信息的精妙艺术与科学"。智能体失败通常有两个原因:模型不够好,或者拿不到正确的上下文。 LangChain 团队Nick Huang 在技术博客中分享了他们的解决方案:让智能体用文件系统管理自己的状态。传统做法是把指令、行动、观察全堆在上下文里,像图左侧那样混乱。正确做法如右侧,用文件系统明确标记每个元素的关联。
现在智能体的上下文问题
现代智能体工程师的工作其实就是上下文工程。智能体能 访问 大量信息(文档、代码等),但回答问题时只 需要 部分关键信息,实际操作中会 检索 一些内容放入窗口。
理想状态是检索到的内容刚好覆盖需要的信息,不多不少。但现实中经常出问题:
- 需要的信息根本不在数据库里(客服智能体需要某个文档,但文档没被索引)
- 信息存在但检索不到(文档已索引,智能体就是找不到)
- 检索范围过大(需要一页内容,拿回100页)
LangChain 总结了四个核心挑战。
挑战一:Token 爆炸
网页搜索返回1万个 token,全塞进对话历史。几次搜索下来,上下文窗口被塞满,API 账单暴涨,模型性能下降。还没等到400错误,钱包先空了。
挑战二:信息量超载
有些问题确实需要大量背景信息才能回答。单次搜索搞不定,只能让智能体反复搜索。结果就是上下文越来越多,最终超出窗口限制。
挑战三:找不到细分信息
关键信息可能埋在成百上千个文件里。语义搜索在技术文档、API 参考这类缺乏语义信息的内容上经常失效。怎么可靠地找到这些信息?
挑战四:无法学习进化
智能体经常因为缺少关键上下文而答错。用户在交互中会给出线索,但智能体记不住,下次还是犯同样错误。
文件系统的解决方案
LangChain 团队给出的核心答案很简单:文件系统给智能体提供了一个统一接口,让它能灵活存储、检索和更新无限量的上下文。
解决 Token 爆炸
不把工具调用结果全放在对话历史里,而是写入文件系统,智能体按需搜索关键词,只读必要内容。Manus 团队最早提出这个思路《AI智能体的上下文工程:Manus的构建心得》。
比如网页搜索返回1万个 token,大部分内容平时用不到。传统做法是全部放入消息历史,整个对话期间都占用空间。新做法是存到文件系统,智能体需要时用 grep 搜索关键词,只把相关部分读入上下文。
文件系统变成了"大上下文的草稿本"。
解决信息量超载
文件系统让智能体能动态管理大量信息:
- 长期任务需要制定计划。把计划写入文件,后续拉回来提醒自己该做什么
- 多个子智能体协作时,各自把学习成果写入文件,避免"传话游戏"式的信息损失
- 复杂指令不用全塞进系统提示,存成文件按需读取
Anthropic 的技能系统就是这样设计的。
解决细分信息查找
文件系统的 ls、glob、grep 工具在某些场景比语义搜索更有效。Claude Code 就大量使用这些工具。
LangChain 分析了几个关键原因:
- 现在的模型专门训练过文件操作
- 信息本身有目录结构
- glob 和 grep 能精确定位到特定行和字符
read_file工具支持指定读取范围
当然,语义搜索还是有用的。Cursor 团队发现两者结合效果最好。
解决学习进化问题
最有意思的是这个:智能体可以把自己的指令当成普通文件处理。
传统流程是:发现智能体缺指令 → 专家提供指令 → 手动更新提示。但用户往往就是最好的专家,他们在对话中会透露重要线索。
LangChain 的新思路是让智能体收到用户反馈后,立即更新自己的指令文件。记住用户姓名、邮箱、偏好这些个性化信息,下次就能提供更好的服务。
这还是个新兴模式,但很有前景。智能体能自己成长,随时间积累更多技能。
LangChain 的实践成果
Deep Agents、Manus、Claude Code 都采用了这种设计。有开发者试过用 Redis 管理上下文,发现文件系统抽象更直观,调试时能直接查看状态。
部分团队在探索基于 git 的工具链。版本控制天然适合追踪智能体状态变化,就像管理代码一样。这可能成为下一代智能体开发的标准做法。(小编在后面文章介绍,欢迎关注后续)
LangChain 开源了 Deep Agents 项目(Python 和 TypeScript 版本都有),内置了这些文件系统技巧。团队表示,更多使用模式还在涌现,欢迎开发者试用反馈。
文件系统解决的核心是规模问题。与其手动调提示词,不如让智能体自己管理目录结构。上下文工程变成可观测、可调试的具体操作后,智能体可靠性会显著提升。
这个思路很值得借鉴,放眼整个系统设计,在分布式系统进化历程中利用文件通信和计算也是一个里程碑。把抽象的上下文管理变成具体的文件操作,智能体和人类都更容易理解。
参考:
https://blog.langchain.com/how-agents-can-use-filesystems-for-context-engineering/
https://docs.langchain.com/oss/python/deepagents/overview
关注公众号回复“进群”入群讨论。
