@mattpocockuk: 这段视频的观看时长已达 96,000 小时 相当于超过十年 有时候我仍然觉得难以置信
摘要
Matt Pocock argues that effective AI-assisted development requires respecting LLM limitations, specifically the 'intelligence zone' and amnesiac context windows, advocating for small tasks and clear system prompts over vague specifications.
查看缓存全文
缓存时间: 2026/05/10 22:32
这段视频积累了 9.6 万小时的观看时长
那已经超过十年了
有时我仍然觉得难以置信
https://t.co/gMtfs17H9k
简而言之:Matt Pocock 认为,有效的 AI 辅助开发需要尊重大语言模型(LLM)的局限性——特别是“智能区”与“低效区”的区别,以及上下文窗口具有“失忆”的特性。他主张采用小任务、清晰的系统提示,以及诸如“审问我(Grill Me)”这样严格的对齐技能,而不是模糊的“从规范到代码”的方法。
简而言之
高效的 AI 协作遵循传统的软件工程原则:保持任务小型化以停留在 LLM 的“智能区”内,将上下文窗口视为频繁重置的“失忆”状态,并优先考虑对代码的深入理解,而非模糊的规范文档。
核心论点:传统软件工程规则依然适用
AI 教育者 Matt Pocock 提出,虽然 AI 代表了一种新范式,但软件工程的基础原则仍然至关重要。在与 AI 协作时,那些促进人类协作的实践同样非常有效。本次研讨会的目标是证明,尊重这些基础比盲目追随 AI 趋势能产生更好的结果。
理解 LLM 的局限性
要有效地与大语言模型(LLLM)合作,开发者必须理解两个特定的“奇怪局限性”:
- 智能区(Intelligence Zone)与低效区(Stupid Zone)
- 上下文的失忆特性(《记忆碎片》风格)
智能区与低效区
引用 Dex Hardy(来自 Human Layer)的观点,Pocock 解释说,LLM 在开始新对话时表现最为高效。这就是“智能区”,此时注意力机制承受的压力最小。
随着令牌(tokens)被添加到上下文窗口中,计算负荷呈二次方增加。Pocock 用向足球联盟增加球队来类比:每一个新令牌都会基于位置和含义与每一个其他令牌建立新的关系。
- 阈值: 无论上下文窗口是 20 万还是 100 万令牌,当容量达到约 40% 或大约 10 万令牌时,模型性能开始下降。
- 低效区: 超过此阈值后,模型变得“更笨”,做出糟糕的决策。
建议: 保持任务小型化。不要给 AI 超出其处理能力的内容。这与 Martin Fowler 的《重构》和《程序员修炼之道》中的传统建议一致。如果任务庞大(例如克隆一个公司的代码库),将其分解为适合“智能区”的小块。
多阶段规划 vs. 循环
Pocock 批评常见的多阶段规划(第一阶段、第二阶段、第三阶段),认为这本质上是一个循环。他提到了“Ralph Wiggum”式软件实践——这个术语可能指的是一种简单、迭代的方法:定义最终目标(PRD),然后要求 AI 进行微小的更改,逐步向该目标迈进。
虽然这种 Ralph Wiggum 式的迭代是可行的,但 Pocock 更喜欢更有结构的方法。关键在于确保每一步都保持在智能区内。
失忆式的上下文窗口
LLM 的行为就像电影《记忆碎片》(Memento)中的主角:它们不断遗忘。每次会话都遵循相似的生命周期:
- 系统提示(System Prompt): 基础上下文。应保持最小化。在此加载 25 万令牌会立即迫使模型进入“低效区”。
- 探索: 编码代理探索代码库。
- 实施: 编写代码。
- 测试: 运行反馈循环。
当上下文被清除时,模型直接重置回系统提示。
压缩 vs. 重置
许多开发者使用“压缩”来将长对话总结为更小的令牌占用空间。Pocock 不喜欢这种方法。他认为,优化为《记忆碎片》风格的重置更为优越。如果你能结构化你的工作,使得你可以清除上下文并返回到一个干净、一致的起点(系统提示)而不丢失进度,你将处于更有利的位置。
练习:构建游戏化功能
研讨会过渡到一个使用为班级构建的课程管理系统(CMS)的实际练习。目标是根据客户 Sarah Chen 的需求简报,构建一个游戏化功能以提高学生留存率。
“审问我(Grill Me)”技能
Pocock 引入了一项名为“审问我”的自定义技能,以解决对齐问题。他明确反对“规范到代码”运动,即开发者编写高层规范并让 AI 直接将其转换为代码。他认为这是一种“氛围编程(vibe coding)”的形式,忽略了实际的代码,导致失败,因为开发者必须理解并塑造代码库。
“审问我”技能旨在通过在进行任何编码之前强制执行严格的面试流程来防止错位。
工作原理
该技能提示指示 LLM 执行以下操作:
“无情地就计划的各个方面对我进行面试,直到我们达成共同理解。逐一解决决策树的每个分支,解决依赖关系。对于每个问题,提供你的推荐答案。一次只问一个问题。”
执行步骤
- 清除上下文: Pocock 清除当前上下文以重新开始,避免进入“低效区”。
- 调用技能: 他调用
grill me技能,将客户简报 (client-brief.md) 作为输入传递。- 注意: 简报包含来自 Sarah Chen 的 Slack 消息,指出留存率低,希望添加游戏化功能。
- 面试过程: LLM 开始提出有针对性的问题,以澄清范围、依赖关系和决策。
- 共同理解: 目标是在进行编码之前,就实施细节达成共识。
这种方法确保开发者保持对代码的控制权和理解力,而不是被动接受基于模糊规范的 AI 生成输出。
相似文章
@mattpocockuk: Uncle Bob 明白了
Robert C. Martin (Uncle Bob) 分享了他的经验:使用AI代理能显著提高生产力,虽然30-40%的时间用于调优和加固输出。
@mattpocockuk: 当你使用AI编程时,你是否感到掌控自如?你能:- 让它构建你想要的东西吗?- 阻止它……
这是一个推广推文,介绍一门新课程,旨在帮助开发者在使用AI编程时实现更好的控制和效率,解决准确性和任务管理等问题。
@mattpocockuk:感谢大家的200k stars
Matt Pocock宣布他的AI编程智能体“skills”仓库已达到200k stars,提供可组合、自适应的智能体技能,专为使用Claude Code和Codex等工具的真实工程场景而设计。
@mattpocockuk: 我的技能组合中缺少的是复合工程所具备的东西——你的流程随时间改进的承诺……
一条推文探讨了AI技能在流程持续改进方面的不足,提出一个潜在工具如'/improve-me',用于更新编码标准并优化智能体行为。
@mattpocockuk:今天我调用了/ask-matt,询问一件工作是否超过了一个上下文窗口。它答对了。相当超现实的体验…
Matt Pocock 分享了使用 /ask-matt AI 助手的超现实经历,该助手正确判断出一项工作超出了单个上下文窗口。