这周和 Week 4 的目标相似——构建开发自动化,但换了一个工具:Warp。你会发现不同的 AI 开发环境有不同的优势,关键是理解底层思路而非绑定某个工具。
如果你做完 Week 4 觉得"我已经掌握了 AI 辅助自动化的核心思路",那这周可以快速浏览。但如果你对"多代理协作"这个概念好奇,这周有一些独特的内容值得深入。
可以把 Week 4 和 Week 5 想成"用不同品牌的厨房设备做同一道菜"。核心理念(自动化、AI 协作)是一样的,但具体操作方式不同。这种对比本身就是一种学习——让你理解哪些是"通用能力",哪些是"工具特有功能"。
通用能力的例子:
- 把重复操作封装成可复用的流程
- 用自然语言描述任务,让 AI 执行
- 在开发流程中集成自动检查
工具特有功能的例子:
- Claude Code 的
/命令和 CLAUDE.md 配置 - Warp 的 Warp Drive 和多标签页代理
认识到这个区别很重要。当你换工具时,通用能力可以直接迁移,而工具特有功能需要重新学习。
Warp 是一个现代化的终端(Terminal)应用,内置 AI 功能。相比传统终端(黑色窗口敲命令),Warp 提供了:
- 内置的 AI 对话能力:不需要额外安装插件,直接在终端中和 AI 对话
- Warp Drive:保存和共享提示(Prompts)、规则(Rules)、工作流(Workflows)。可以理解为"终端版的书签和模板库"
- 多标签页/多代理:可以在不同的标签页中同时运行不同的 AI 代理(Agent),每个代理处理不同的任务
简单来说,如果 Claude Code 是"在终端里加了一个 AI 助手",那 Warp 是"把整个终端重新设计,让 AI 成为原生体验的一部分"。
这是这周最有价值的概念,即使你不打算长期使用 Warp,这个思路也值得理解。
想象一个团队在同时工作:一个人在写代码,一个人在写测试,一个人在更新文档。他们各自独立工作,最后合并成果。
在 Warp 中,你可以在不同的终端标签页中启动不同的 AI 代理,让它们同时处理不同的任务。比如:
- 标签页 1:AI 代理 A 在实现一个新功能
- 标签页 2:AI 代理 B 在给现有代码写测试
- 标签页 3:AI 代理 C 在更新 API 文档
这比一个 AI 代理串行处理所有任务要快得多。
多代理并行工作听起来很美,但有一个实际问题:如果两个代理同时修改同一个文件怎么办?
这就像两个人同时编辑同一个 Google Doc 的同一段话——结果不可预测。
解决思路有几种:
- 任务隔离:确保不同的代理处理不同的文件,避免冲突
- 顺序依赖:先让代理 A 完成,再让代理 B 基于 A 的成果工作
- git worktree:给每个代理一个独立的工作目录副本(下面详细说)
git worktree 是 Git 提供的一个功能,允许你从同一个仓库创建多个工作目录。每个工作目录可以在不同的分支上工作,而且它们共享同一个 Git 历史。
举个例子,假设你的项目在 /projects/my-app:
# 创建一个新的工作目录,基于新分支 feature-a
git worktree add ../my-app-feature-a -b feature-a
# 创建另一个工作目录,基于新分支 feature-b
git worktree add ../my-app-feature-b -b feature-b现在你有三个目录:
/projects/my-app— 主工作目录/projects/my-app-feature-a— 代理 A 在这里工作/projects/my-app-feature-b— 代理 B 在这里工作
每个代理在自己的目录里随便改,不会影响其他代理。最后通过 Git 的合并(merge)功能把成果整合到一起。
这就是多代理协作中避免冲突的"物理隔离"方案。
原始作业(assignment.md)要求你完成两个部分:
Warp Drive 是 Warp 的特色功能之一,你可以用它来:
- 保存常用的提示(Prompts),下次直接调用
- 设置规则(Rules),让 AI 按照你的偏好工作
- 集成 MCP 服务器(Model Context Protocol),扩展 AI 的能力
这和 Week 4 中你在 Claude Code 里设置 CLAUDE.md、创建自定义命令的思路是一样的——都是在"教 AI 按照你的方式工作"。
这是这周的重头戏。你需要:
- 设计一个可以拆分的任务(比如"给这个项目添加一个功能 + 写测试 + 更新文档")
- 在 Warp 的多个标签页中启动不同的代理
- 让它们同时工作
- 处理可能出现的冲突
- 合并最终成果
做这个任务时,重点不是最终产出物有多精美,而是体会多代理协作的过程——哪些环节顺畅,哪些地方需要人类干预。
从 warp.dev 下载并安装 Warp。
推荐先浏览 Warp University,了解 Warp 的核心功能和使用方式。
和 Week 4 一样,本周也有一个配套的练习应用。启动步骤:
# 激活 conda 环境
conda activate cs146s
# (可选)安装 pre-commit hooks
pre-commit install
# 从 week5/ 目录启动应用
make run启动后访问 http://localhost:8000 查看前端,http://localhost:8000/docs 查看 API 文档。
backend/ # FastAPI 后端应用
frontend/ # 静态前端(由 FastAPI 托管)
data/ # SQLite 数据库 + 种子数据
docs/ # 代理驱动工作流的任务列表(TASKS.md)
先花几分钟浏览应用的现有功能,熟悉项目结构后再开始做任务。
创建可共享的 Warp Drive 提示(Prompt)、规则(Rule)或 MCP 服务器集成。示例方向:
- 测试运行器:运行测试并显示覆盖率(Coverage),自动重试不稳定的测试(Flaky Test)
- 文档同步:从
/openapi.json生成或更新docs/API.md,列出路由变化 - 重构工具:重命名模块(Module),自动更新导入(Import),运行 lint 和测试验证
- 发布助手:更新版本号(Version Bump),运行检查,生成变更日志(Changelog)
- 集成 Git MCP 服务器:让 Warp 自主操作 Git(创建分支、提交、生成 PR 说明等)
建议:保持工作流聚焦,使用参数传递(而非硬编码),保持幂等性(Idempotent),优先使用非交互式步骤。
在 Warp 的不同标签页(Tab)中运行多个代理(Agent),同时处理不同的独立任务:
- 从
week5/docs/TASKS.md中选择多个任务 - 在不同的 Warp 标签页中启动并发代理
- 挑战:你能同时运行多少个代理?
- 提示:
git worktree可以帮助避免代理之间的文件冲突(参见上文 "git worktree 简介")
用你在 Part A 和 Part B 中构建的自动化来改进工作流程。记录每个自动化解决了什么痛点(Pain Point)或加速了什么过程。
注意:所有工作限制在 week5/ 目录内(backend, frontend, logic, tests)。
- 理解 Warp 和其他 AI 开发工具(如 Claude Code)的异同
- 成功创建了至少一个 Warp 自动化(保存的提示、规则或工作流)
- 体验了多代理同时工作的场景
- 理解多代理协作中的冲突问题和解决思路(如 git worktree)
- 能说出"工具不同但方法论相同"的具体例子