AI时代的编程圣经:Unix哲学的17条法则为何比以往更重要 | 帖子
Vercel CEO Guillermo Rauch 分享了一张图,将经典的Unix哲学重新定义为"成功进行Agentic编程的17条法则"。这些诞生于上世纪的设计原则,在AI Agent大行其道的今天,反而焕发出了新的生命力。
这17条法则分别是:
1. 模块化法则:编写简单的部件,用清晰的接口连接
2. 清晰法则:清晰胜于聪明
3. 组合法则:设计程序时要考虑与其他程序的连接
4. 分离法则:策略与机制分离,接口与引擎分离
5. 简洁法则:为简洁而设计,只在必要时增加复杂性
6. 节俭法则:只有当证明别无他法时,才写大型程序
7. 透明法则:为可见性而设计,让检查和调试更容易
8. 健壮法则:健壮性是透明性和简洁性的产物
9. 表示法则:将知识折叠进数据,让程序逻辑保持简单和健壮
10. 最小惊讶法则:在接口设计中,永远做最不令人惊讶的事
11. 沉默法则:当程序没有什么惊人的事要说时,就什么都不说
12. 修复法则:当必须失败时,要尽早失败,并大声报错
13. 经济法则:程序员的时间是昂贵的,优先节省它而非机器时间
14. 生成法则:避免手工编码,尽可能用程序来写程序
15. 优化法则:先做原型再打磨,先让它跑起来再优化
16. 多样性法则:不要相信任何"唯一正确方式"的说法
17. 扩展性法则:为未来而设计,因为它来得比你想象的更快
为什么这些老原则在Agent时代更加重要?
评论区的讨论揭示了深层原因。有人指出,"沉默法则"对Agent的意义已经发生了质变——Unix时代它意味着"不要打印不必要的输出",而在Agent时代它意味着"不要采取不必要的行动"。同样的哲学,但当程序可以批量修改你的代码库时,风险等级完全不同。
另一位开发者补充道:Unix哲学对Agent的价值被严重低估了——小型、可组合的工具,清晰的输入输出契约,幂等的步骤,可重放的日志。Agent越是可检查,你就越不需要盲目信任那些"魔法"。
还有人将Python之禅与这些法则对照:
- "显式优于隐式"在调试非确定性系统时变得至关重要
- "可读性很重要"因为你会不断盯着traces、prompts和工具定义
- "错误永远不应该静默传递"映射为:永远要暴露LLM失败、工具失败、解析失败
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
当我们把编程的执行权交给AI Agent时,我们实际上是在把几十年积累的工程智慧编码进系统提示词里。Unix哲学不再只是程序员的行为准则,而是成为了约束AI行为的宪法。
清晰胜于聪明,简洁胜于复杂,可检查胜于黑箱——这些原则在人类程序员时代是美德,在Agent时代则是生存法则。
Vercel CEO Guillermo Rauch 分享了一张图,将经典的Unix哲学重新定义为"成功进行Agentic编程的17条法则"。这些诞生于上世纪的设计原则,在AI Agent大行其道的今天,反而焕发出了新的生命力。
这17条法则分别是:
1. 模块化法则:编写简单的部件,用清晰的接口连接
2. 清晰法则:清晰胜于聪明
3. 组合法则:设计程序时要考虑与其他程序的连接
4. 分离法则:策略与机制分离,接口与引擎分离
5. 简洁法则:为简洁而设计,只在必要时增加复杂性
6. 节俭法则:只有当证明别无他法时,才写大型程序
7. 透明法则:为可见性而设计,让检查和调试更容易
8. 健壮法则:健壮性是透明性和简洁性的产物
9. 表示法则:将知识折叠进数据,让程序逻辑保持简单和健壮
10. 最小惊讶法则:在接口设计中,永远做最不令人惊讶的事
11. 沉默法则:当程序没有什么惊人的事要说时,就什么都不说
12. 修复法则:当必须失败时,要尽早失败,并大声报错
13. 经济法则:程序员的时间是昂贵的,优先节省它而非机器时间
14. 生成法则:避免手工编码,尽可能用程序来写程序
15. 优化法则:先做原型再打磨,先让它跑起来再优化
16. 多样性法则:不要相信任何"唯一正确方式"的说法
17. 扩展性法则:为未来而设计,因为它来得比你想象的更快
为什么这些老原则在Agent时代更加重要?
评论区的讨论揭示了深层原因。有人指出,"沉默法则"对Agent的意义已经发生了质变——Unix时代它意味着"不要打印不必要的输出",而在Agent时代它意味着"不要采取不必要的行动"。同样的哲学,但当程序可以批量修改你的代码库时,风险等级完全不同。
另一位开发者补充道:Unix哲学对Agent的价值被严重低估了——小型、可组合的工具,清晰的输入输出契约,幂等的步骤,可重放的日志。Agent越是可检查,你就越不需要盲目信任那些"魔法"。
还有人将Python之禅与这些法则对照:
- "显式优于隐式"在调试非确定性系统时变得至关重要
- "可读性很重要"因为你会不断盯着traces、prompts和工具定义
- "错误永远不应该静默传递"映射为:永远要暴露LLM失败、工具失败、解析失败
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
关于第14条"生成法则",有人认为这是最重要的一条:如果某件事没有按计划进行,就相应地修改规格说明并重新生成,而不是手动修补。这恰恰是Agentic编程的精髓。
也有人提出了不同看法:这些法则在"提示生成代码"的范式下可以很好地应用,但在"提示行为"的范式下却难以一致地执行,因为后者从程序员手中拿走了太多控制权。
当我们把编程的执行权交给AI Agent时,我们实际上是在把几十年积累的工程智慧编码进系统提示词里。Unix哲学不再只是程序员的行为准则,而是成为了约束AI行为的宪法。
清晰胜于聪明,简洁胜于复杂,可检查胜于黑箱——这些原则在人类程序员时代是美德,在Agent时代则是生存法则。
Anthropic悄悄放出了一门官方课程,专门教你如何把Claude Code用到极致。15节课,1小时视频,还有测验和证书,干货密度相当高。
有人学完后整理了核心要点,值得收藏:
快捷键与模式切换
- Shift + Tab 按两次进入规划模式
- Ctrl + V 可以直接插入截图(注意不是 Command + V)
- 配合插件可以让Claude Code直接操作浏览器
控制推理深度的魔法词
在提示词中加入这些关键词,可以调节模型在任务上投入的token量:
- "Think" — 基础推理
- "Think more" — 扩展推理
- "Think a lot" — 全面推理
- "Think longer" — 延长推理时间
- "Ultrathink" — 最大推理能力
上下文管理
- /clear 清空上下文
- /compact 压缩上下文,可释放80%以上空间
进阶扩展
- 使用MCP服务器可以扩展工具集
- 支持大量pre-hooks和post-hooks,在工具执行前后自动运行
社区讨论中有个观点很有价值:课程没教的真正技能,是知道什么时候该重置上下文。很多人卡在问题里挣扎几小时,其实是在和"上下文腐化"作斗争,不如在完成一个里程碑后果断清空重来。
还有人指出,/clear比/compact更彻底,该用哪个要看场景。
当然也有老手表示,如果你已经每天高强度使用Claude Code,这门课的增量信息有限。但对于想系统入门或查漏补缺的人来说,官方出品的体系化内容,依然是最稳妥的起点。
Claude Code Workflow Studio 是一款专为 Claude Code 设计的可视化工作流编辑器,它将复杂的 AI 编排过程转化为了直观的拖拽式操作。
通过该工具,用户可以像搭积木一样设计 AI 智能体的工作路径,不仅支持复杂的条件分支和子代理协作,还能通过自然语言对话让 AI 协助优化和调整工作流结构。
红果果
抖音/快手/红果短剧聚合网站,涵盖古装、穿越、逆袭、都市、福利等类型,可直接在线观看,不少短剧都支持全集观看,省的几分钟就得切换下一集,视频加载成功后,需要先点击暂停一下再播放,免费无广告,无需注册。
https://www.hongguoguo.tv
App Store Price
实时抓取并对比全球各大区 App Store 的应用价格,涵盖 Claude、ChatGPT、1Password、Infuse、YouTube Premium、Telegram 等常用软件,同时覆盖全球主要地区,包括常见的低价区,价格数据每日自动更新并去重,支持实时汇率换算和 AI 智能分析,完全免费,无需注册。
https://appstoreprice.org/zh
站点名称: Lyra Image
描述: Lyra Image - 一站式智能图片处理平台。支持抠图、裁剪、压缩、水印、拼接、隐写等 15+ 免费工具
链接: https://lyra-cutout.pages.dev/