"Bash is All You Need" — 探究自主编程 Agent 的极简主义革命
ChatGPT 刚出现时,开发者手动复制代码,来回粘贴。这是最原始的交互。
VS Code 的 fork 版本,引入 `Cmd+K`。最初体验一般,但开启了 IDE 集成的先河。
引入 Agent 概念,多文件编辑,速度极快。
无头模式,彻底的自主性。 不再是辅助写代码,而是接管终端,自主循环。
Claude Code 之所以现在能成功,是因为它放弃了早期 Agent 复杂的“过度工程化”,回归了最简单的设计:
没有复杂的向量库,没有复杂的检索链,只有简单的工具循环。
极简记忆库:
不再使用复杂的向量数据库来“理解”代码库。直接使用一个 Markdown 文件记录项目指令。
优势: 用户和 Agent 都可以读写,透明、简单、有效。
核心代码可能只有4行:
While tool_calls:
1. 运行工具
2. 获取结果
3. 喂回模型
4. 重复
依赖模型自我纠错能力,而不是复杂的条件判断分支。
不需要为每个操作发明新工具。
为什么? 训练数据丰富(GitHub 上无数的 Shell 脚本)。
能力: 它可以运行测试、Git 操作、文件管理、环境配置。它是连接一切的胶水。
不重写整个文件。生成 Diff 片段。节省 Token,速度更快,大幅减少幻觉(因为不需要重写未修改的部分)。
放弃 RAG (检索增强生成)。直接使用传统的文件搜索工具。在代码库导航中,Grep 往往比向量相似度搜索更精准。
读取文件内容。配合 Context Compression 使用。
为了防止上下文污染,将任务分叉给子 Agent。
定义: 不是代码强制的,而是通过 System Prompt 注入的结构化文本。
作用:
1. 强制模型规划。
2. 崩溃恢复: 如果 Agent 崩溃,重启后读取 To-Do 列表即可知道进度。
3. 改善 UX,让用户知道 Agent 在干什么。
问题: 上下文越长,模型越笨。
方案: 对于“研究”、“阅读文档”、“运行测试”等任务,启动一个全新的 Agent(Task)。
关键点: 子 Agent 跑完后,只返回最终结果给主 Agent,中间过程的噪音直接丢弃,保持主上下文干净。
当输出(如大量 Log)填满上下文(如达到 92%)时,自动触发压缩。
策略: 保留头部和尾部,概括或丢弃中间部分。确保持续运行而不爆显存/Token。
类似于插件。例如“深度研究”、“Office文档处理”、“特定代码风格”。
只有在需要时才加载进上下文,避免通用 Prompt 过于臃肿。
Jared 认为没有一种“最好的”架构,就像没有最好的心理治疗师一样(AI Therapist Problem)。不同的场景需要不同的设计。
Rust Core | Event Driven
特点: 开源,强调内核级的沙盒(Linux Land / Seatbelt)。架构上更偏向事件驱动和并发线程。适合研究和极客。
UI First | Speed | Distilled Models
特点: 极致的速度。使用特定微调(Fine-tuning)的小模型(蒸馏模型)来实现低延迟。利用用户数据建立了强大的护城河。适合日常高频编码。
Context Handoff | Model Switching
特点:
1. 模型切换: 可以在 Fast, Smart, Oracle (推理模型) 之间切换。
2. Context Handoff (交接): 就像游戏中“切换武器比换弹夹快”。通过开启新线程并将必要上下文交接过去,来规避上下文过长的问题。
CLI First | Human-like
特点: 最像人类开发者的行为(使用 Bash, Git, Diff)。适合处理环境配置、大型重构、跨文件依赖等复杂任务。
基准测试(Benchmarks)大多已沦为营销工具,意义不大。
推荐方案: