第 3 课 · 现代软件开发者(斯坦福 CS146S)
The AI IDE
本篇听书与视频
AI IDE:从补全到规格文档,再到同步与异步智能体
第三周讲 AI IDE。讲师先简要回顾了 IDE 的历史:1983 年的 Turbo Pascal、1997 年的 Visual Studio、2001 年的 IntelliJ IDEA、2015 年的 VS Code,到 2023 年的 Cursor。他认为这一路始终在“把功能集中到一个平台”和“让高手自由定制”之间来回摇摆。本周的重点是怎样在 IDE 里给智能体最好的上下文。周五由 Cognition 的 Silas Alberti 做嘉宾讲座,讲同步和异步智能体怎么分工。
学习目标
- 了解 AI IDE 里补全、聊天、智能体几种模式的内部原理和适用范围。
- 能按课上的模板写一份给智能体看的规格文档。
- 知道怎样整理代码库,让人和智能体都能读懂,包括 CLAUDE.md、AGENTS.md、llms.txt 的用途。
- 理解同步和异步两类工具的区别,以及“半异步”区间为什么要避开。
核心概念
按任务复杂度选用不同模式。 以 Cursor 为例:Tab 负责行内补全,Cmd-K 处理几行代码或一个简单问题,Cmd-L 处理跨文件任务。更进一步的“AI 原生”能力包括后台智能体、MCP、记忆,以及做 PR 审查的 Bugbot。
IDE 内部的两套机制。 Tab 补全会把光标附近一小段代码加密后发到服务器,由专门做填空的模型给出建议。聊天模式则把代码切块,生成向量后存进服务器上的语义索引(文件名经过混淆),每次提问检索最相关的代码块放进上下文。IDE 会定期重新建立索引,用 Merkle 树计算哪些代码块变了,只同步变化的部分。
复杂任务要像产品经理一样写规格文档。 简单改动不必在提示词上花太多心思,复杂任务则需要一份认真写的规格文档。课上给出的模板包括:目标(改动的目的)、术语定义(模型需要先知道的背景)、计划(高层实现拆解)、涉及的源文件(哪些部分相关、为什么相关)、测试方案、边界情况、明确不改的范围,以及将来的扩展方向,好让模型提前为后续需求留余地、不走捷径。
代码库的整洁程度直接影响智能体的表现。 模型犯糊涂,很多时候是因为它拿着一个混乱的代码库当上下文。混乱可以很简单:同一个数据库有好几种访问方式、命名风格不统一、好几个函数做同一件事。应对办法是把仓库导览、目录结构、环境配置、代码风格、访问模式、接口契约都写成文档,课上还鼓励采用单仓(monorepo)结构。另外可以用配置文件给智能体指路:CLAUDE.md 会在 Claude Code 每次开始对话时自动读入,适合写常用命令、核心文件和测试方法;AGENTS.md 是开放格式,专门写给智能体看,把构建、测试、规范这些会让 README 变得臃肿的内容单独存放;llms.txt 则面向抓取网页的模型。要注意的是,智能体不一定会严格遵守这些文件,它们只是指引。
同步与异步(嘉宾讲座)。 Silas Alberti 把 AI 编程工具分成三代:GitHub Copilot 式的代码补全、AI IDE 里的单人任务自动化、在云端并行工作的 AI 软件工程师。前两代在本地同步工作,人一次专注一件事,智能体每次跑 20 秒到一分半;第三代在云端异步工作,人把任务委派出去后切换去做别的事,智能体一次跑十几分钟到几个小时。他特别提醒要避开“半异步”区间:一次等几分钟,长到打断你的专注,又短到不值得切换去做别的事。所以要么把工具做快,保住专注;要么用更多时间换更高的智能。他介绍的常见做法是:异步智能体负责写代码,人在 IDE 里同步测试和打磨,计划阶段则借助 DeepWiki、Codemaps 这类代码库问答工具。
实践步骤
第三周的作业是做一个包装真实外部 API 的 MCP Server:
- 选一个外部 API(天气、GitHub Issues、Notion、影视数据库、日历、任务管理等都可以),写清楚会用到哪些接口。
- 至少暴露两个工具,参数要有类型,错误处理要稳健。
- 处理好 HTTP 失败、超时和空结果;遵守限流,可以做简单的退避重试或给用户提示。
- 选一种部署方式:本地 stdio(可以被 Claude Desktop 或 Cursor 发现),或者远程 HTTP(难度更高,有加分)。用 stdio 时,日志不能写到 stdout。
- 写好 README:环境准备、环境变量、启动命令、客户端配置方法,以及每个工具的参数和输入输出示例。
- 可选加分项:实现 API Key 或 OAuth2 鉴权。远程部署时要校验 token 的受众(audience),而且不能把 token 转发给上游 API。
常见误区
- 复杂任务也只丢一句话给模型。 规格文档写得越清楚,返工越少。尤其要写明“不要改什么”,这一项最容易被漏掉。
- 把配置文件当作强约束。 CLAUDE.md、AGENTS.md 只是指引,关键规则还得靠测试和检查来兜底。
- 长期停留在半异步区间。 一直盯着一个跑五分钟的任务等结果,既保不住专注,也没把时间用到别处。
动手练习
挑一个你手头正要做的中等规模改动,按课上的八项模板写一份规格文档,再交给你常用的 AI IDE 执行。完成后回顾:哪些返工是因为文档里没写清楚?把这些经验补进项目的 AGENTS.md 或 CLAUDE.md。
要点回顾
AI IDE 的能力上限,由你给它的上下文决定:一是规格文档,二是代码库本身的整洁程度。在工具选择上,同步工具用来解决最难的问题,异步工具用来放大产能。按嘉宾的说法,未来更值钱的能力是委派和多线程工作、读代码,以及规划和架构。
参考来源
- CS146S Fall 2025 课程大纲(Week 3):themodernsoftware.dev/fall2025,核验日期:2026-10-23。
- 讲义幻灯片:The AI IDE: Fundamentals to Power User(Google Slides);嘉宾讲座 Silas Alberti《IDE ❤️ Agents》(Google Slides)。
- 作业 Week 3 — Build a Custom MCP Server:week3/assignment.md。