CS146S 学习笔记(Week 4-8):从智能体管理者到多栈 AI 构建

CS146S 学习笔记(Week 4-8):从智能体管理者到多栈 AI 构建

本文是 CS146S(斯坦福《现代软件开发者》)Week 4-8 的完整学习笔记,覆盖:智能体管理与 Claude Code 方法论(W4)→ 现代 AI 开发工具产品原则(W5)→ AI 测试与安全(W6)→ AI 代码审查(W7)→ 多栈 AI 应用构建(W8)。

一条主线串起来:W4 教你当 agent 管理者 → W5 教你好的 AI 工具长什么样 → W6 警示 AI 写码后的安全护栏 → W7 验证 AI 审查可不可信 → W8 放飞用 AI 构建多栈应用。


一、Week 4:编码智能体模式(Agent Patterns)

本周为 Boris Cherny(Claude Code 创建者)的两场讲座:浓缩版「How to be an Agent Manager」+ 完整版「Welcome to Claude Code」。⚠️ 仓库 PDF 有坑:4_1 文件名标为 Silas Alberti,内容实为 Boris Cherny。

1.1 How to be an Agent Manager(如何当智能体管理者)

核心转变——开发演进的四个阶段:

单开发者管理自己产出 → Lead 管理多人产出 → Lead 管理多人+AI辅助 → 单开发者管理一群AI agent

最终形态:你从「写代码的人」变成「agent 的产品经理」。

任务分工(谁做什么):

步骤 谁做
提供高层需求 🟩 人类
需求转成设计文档 🟩 人类 / 🟦 agent
按文档实现 + 加测试 + 跑 CI + code review + 更新文档 🟦 Agent

指挥 agent 的四大技术:

  1. Agent 行为文件:CLAUDE.md / .cursorrules / AGENTS.md(告诉 agent 仓库规矩)
  2. Hooks:确定性脚本,挂到特定事件(PreToolUse / PostToolUse / UserPromptSubmit / PreCompact)
  3. Commands:把常用 prompt 存成可执行命令(跑测试、审查代码、git commit/push)
  4. Subagents:运行时委派,给不同工作流独立人格/工具集/上下文窗口——「agent 管理 agent」的方向

管理者 Best Practices:

  • 需要兜底(backstops):仓库测试 + CI/CD 规范
  • 可审计性:每个 agent 产生的 diff 都要标注来源
  • 不同难度任务用不同模型;复杂任务多 handhold、简单任务全异步
  • 频繁 checkpoint commit

开放问题:怎么自动化任务前 10-20% 的「研究阶段」?怎么维护待办任务队列?

1.2 Welcome to Claude Code(Boris 完整版)

tl;dr:① 编程正在改变 ② 用 Claude Code 选你的路 ③ 想六个月后的未来。

宏观判断:编程语言生产率指数增长(FORTRAN→C→Python→TS→Go/Rust),IDE 生产率同样指数增长(ed→Eclipse→Copilot→Devin→Claude Code)。验证技术也在快速演化:手动调试 → 静态类型 → 自动化测试 → CI → property-based testing → e2e → chaos testing → AI 漏洞测试 / AI 单测 / AI fuzz / self-play。

Claude Code 的方法:终端原生(terminal-native)、低层模型访问、无限可 hack(npm i -g @anthropic-ai/claude-code)。

一个核心,五种形态:

terminal ⊂ IDE ⊂ Web & iOS ⊂ GitHub App ⊂ SDK(claude -p 可编程管道)

SDK 形态能组成 Unix 管道,如:

get-gcp-logs 1uhd832d | claude -p "correlate errors + commits" --output-format=json | jq '.result'

四大使用场景:

  1. 代码库 Q&A + 研究:翻 git 历史回答「为什么修了 #18363」这类问题
  2. 写代码:1-shot / sidekick(结对)/ prototype(原型)
  3. 集成工具与 MCP:claude mcp add barley_server -- node myserver
  4. 自动化:把 agent 嵌入数据管道

核心方法论——让工作流适配任务:

  • 复杂任务:explore → plan → confirm → code → commit(先调研,让用户选方案再动手)
  • 测试先行:tests → commit → code → iterate → commit
  • 前端:code → screenshot → iterate(对着截图迭代到像为止)

给 AI 产品人的三条教训:

  1. 为六个月后的模型而构建——别按今天模型的局限设计产品
  2. 随时准备进化
  3. 别问模型能为你做什么——问你能为模型/生态做什么

二、Week 5:现代终端(Zach Lloyd / Warp CEO)

主题「Building a Breakout AI Developer Product」——7 条现代 AI 开发工具产品原则:

# 原则 要点
1 从开发者已知的出发 IDE 心智→Cursor、终端→Warp、聊天→Bolt;代码与自然语言随时切换
2 配置灵活性 普通用户零配置开箱即用;熟练用户深度可配(prompts/project rules/MCP);模型无缝切换
3 开发者人体工学 能省一次击键就省;零上手摩擦(「5 分钟震撼」)
4 Chat 是一等公民 代码是意图的别扭表达,未来更多直接说自然语言
5 MCP 集成 MCP = LLM 与现实世界的通用语
6 快速反馈回路 面板/仪表盘随 prompt 近实时变化;可解释性是一等公民
7 Agent 工作流 实质任务全自主;人类介入度可调(agent 问澄清 → YOLO)

开放问题:code review/app 构建/监控等点方案会不会整合成 all-in-one?AI IDE → AI 终端 → AI 浏览器怎么演进?个性化 agent 规则的统一标准是什么——AGENTS.md 是第一步,不会长期停留在 .cursorrules/CLAUDE.md 各自为政。


三、Week 6:AI 测试与安全(Isaac Evans / Semgrep CEO)

为什么:当 LLM 写你大部分代码时,需要大量护栏。软件错误 = 用户信任崩塌 + 巨额成本。

三大漏洞检测技术(本课核心概念):

  SAST DAST SCA
全称 静态应用安全测试 动态应用安全测试 软件成分分析
视角 🟦 白盒 ⬛ 黑盒 📦 依赖分析
时机 SDLC 早期 SDLC 全程 持续
手段 源码/二进制模式匹配 fuzzing、会话 token 操纵、header 测试、暴力速率限制 包元数据、传递依赖、漏洞库匹配、工件扫描
特点 便宜、发现早、误报高 模拟真实黑客、误报低 管开源依赖

AI 的双刃剑:

  • 坏(新攻击向量):详见下文专节
  • 好:「Shift left」更易落地——LLM 进工作流发现问题、自动化渗透测试

3.2 AI Agent 的新型攻击向量(讲座重点)

随着 AI Agent(Copilot / Cursor / 各类 Coding Agent)获得执行代码、调用工具、读写文件的权限,攻击面发生了质变。五个核心攻击向量:

① Prompt Injection(提示注入)

  • 定义:向生成式 AI 系统输入隐藏或误导性指令,使其偏离预期行为
  • 本质:利用 AI 对输入文本的「无条件信任」
  • 案例:攻击者在代码注释、文档、网页中嵌入隐藏指令,当 AI Agent 读取这些内容时,就会执行攻击者想要的操作

② Tool Misuse(工具滥用)

  • 定义:通过欺骗性提示操纵 Agent,使其滥用已集成的工具
  • 案例(讲座截图):攻击者在源码中注入提示 → Agent 被诱导修改 settings.json → 添加一个恶意的 MCP 服务器配置 → 系统立即启动该 MCP 服务器——相当于在用户机器上打开了后门
  • MCP 补充:Model Context Protocol 是 Anthropic 提出的开放标准,让 AI 模型安全连接外部工具和数据源。但如果 Agent 能随意修改 MCP 配置,它就变成了攻击通道

③ Intent Breaking(意图破坏)

  • 定义:操纵 Agent 的执行计划,把行动从原始目标上转移
  • 场景:用户让 Agent「优化代码」,攻击者通过注入让 Agent 实际执行「删除日志文件」或「把敏感数据发送到外部」

④ Identity Spoofing(身份伪造)

  • 定义:利用被攻破的认证机制,伪装成合法 Agent
  • 风险:多个 Agent 互相调用时,一个被攻破的 Agent 可以冒充合法身份向其他系统发出恶意请求

⑤ Code Attacks(代码攻击)

  • 定义:利用 Agent 执行代码的能力,获取执行环境的未授权访问
  • 本质:Agent 通常有代码执行权限(跑测试、构建项目),攻击者诱导其执行恶意代码
  • 案例:诱导 Agent 运行 os.system('open -a Calculator') 或更危险的系统命令

3.3 AI 用于安全的局限性(Semgrep 的诚实反思)

讲座坦诚指出当前用 LLM 做安全检测(AI SAST)的问题:

局限性 详细说明
极高的误报率 Claude Code / Codex 等工具在某些漏洞上误报率可达 50-100%;传统 SAST 已经是 50%+,AI 并没有明显更好
基准测试不切实际 现有评测基准往往过于简单或脱离真实代码库,难以评估 LLM 真实能力
非确定性分析(Nondeterministic) 同一提示运行多次结果不同——你无法确定是否漏掉了漏洞
上下文衰减(Context Rot) 并非所有上下文对 AI 同等重要,AI 可能忽略关键的安全相关代码
压缩问题(Compaction) 为塞进上下文窗口,代码被摘要/压缩,导致安全细节丢失

开放问题:怎么降误报幻觉?怎么验证 LLM 补丁安全且不引入回归?AI 应该解释为什么 flag 吗?正确基准是什么?AI 补丁引入漏洞,谁负责?


四、Week 7:现代软件支持(AI 代码审查)

💡 本地无 PDF,主题聚焦 Code Review,作业基于 Graphite。

课程主题:我们能信任哪些 AI 代码系统 / 调试与诊断 / 智能文档生成。

作业:「Exploring AI Code Review Using Graphite」

  1. 在更复杂的 full-stack 代码库上,用 AI 工具 1-shot 实现 TASKS.md 的任务
  2. 每任务一个分支 → 人工逐行审查(可结对互审)→ 开 PR(含问题描述/测试记录/权衡取舍)
  3. 用 Graphite Diamond 生成 AI 审查,在 writeup 里对比「你的评论 vs AI 评论」
  4. 反思:AI review 何时比人强/弱?今后对 AI 审查的信任阈值?

配套:Graphite 30 天试用,教育计划码 CS146S。

阅读材料体系(理解 AI 审查的完整视角):

  • 为什么必须做 code review(业界经典帖)
  • GitHub 员工视角的审查哲学
  • AI 辅助审查的实证研究(arxiv)
  • AI 代码审查落地最佳实践(Graphite):AI review ≠ 静态分析器——能理解上下文、提建议、甚至生成修复;收益 = 效率 / 一致性 / 知识共享 / 降低认知负荷 / 持续改进;流程 = 选工具 → 配置 → 跑起来 → 衡量
  • 数百万次 AI review 的经验谈(YouTube)

五、Week 8:自动化 UI 和应用程序构建

💡 本地无 PDF 也无阅读材料清单,作业是唯一锚点。

主题:面向所有人的设计和前端开发 / 用 prompt 快速做 UI/UX 原型迭代。

作业:「Multi-Stack AI-Accelerated Web App Build」

同一个功能应用用 3 个不同技术栈各做一版,端到端可用(前端+后端+持久化):

  • 硬性要求:
    • 至少一版用 bolt.new(AI 应用生成平台,课程发 3 个月 Pro 码)
    • 至少一版前端或后端用非 JS 语言(Django / Rails)
  • 最低功能范围:CRUD 一个主资源 + 持久化存储 + 基本校验/错误处理 + 可用的简单 UI + 运行说明
  • 交付:3 个独立项目文件夹(源码 + README + 生成后偏差/手工修复记录)+ writeup(应用概念 + 3 版描述)

Bolt 使用提示:从干净 prompt 描述应用概念/实体/路由/UI 流开始;在 prompt 里写清数据模型和关系;迭代式细化 CRUD/auth/前端组件 prompt;每版保持隔离防依赖冲突;生成代码导出提交为独立项目。


六、一页速查表

W4 智能体管理 ── 你 = agent 的产品经理
  ├─ 指挥技术: 行为文件 / Hooks / Commands / Subagents
  ├─ Claude Code 方法论: explore→plan→confirm→code→commit; 测试先行; screenshot 迭代
  └─ 产品教训: 为六个月后的模型构建; 随时进化; 问你能为模型做什么

W5 7 条产品原则 ── 已知界面出发 / 零配置开箱+深度可配 / 人体工学 / Chat 一等公民
                       / MCP 通用语 / 快速反馈回路 / Agent 工作流

W6 测试与安全 ── SAST(白盒早) / DAST(黑盒黑客) / SCA(依赖成分)
  └─ AI 新威胁: Prompt injection / Tool misuse / Intent breaking / Identity spoofing / Code attacks

W7 AI 代码审查 ── 1-shot 实现 → 人工逐行审 → PR → AI 审查对比
  └─ 信任问题: AI 何时比人强? 误报/非确定性/context rot 是软肋

W8 多栈构建 ── 同一应用 × 3 栈(bolt.new 一版 + 非 JS 一版)
  └─ 核心: 数据模型写进 prompt, 迭代细化, 隔离分版

一句话总结:从本周开始,你的角色正式从「写代码的人」变成「管理 agent 的人」——W4 给你指挥方法,W5 给你产品眼光,W6 给你安全护栏,W7 教你别盲信 AI 输出,W8 让你体验「一句话生成整个应用」然后亲手修补它。




Enjoy Reading This Article?

Here are some more articles you might like to read next: