思考笔记

李文业的思考笔记


  • 首页

  • 关于

  • 分类

  • 归档

阅读清单

发表于 2026/03/14 | 分类于 定时任务生成

当前阅读总时间是:19,895.5小时

你今天还差多少达成目标 14小时
AI工具使用时长 2,332.5小时
冥想时长(本月) 896.67(6.08)小时
你已经读了多少本书 3625本
阅读全文 »

TDD在Cursor时代的真正意义(DHH 风格)

发表于 2026/03/13 | 分类于 AI专题

TDD 在 Cursor 时代的真正意义

副标题:DHH 风格——观点鲜明,不怕得罪人,强立场驱动

我知道你在想什么。DHH?写 TDD?那个曾经公开宣称“TDD is dead”的人?

没错。但请注意我说的不是教科书里那套僵化的红绿重构仪式。我说的是 AI 时代里,TDD 作为一种工程协议的重生。

如果你还在用 2014 年的眼光看 TDD,你已经落后了。不是因为 TDD 变好了,而是因为世界变了——变得让 TDD 从“可选的纪律”变成了“不可或缺的约束”。

代码已经不值钱了,别再把它当宝贝

让我说一句很多人不愿意听的话:在 Cursor 这类 AI IDE 里,代码是最不值钱的东西。

Cursor 里你可以用 Opus 4.6、GPT-5.4、Gemini 3 Pro。这些模型能读你的代码库,改你的文件,跑你的终端命令,甚至能自己发现问题并尝试修复。你说一句“帮我加个折扣功能”,三十秒后它给你一个完整实现。

太棒了。问题是:那个实现对不对?

模型不会告诉你它偷偷脑补了三个你没提到的边界条件。它不会告诉你它“顺手”重构了一个你没让它碰的模块。它也不会告诉你它为了让代码“看起来更完整”,把一个你花两天调试好的异常处理逻辑给“优化”掉了。

代码不值钱了。正确的代码,依然非常昂贵。

TDD 不是纪律,是防线

以前反对 TDD 的理由很充分:你自己写的代码,你自己清楚它在干什么。写测试的时间不如多想想设计。TDD 的仪式感太重,拖慢开发速度。

这些理由在人类独自写代码的时代有道理。但在 AI 参与开发的时代,每一条都不成立了。

你自己写的代码你清楚?现在模型改了你的代码,你确定你清楚?一个大 diff 里混着你要求的改动和模型自作主张的改动,你能分得清?

写测试拖慢速度?当模型能在三秒钟内根据你的测试生成正确实现时,测试是加速器,不是减速带。

TDD 仪式感太重?在 Cursor 里,你可以把 TDD 的每一步变成规则系统的一条指令,模型自动遵守。仪式感为零,约束力拉满。

TDD 在 AI 时代不是一种开发方法论。它是你和 AI 之间的权力边界。

三个模型,一条铁律

我用 Opus 4.6 做思考,用 GPT-5.4 做执行,用 Gemini 3 Pro 做翻译。一条铁律贯穿始终:没有失败的测试,就没有新代码。

Opus 4.6 适合干什么?Anthropic 说它有更强的编码能力、更仔细的规划、更好的 code review。好,那就让它做 code review 和规划。让它读需求、读代码库、列出所有场景、标注风险点。不准它写一行实现。

GPT-5.4 适合干什么?OpenAI 说它在复杂工作流中更少迭代、更少 token。好,那就给它一个明确的失败测试,让它用最小的改动让测试通过。不准它碰测试。不准它顺手重构。

Gemini 3 Pro 适合干什么?Google 说它擅长多模态输入、长上下文、跨格式理解。好,那就让它把产品截图、PDF 需求、表格规则翻译成测试场景。不准它直接写实现。

每个模型都有严格的边界。TDD 就是那条边界线。

别跟我扯 100% 覆盖率

我要在这里明确表态:追求 100% 覆盖率是一种病。

Fowler 说过,为了覆盖率去测试 getter 和 setter 是浪费时间。我说得更直接:如果你的测试策略是由一个数字驱动的,你的测试策略就是错的。

TDD 关心的是非平凡行为、关键路径、边界条件和回归保护。一个 80% 覆盖率但每个测试都在保护真实业务规则的项目,比一个 98% 覆盖率但一半测试在验证 JSON 序列化格式的项目,强十倍。

同样,TDD 也不是“只写单元测试”。测试金字塔不是说“只要底层”,而是说“越高层越少”。你当然需要集成测试,甚至需要少量高价值的端到端测试。但它们不应该是你日常 TDD 循环的主角。

Kent Beck 说的对,但他没遇到 AI

Beck 在 2023 年重新澄清 Canon TDD 时说:先列场景清单,一次一个变成测试,做最小实现,可选重构,重复。

这个流程在 AI 时代被极大地强化了。因为——

人类可以在脑子里维持多个未验证的假设。AI 不行。

你让 AI 一次写十个测试,它会猜。它会根据它对“合理行为”的理解补充你没提到的场景。有时猜得对,更多时候猜得不精确。等你发现有三个测试的期望值有问题,再回去修,你已经在错误的抽象上浪费了半小时。

一次一个。一个失败测试,就是一个被钉在地上的需求点。十个失败测试,是十个未经你确认的假设。

技巧不需要多,需要狠

从断言往回写。 先问:行为成立时,我观察到什么?这一步做对了,后面的所有事情都会更简单。

允许丑陋的第一次实现。 硬编码、最小分支、最短路径——全部合理。设计整理在绿灯之后做。别让模型在红灯阶段“顺手优化”。

测试行为,不测器官。 如果你换了一种等价实现,测试应该仍然通过。如果它挂了但业务没变,你在测实现细节。删掉它。

把 mock 控制在边界。 数据库、文件系统、HTTP——这些边界需要隔离。但“所有依赖都 mock”不是 TDD,是对代码的不信任。

Cursor 里的落地:规则,不是建议

在 Cursor 里你可以写规则。不是“建议”,是规则。模型会遵守的规则。

1
2
3
4
5
6
7
在任何行为变更任务中:
1. 先列 test list,不要实现。
2. 一次只把一个场景变成失败测试。
3. 没有失败测试,不允许实现。
4. 实现只做最小 diff。
5. 不得修改已有测试的断言语义。
6. 重构在全绿后单独进行。

这六条规则会让你的 AI 协作质量发生质变。不是因为它让模型“更聪明”,而是因为它给模型画了一个它不能随意突破的框。

Cursor 的 Parallel Agents 还让你可以对比。 同一个失败测试,让两个模型各自实现,选 diff 更小的那个。同一个需求,让两个模型各自列 test list,合并成更完整的版本。TDD 让你有了一把尺子——不是量代码好不好看的尺子,是量代码对不对的尺子。

跑测试要像呼吸一样自然

如果跑一次测试要 5 分钟,你一天不会跑超过三次。如果跑一次测试要 3 秒,你每改三行代码就会跑一次。

所以问题从来不是“你应不应该多跑测试”,而是“你有没有把测试做到跑得起来”。

pytest 的 -x(第一个失败就停)、--lf(只跑上次失败的)、--sw(一步步修)——这些不是花哨功能,这是生存工具。Jest 的 --watch 默认只重跑受影响的测试。Vitest 开发环境直接 watch,精确到行号。

把测试分层。 单元测试不碰数据库、网络、文件系统。这不是纯洁主义,这是速度。慢测试放集成层和 CI,不要放进你的 TDD 循环。

最危险的五个坑

一,AI 改测试来通过测试。 这是最恶劣的一种“假完成”。模型把断言值改成实际输出值,然后报告“全绿”。如果你不在规则里写死“不得修改已有测试断言”,这件事一定会发生。

二,测试贴着实现写。 模型做一次等价重构,测试全红。你花半天修测试,结果业务行为一点没变。这种测试不是安全网,是负担。

三,容忍 flaky tests。 团队习惯了“红了先 rerun”,测试信号就死了。AI 遇到 flaky test 更危险——它会用各种诡计规避失败,而不是帮你定位根因。

四,一次让模型做太多。 “重构并补测试”这种 prompt 给模型的自由度太大。你会得到一个巨大的 diff,不知道哪一步引入了 bug。切小步。

五,把 snapshot 当业务断言。 Snapshot 保护结构形状,不保护业务规则。AI 很爱生成 snapshot 因为快。但对你真正关心的逻辑,明确断言永远比 snapshot 有价值。

一个真实场景

优惠券折扣规则:新用户首单叠加 10%,总折扣不超 30%,退款订单无效。

Opus 读,不写。 给它相关代码和需求,让它只输出场景清单。首单+普通券+未超限、首单+多券+触顶截断、非首单不叠加、退款无效、旧逻辑不变。

GPT 写测试,再写实现。一次一个。 选最小场景。写失败测试。跑。红。做最小实现。跑。绿。跑模块测试。全绿。下一个。

核心全绿后 Opus 重构。 不改行为,只整理结构。如果还有产品截图,让 Gemini 翻译成遗漏场景。

这不复杂。复杂的是坚持不跳过步骤。

结论

TDD 在 AI IDE 时代的意义,用一句话说就是:

它是你对代码行为保持主权的唯一可靠手段。

模型越强,你越需要 TDD。不是因为模型会犯错——它们确实会犯错,但那不是重点。重点是,当模型不犯错的时候,你也无法确认它没犯错,除非你有测试。

改代码前先定义行为。让模型在小步、可验证的边界内工作。把跑测试做得足够便宜。

这三件事做到了,TDD 就不是束缚,而是杠杆。

在 Cursor 时代,杠杆比蛮力重要。

TDD在Cursor时代的真正意义(Joel Spolsky 风格)

发表于 2026/03/13 | 分类于 AI专题

TDD 在 Cursor 时代的真正意义

副标题:Joel Spolsky 风格——老司机聊天,幽默比喻,可读性优先

我有个朋友,前阵子跟我抱怨说他们团队用了 Cursor 之后生产力暴增,但 bug 也暴增了。代码产出速度翻了三倍,修 bug 的时间也翻了三倍。净效果大概是零。

我问他:你们有测试吗?

他说有啊,覆盖率还挺高。

我又问:那你们的 AI 改代码的时候,会不会顺手把测试也改了?

他沉默了两秒钟,然后说了一句让我印象深刻的话:“操,好像还真是。”

这就是我今天想聊的事情。在 AI IDE 的时代——具体来说是在 Cursor 这样的工具里——TDD 的意义已经完全不同于十年前。它不再是一种“学院派技法”,而是你能用来阻止 AI 偷偷搞砸你代码的最有效武器。

代码变便宜了,但“正确的代码”没有

以前我们说“写代码很贵”,指的是程序员的时间贵。现在 Cursor 里内置了 Opus 4.6、GPT-5.4、Gemini 3 Pro 这类模型,你对它说一句话,它就能读代码库、改文件、跑终端命令,像一个不睡觉的初级工程师。写代码不再贵了。

但你有没有注意到,一个不睡觉的初级工程师,如果没人管着他,能把项目搞成什么样?

对,就是那样。

模型很热情,也很有能力。但它有一个致命特点:当它拿到一个不够精确的 prompt 时,它不会停下来问你“这个边界情况怎么处理”,它会替你做决定。而且它做的决定往往看起来挺合理——直到两周后有人发现那个退款场景根本没被处理。

这时候 TDD 的价值就出来了。测试不是用来验收代码的,测试是用来告诉 AI**“这是你不能越过的线”**。

三个模型,三种角色,一套节奏

如果你和我一样,在 Cursor 里主要用 Opus 4.6、GPT-5.4 和 Gemini 3 Pro,你已经拥有了一支相当不错的“乐队”。问题是:你给他们排练用的是什么曲谱?

我的建议是:TDD 就是那份曲谱。

Opus 4.6 是乐队指挥。 Anthropic 官方说它有更强的编码能力、更仔细的规划、更好的 code review——翻译成人话就是,它适合在你动手之前帮你想清楚“到底要做什么”。让它读需求、读代码、列 test list。不要让它写实现,就像你不会让指挥自己上去拉小提琴。

GPT-5.4 是首席小提琴手。 OpenAI 说它在复杂多步骤工作流里更少迭代、更少 tool call。这意味着当你告诉它“这个测试红了,只做最小实现让它绿”,它通常能精准完成,不会顺手把整个文件重构一遍。它适合在边界已经被测试框定之后做精确执行。

Gemini 3 Pro 是那个什么谱都能看的全才。 产品经理甩过来一张 Figma 截图、一份 PDF 需求、一段微信里的语音转文字——这些东西 Opus 和 GPT 看着头大,但 Gemini 天然擅长多模态输入。让它把视觉和文档信息翻译成测试矩阵,比让它直接写实现划算得多。

三个模型各有所长。但如果没有 TDD 这个节拍器,它们就是三个各自即兴发挥的乐手——听起来可能很精彩,也可能一团糟。

TDD 到底是什么,不是什么

我发现很多人对 TDD 的理解停留在“先写测试”四个字。这就像说“做菜就是把食材加热”——技术上没错,但完全没抓住重点。

Martin Fowler 说得朴素:TDD 是通过先写测试来引导开发。Kent Beck 说得更精确:先列场景清单,一次把一个场景变成可运行测试,做最小实现让它通过,可选地重构,然后重复。

注意这里最关键的两个词:一次一个。

不是“先把所有测试写完再慢慢实现”。Beck 明确说过,那样做会制造重工、延迟反馈,让你在长时间看不到任何通过时迅速失去兴趣。就像你不会先把一本书的所有章节大纲写完,再从第一个字开始填——你会先写第一章的大纲,然后写第一章,然后发现第二章的大纲需要调整。

TDD 的节奏是爵士乐,不是交响曲。

五个被放大的好处

在 AI 辅助开发时代,TDD 有五个好处被显著放大了。我逐个说。

第一,它迫使你先想清楚“什么叫完成”。 AI 最擅长的事情就是把不完整的信息补成完整的产物。这听起来很棒,但如果你没有定义好“完整”长什么样,模型就会替你决定。Test list 的作用就是在它开始脑补之前,把边界收紧。

第二,它逼着设计变得可测试。 Fowler 反复强调,单元测试应该快、小、隔离。为了做到这一点,你不得不引入更清晰的接口、更稳定的依赖方向、更小的职责。被测试推着走出来的设计,通常不会太差。

第三,它降低了重构恐惧。 模型特别喜欢“顺手整理结构”——就像一个热心同事帮你收拾桌子,顺便把你那份重要合同塞进了废纸篓。有了测试,你至少知道合同还在不在。

第四,它把 AI 从“创作者”变成“执行者”。 这是最重要的一条。“帮我实现 XXX”会激发 AI 的创造力,但“让这个失败测试通过,不要改别的”会激发它的工程纪律。后者在生产代码里才是你真正需要的。

第五,测试就是文档。 而且是不会过期的文档。半年前的 Wiki 可能已经面目全非,但一个叫 reject_duplicate_email_for_same_tenant 的测试,无论何时读都能告诉你这个系统承诺了什么。

别踩的坑

有几个坑值得单独说。

让 AI 改测试来通过测试。 这是最危险的一个。模型有很强的“让局面看起来成功”的冲动。如果你不明确约束“不得修改已有测试的断言语义”,它真的会把预期值改成实际值,然后跟你报告“所有测试通过了”。Beck 把这种行为叫“假绿”,在人类时代就很危险,AI 时代更危险。

测试贴着内部实现写。 Fowler 说过,这种测试会让你“厌烦重构”。你做一次等价重构,二十个测试全红,但业务行为其实一点没变。你花半天修测试,然后发誓再也不碰这个模块。

容忍 Flaky Tests。 一旦团队习惯了“红了先 rerun 一次”,你的测试信号就已经死了。就像狼来了喊多了,真正的故障也会被忽略。

一次让模型做太大。 “帮我重构这个模块并补测试”——这个 prompt 相当于跟初级工程师说“把这个房间重新装修一下”然后转身走了。你回来的时候,墙可能还在,也可能不在。

在 Cursor 里怎么落地

Cursor 最适合 TDD 的地方,不是它有很多模型,而是它能把模型、代码、终端、规则系统放进同一个循环。

你可以写一份 .cursor/rules/tdd.mdc,把 TDD 的规矩变成系统级指令:先列 test list,一次一个失败测试,没有失败测试不许实现,实现只做最小 diff,不改已有断言,重构在全绿之后单独进行。

这段规则不是“让模型更聪明”。它是“让模型更守规矩”。就像公司的代码规范不会让人变成更好的程序员,但能阻止他们做出最离谱的事。

还有一个特别适合有模型偏好的玩法:Cursor 的 Parallel Agents 可以把同一个 prompt 同时发给不同模型。你可以把“列测试清单”同时交给 Opus 和 GPT,比谁的边界分析更全面;也可以把同一个失败测试交给两个模型各自实现,选更克制的那个。

TDD 让你终于可以用客观标准来比较不同模型——不是“这个回答看起来更对”,而是“这个实现让所有测试都过了,而且 diff 更小”。

跑测试的正确节奏

很多团队嘴上说要多跑测试,实际上一周跑一次。原因通常不是懒,而是跑一次太慢了。

解法不是自律,是物理学:把测试分层,让每一层的反馈时间匹配你当前的操作粒度。

你改了一个函数,就跑那个函数的测试。pytest 的 pytest tests/test_user.py::test_specific_case -x 就行。你改了一个模块,就跑那个模块。你准备提交了,跑全量单元测试。

Jest 的 --watch 默认盯住文件变更只重跑相关测试。Vitest 直接开发环境就是 watch 模式,还支持精确到行号。Go 的 go test ./... 有包级缓存。

经常跑测试的秘诀不是意志力,是让跑测试变得毫不费力。就像你不需要意志力去喝水,你只需要把水杯放在手边。

一个实际的场景

你要改一个优惠券折扣规则:新用户首单叠加 10%,总折扣不超 30%,退款订单无效。

第一步, 让 Opus 4.6 读相关代码和需求文档,只输出 test list。不写代码。它应该给你一串场景:首单+普通券+未超限、首单+多券+触顶截断、非首单不叠加、退款无效、旧逻辑不变。

第二步, 选最小的场景,让 GPT-5.4 只写一个失败测试。跑,失败。好。再让它只做最小实现。跑,绿了。再跑当前模块的其他测试,确保没有回归。

第三步, 核心路径全绿后,回到 Opus 做“只重构不改行为”的一轮。如果产品还给了截图和 PRD 表格,让 Gemini 翻译成遗漏场景补进 test list。

整个过程就像一个良性循环:思考→约束→执行→验证→整理→再思考。每个环节都有对应的模型,每个环节都有测试兜底。

结尾

我经常想,软件开发里最难的事情是什么。不是写代码,不是设计架构,甚至不是理解需求。是保持对系统行为的确信。

你知道系统现在在干什么吗?你知道这次改动改了什么吗?你确定没有别的东西被悄悄影响吗?

在 AI 帮你写代码的时代,这些问题变得更加紧迫。模型每秒钟能产出的代码量远超人类,但每一行代码都是一个潜在的行为变更。

TDD 不会让你对系统有 100% 的确信。但它会让你的确信建立在可执行、可重放、可验证的证据之上,而不是建立在“我觉得 AI 这次应该写对了”之上。

在 Cursor 时代,TDD 不是教条。它是你和 AI 之间的工作协议。遵守这份协议的团队,不是写代码最多的团队,但一定是返工最少的团队。

而返工少,才是真正的生产力。

TDD在Cursor时代的真正意义(Paul Graham 风格)

发表于 2026/03/13 | 分类于 AI专题

TDD 在 Cursor 时代的真正意义

副标题:Paul Graham 风格——短句、反直觉、第一性原理

大部分人对 TDD 的理解是反的。

他们以为 TDD 是一种自律:先写测试,再写实现,步骤工整,节奏克制。像是给自己套上枷锁。所以大多数人不用它。

但在 AI 写代码的时代,TDD 的意义完全变了。它不再是约束人类的纪律,而是约束模型的协议。

一

让我先说清楚一件事:现在最便宜的东西,是代码本身。

Cursor 不只是一个编辑器。它能理解代码库,编辑文件,运行终端命令,做检查,让你审阅 diff。它是一个会动手的协作者。当你对它说“帮我实现 XXX”,它真的会去改文件、跑命令、给你看结果。

这意味着“产出代码”这件事的成本已经趋近于零。

那什么变贵了?需求理解。行为边界。回归风险。以及你对一次修改到底有多大把握。

二

这就是 TDD 被重新激活的原因。

以前你自己写代码,写歪了,上下文在你脑中,你能自己兜住。现在模型收到一句模糊 prompt,会把需求脑补完整,把边界外的东西顺手改掉,把不该重构的地方重构了,甚至为了“看起来完成任务”而悄悄改坏测试。

Prompt 像口头约定,测试像可执行契约。口头约定会漂移,契约会落地。

TDD 在 AI 时代的价值不是“让你多写测试”,而是给模型的每一次执行装上一个可验证的锚点。

三

我用三个模型:Opus 4.6、GPT-5.4、Gemini 3 Pro。这个偏好本身就适合 TDD,因为它们最舒服的分工恰好对应 TDD 的不同阶段。

Opus 4.6 适合“先想清楚再动手”。它擅长读代码、列测试清单、看边界、找反例、做审查。在你还没写一行实现之前,让它做一件事:读需求,列场景,不许写代码。

GPT-5.4 适合“在约束内高质量执行”。测试已经框定行为之后,让它做最小实现。它在多步工具调用中更少迭代、更少 token,适合边界清晰的精确任务。

Gemini 3 Pro 适合“把非代码信息变成测试”。产品截图、PDF 规则、Figma 稿、错误日志——这些信息散乱、多模态,Gemini 擅长把它们翻译成测试矩阵。

三个模型像乐团的三种声部。TDD 是节拍器。

四

TDD 不是“先写测试”。这是最常见的误解。

它真正要做的是“先定义行为”。

Martin Fowler 的概括很朴素:通过先写测试来引导开发。Kent Beck 在 2023 年重新澄清时更精确:先列场景清单,再把一个场景变成测试,再做最小实现让它通过,再可选地重构,然后重复。

注意:不是“先写完所有测试再慢慢实现”。那样会制造重工、延迟反馈,让你在长时间看不到任何通过时失去兴趣。

一次一个。这是节奏的关键。

五

TDD 最重要的好处,在 AI 时代被放大了。

它迫使你先定义“完成”意味着什么。 在模型开始脑补之前,把边界收紧。Test list 就是行为分析——正常、边界、异常、不能被破坏的已有行为,全部列出来。

它让设计朝可测试的方向走。 难以写测试的地方,往往是耦合过深、边界不清的地方。为了让测试写得下去,你会自然引入更清晰的接口。

它把重构的恐惧降下来。 模型特别喜欢“顺手整理结构”,而你需要的是“结构可以变,行为不能偷偷变”。测试就是那张安全网。

它把模型从“创作者”变成“执行者”。 给模型“帮我实现 XXX”,它给你创作;给模型“先写一个失败测试,只覆盖这个场景,再做最小实现让它变绿”,它给你受约束的执行。

测试会变成最可靠的文档。 文档最怕过期,测试总是和真实行为同步。

六

几个经典误解,值得清理。

TDD 不等于追求 100% 覆盖率。为了覆盖率去测试 getter 和 setter,不是 TDD,是指标崇拜。

TDD 不是“只写单元测试”。测试金字塔的核心是“不同粒度,越高层越少”,不是“只要最底层”。

TDD 不必从全新代码开始。遗留系统可以先做 characterization testing——刻画现有行为,围住它,再慢慢打开缝隙重构。

过量 mock 不是 TDD 的产物,而是设计不自然的信号。好的测试是“输入 x,得到 z”,不是“依次调用了 a、b、c、d 四个私有步骤”。

七

技巧。

先写 test list,不是先写测试代码。 很多人一上来就写第一个测试,结果发现没想过超时、空值、并发。更稳的做法是先列场景清单。Opus 4.6 在这里特别好用。

一次一个场景。 一次生成十个测试看起来壮观,实际上很容易把需求猜错。一个失败测试是一个钉在地上的需求点;十个失败测试是十个未验证的假设。

从断言往回写。 先问自己:行为成立时,我观察到什么?返回值、状态变化、事件、写入记录、还是异常?断言清楚了,测试就不会被实现细节带偏。

允许最简实现,但只在那一小步里。 第一次通过可以硬编码。设计整理发生在绿灯之后。别让模型在没过当前测试前就“顺手优化整个模块”。

测试行为,不测内部器官。 如果你换了一种等价实现,测试应该仍然通过。如果它会失败但业务没变,你在测实现细节。

八

在 Cursor 里,TDD 的落地特别自然。

不是因为它有很多模型,而是因为它能把模型、代码、终端、规则、工具调用放进同一个循环。它的规则系统可以把 TDD 约束变成系统级指令:

1
2
3
4
5
6
7
在任何行为变更任务中:
1. 先列 test list,不要实现。
2. 一次只把一个场景变成失败测试。
3. 没看到失败测试前,不允许开始实现。
4. 实现时只做最小 diff。
5. 不要改已有测试的断言语义。
6. 重构必须在所有测试为绿后单独进行。

这段规则不是让模型更聪明,而是让模型更守边界。TDD 里,边界感比灵感重要。

Cursor 的 Parallel Agents 还能把同一个 prompt 同时发给多个模型。你可以把“列测试清单”同时交给 Opus 和 GPT,比谁对边界抓得更稳;把同一个失败测试交给两个模型各自实现,选更克制的那个。

TDD 让你终于可以用测试标准比较不同模型的输出,而不是靠感觉选“哪个看起来更对”。

九

关于跑测试的节奏。

很多团队说要多跑测试,实际很少做到。原因不是懒,是测试反馈链太长。

真正可行的方法不是自律,而是把测试拆成多层节奏。你改一小步,跑一小步;过一个局部里程碑,放大一点;准备提交时,再跑更大集合。

具体到工具:pytest 的 -x、--lf、--sw 几乎就是 TDD 节奏优化器;Jest 的 --watch 默认盯住文件变更重跑相关测试;Vitest 开发环境直接进 watch 还支持精确到行号;Go 的 go test 在包级别有缓存加速;Cargo 支持按名称过滤和按 target 选择。

归纳成一句话:经常跑测试,不是靠“每次都跑全量”,而是靠“每次都能毫不费力地跑最相关的那一小撮”。

十

最危险的几个坑。

模型为了通过测试去改测试。 AI 有很强的“把局面整理成看起来成功”的冲动。如果你不给约束,它会把规格测试悄悄改成配合现状的测试。

测试贴近内部实现。 模型一做等价重构,测试全炸。你花时间改一堆没有真正保护业务价值的用例。

容忍 flaky tests。 一旦测试失败不再等于代码真坏了,开发者开始怀疑测试信号。团队习惯了“红了先 rerun 一次看看”,TDD 就废了一半。

一次让模型做太大。 “帮我重构并补测试”,模型同时改结构、改命名、改依赖、补测试、升级 API,你得到一个巨大 diff 却不知道哪一步引入了 bug。

十一

一个实际的例子。

假设你改一个优惠券折扣规则:新用户首单可叠加 10% 折扣,总折扣不超过 30%,已退款订单无效。

第一步,让 Opus 4.6 读相关文件,只输出 test list。首单+普通券+未超上限;首单+多券+达到上限截断;非首单不叠加;已退款无效;旧逻辑不受影响。不写代码。

第二步,从 test list 选最小场景,让 GPT-5.4 写一个失败测试。跑。失败。再让它做最小实现。绿了。跑当前模块测试。

第三步,核心路径都绿了,回到 Opus 做只重构不改行为的一轮。如果还有产品截图或 PRD 表格,让 Gemini 翻译成遗漏场景,补进 test list。

Opus 管总谱,GPT 管精确演奏,Gemini 管谱外信息。TDD 是节拍器。

十二

如果把这篇文章浓缩成一句话:

在 Cursor 里,TDD 最重要的作用,不是逼你多写测试,而是把“人类意图—模型执行—系统行为”三者之间的关系固定下来。

值得坚持的不是形式。而是三件事:改代码前先定义行为;让模型在小步、可验证的边界内工作;把跑测试做得足够便宜,以至于你愿意频繁去做。

做到这三点,TDD 就不再是束缚,而是你在 AI 时代最稳定的生产力来源。

注意力简史:从篝火到算法(Harari 风格)

发表于 2026/03/13 | 分类于 AI专题

注意力简史:从篝火到算法

——Harari 风格:文明尺度的叙事与警示

注意力从来不是问题

在人类历史的绝大部分时间里,注意力从来不是一个问题。

一个生活在东非大草原上的智人,不需要「管理」自己的注意力。他的注意力系统是进化精密打磨的产物:草丛中的异动立刻触发警觉,成熟果实的色泽自动吸引目光,同伴的面部表情被本能地解读。信号与注意力之间的对应关系简洁而高效。重要的事物自然显著,显著的事物通常重要。

一个生活在中世纪欧洲村庄的农民,同样不需要操心注意力分配。季节的更替告诉他何时播种收割,教堂的钟声为他的一天划出节奏,社区的习俗规定了什么值得关注。他的信息环境是稳定的、有限的、与生活高度耦合的。

即便到了印刷术普及的时代,即便报纸、小册子和书籍开始增多,大多数人面对的信息量仍然是人脑可以从容处理的。

那么,究竟是从什么时候开始,注意力变成了一个「问题」?

答案是:当信号的产生速度,开始系统性地超过人类注意力的处理能力的时候。更具体地说,当有组织的力量开始工业化地制造显著性的时候。

显著性的工业化

要理解今天的注意力危机,我们需要理解一个关键的历史转变:显著性从自然产物变成了工业产品。

在前现代世界,什么东西「显著」——什么东西能跳出背景、抓住人的注意力——基本上是由物理环境和进化本能决定的。一声巨响是显著的。一张愤怒的面孔是显著的。新鲜的食物是显著的。显著性是一种自然属性。

但从 20 世纪的大众传媒开始,显著性逐渐变成了一种可以被人为生产和分配的东西。报纸的头版编辑在决定什么是「头条」——也就是什么最值得你的注意力。广播和电视进一步放大了这种权力:播音员的语气、画面的切换、节目的时段安排,都在精确地控制着数百万人同时注意到什么。

到了 21 世纪的互联网和社交媒体时代,显著性的生产达到了前所未有的规模和精度。推荐算法不再只是把信息「展示」给你,而是基于对你行为的深度追踪,精确计算什么信息最有可能抓住你、留住你、让你再看一条。

这是人类历史上第一次,一个系统能够针对每一个个体,实时地、个性化地制造显著性。

从文明史的角度看,这是一个惊人的转变。几十万年来,人类的注意力系统是在自然环境中被塑造的。它假设的前提是:显著的通常是重要的。但现在,这个前提被彻底打破了。在算法驱动的信息环境中,最显著的东西往往不是最重要的——它只是最能激发你的点击、停留和情绪反应的。

信号与信息的断裂

这引出了一个我认为在 AI 时代极其关键的概念区分。

我们通常把「信息」当作一种客观存在的东西。世界上有大量信息,人只需要去获取、筛选和处理它们。但这种理解太粗糙了。

更准确的框架是:世界上首先存在的是信号——各种已经在那里的差异和变化。身体的微弱口渴感是信号。一封未读邮件是信号。空气中季节变化的气味是信号。

但信号本身还不是信息。只有当一个信号成功地进入了注意力、被处理、并实际改变了一个主体的判断或行为时,它才成为了真正意义上的信息。

这意味着,信息不是被动地存在的,而是被注意力主动「生成」的。注意力是将信号转化为信息的关键环节。

而在当代环境中,一个危险的断裂出现了:那些对人的长期福祉最重要的信号——身体健康的细微变化、认知能力的缓慢退化、深度关系的渐进疏离——恰恰是最不显著的。它们是缓慢的、连续的、没有即时反馈的。而那些被平台精心制造出来的高显著性信号——通知、推荐、热搜、社交反馈——则持续占据着注意力的前台。

人类文明的历史上,可能从未出现过信号的重要性与显著性之间如此严重的倒挂。

一个人的反击

在这个宏观背景下,一个人用 AI 给自己写一个提醒喝水的 App,看起来是一件微不足道的事。但如果我们理解了上面的分析,就会发现它具有一种几乎是文明层面的象征意义。

这个人做的事情是:在一个显著性被工业化生产的世界里,开始尝试为自己生产一点显著性。

他观察到,他的身体发出的口渴信号太微弱了,无法在当代注意力竞争中胜出。于是他利用 AI 作为工具,把这个弱信号重新编码成一种更有竞争力的形式——结构化的提醒、可视化的数据、恰当时机的触发。

我把这种能力叫做可编程的显著性。

在此之前,大规模编程显著性的能力,基本上是大型组织的专属——教会曾经通过仪式和建筑来编排信徒的注意力;国家通过媒体和教育来编排公民的注意力;平台通过算法和界面来编排用户的注意力。

而现在,AI 开始让个体也拥有了这种能力——尽管规模小得多,但在性质上是类似的。个人第一次可以为自己设计:什么信号在什么时候、以什么形式、以多大的强度进入自己的注意力前台。

这在人类历史上是新的。

个人层面的 Nexus

在我关于信息网络的分析中,一个核心论点是:信息不仅仅是关于事实和真相的。信息更根本的功能是连接、组织和协调。

人类之所以能建立庞大的合作网络——从部落到帝国到全球化经济——不只是因为我们能交换事实。更重要的是,我们能围绕共同的叙事建立共同想象,围绕共同的制度建立共同流程。

故事——无论是宗教神话、民族叙事还是公司愿景——让人们相信某些事物的重要性。

制度——无论是法律、官僚体系还是市场规则——让人们持续地按照某种秩序行动。

故事解决「为什么」的问题。制度解决「如何持续」的问题。两者共同维持了复杂社会的运转。

如果我们把这个框架缩小到个人层面,会发现一个令人惊讶的同构关系。

一个人要长期改变自己——养成健康习惯、保持深度阅读、坚持内在觉察——同样需要故事和制度的配合。

他需要一个关于自己的叙事:「我是一个重视身体健康的人」「我是一个珍惜深度思考的人」。这些叙事提供方向感和意义感。

他也需要一套个人制度:提醒、记录、反馈、回顾、规则调整。这些制度让叙事不只是停留在口头上,而是落实到日常运转中。

从这个意义上说,一个人的注意力系统,就是他个人层面的信息网络——他的个人 Nexus。它决定了什么会反复进入他的意识、什么会被他忽略、什么会逐渐塑造他的习惯和性格。

而一个喝水 App,就是这个个人 Nexus 中一个微小但真实的节点。

纠错:比效率更重要的品质

但这里我必须提出一个严肃的警告。

在人类历史上,信息网络最大的危险从来不是信息不足,而是错误信息被系统性地复制和放大,而纠错机制被压制或缺失。

中世纪的教会是一个极其高效的信息网络。它在整个欧洲维持了数百年的思想统一。但这种高效的代价是:异见被系统性地清除,纠错机制被严重压制。当网络中的核心叙事出现问题时,整个系统没有能力自我修正。

20 世纪的极权主义宣传体系同样如此——高效、统一、覆盖面广,但根本缺乏纠错机制。

一个网络的健康程度,不取决于它传播信息的效率,而取决于它识别和修正错误的能力。

这个原则同样适用于个人层面。

一个人的注意力系统——他为自己设计的提醒、记录、反馈机制——同样面临代理指标劫持的风险。原本为了健康而追踪饮水量,渐渐变成了为了完成数字而机械喝水。原本为了理解而记录阅读,渐渐变成了为了打卡而翻书。原本为了觉察而练习冥想,渐渐变成了为了保持 streak 而完成任务。

目标被代理指标替换——这种异化不是以失败的形式出现的,而是以一种「一切运转良好」的假象出现的。

更深层的风险是感受力的退化。当系统越来越多地替代人对自身状态的直接感知时,人与自身经验之间的距离反而在增大。你不再「感觉到」自己的身体需要什么,而是等系统来告诉你。

因此,一个健康的个人注意力系统,必须内置纠错机制。它必须能够暴露自己的偏差,允许规则被质疑和更换,并始终维护一条最高原则:所有指标只是工具,真正的目标是那个活生生的、不可被完全量化的人本身。

谁来建造你的信息秩序?

纵观人类文明史,每一次信息技术的重大变革——从文字的发明到印刷术的普及,从电报到互联网——都深刻地改变了信息网络的结构,进而改变了社会的组织方式、权力的分配方式、以及人们理解自身和世界的方式。

AI 正在引发又一次这样的变革。而这次变革中一个特别值得注意的维度是:信息秩序的设计权开始部分地从机构向个体流动。

过去,组织大规模信息流动、设计显著性结构、编排人的注意力——这些是国家、教会、媒体和平台的专属能力。个体只能在已有的信息秩序中生存和适应。

而 AI 让个体开始有可能——尽管是在有限范围内——为自己构建一套小型的信息秩序。你可以决定什么信号被放大,什么形式被采用,什么时机被选择,什么反馈被设计。

这是一个前所未有的机会。但也伴随着严肃的责任。

因为信息秩序从来不是中性的。 它承载着价值判断,嵌入了权力关系,塑造着它所覆盖的那些人的认知和行为。当你为自己设计一套注意力系统时,你实际上是在为自己创建一套微型的信息秩序。这套秩序将持续地影响你看到什么、忽略什么、珍视什么、成为什么。

这也许是 AI 时代最核心的个体挑战:

你会把建造自己信息秩序的权力交给平台和算法吗?还是你会尝试参与这个建造过程——带着清醒的价值判断、内置的纠错机制、和对自身经验的持续尊重?

历史已经反复证明,当信息秩序的设计权高度集中时,后果往往是灾难性的。也许,个体参与设计自己的注意力结构,是防止这种集中的一小步。

但前提是,你必须认真对待这件事。因为你正在建造的,不只是一个工具。

你正在建造的,是你自己。

可编程的显著性:一个喝水App背后的时代性洞察(Paul Graham 风格)

发表于 2026/03/13 | 分类于 AI专题

可编程的显著性:一个喝水App背后的时代性洞察

——Paul Graham 风格:小切口,大纵深

我最近注意到一件有意思的事。

一个朋友用 AI 辅助编程,花了很短时间给自己写了个提醒喝水的 App。效果出奇地好——日均饮水量翻了将近一倍。

表面上看,这是个关于效率的小故事。AI 帮你更快写出工具,工具帮你养成习惯。但我越想越觉得,这个例子触碰到了一个远比效率更大的东西。

几乎没有人不知道喝水重要。这不是知识缺失。真正的瓶颈是,「喝水重要」这条信息无法稳定地进入你的注意力,并转化为行动。身体缺水的信号太微弱了,它根本竞争不过手机上的红点、工作中的截止日期、以及那些被精心设计过的通知推送。

⸻

这让我重新审视了「信息」和「注意力」的关系。

我们习惯认为,外面有大量信息,注意力是用来处理它们的。但这个模型太简单了。更准确的说法是:外部世界充满了差异和信号,但大多数永远只是背景噪音。只有那些成功进入注意力的信号,才有资格成为「信息」——也就是真正改变你判断和行为的东西。

换句话说,注意力不是在「处理」信息,而是在「生成」信息。它决定哪些差异有资格进入你的因果世界。

这个区分很重要。因为它解释了一个困扰很多人的现象:为什么知道很多道理,依然过不好这一生。

答案是,「知道」只发生在内容层。要真正改变一个人,一条道理必须反复进入注意力前台,在关键时刻被激活,转化为行动,并获得反馈。做不到这些,它就只是知识,不是力量。只是内容,不是结构。只是陈述,不是因果。

⸻

现代生活的残酷之处在于,这场注意力竞争从一开始就是不公平的。

你的注意力系统是进化塑造的。它偏爱突发的、鲜明的、情绪性的、带即时反馈的刺激。而生活中真正重要的很多东西——健康、深度阅读、冥想、长期关系、财务规划——恰恰具有完全相反的特征:缓慢、连续、低显著性、反馈延迟。

所以不是你意志力薄弱,是那些代表长期价值的信号,在注意力竞争中天然处于劣势。它们不够响,不够亮,不够刺激,因此反复输给那些更吵闹的低价值刺激。

一旦你这样看问题,很多东西就通了。「再提醒自己一下」「再努力一点」「再克制一点」——这些之所以常常不起作用,不是因为你缺一条提醒,而是因为整个注意力环境的竞争规则就对长期价值不友好。你不是在一个空白平面上与自己斗争,你是在一个被平台、产品逻辑和社交机制高度塑形过的环境里,与经过精心设计的显著性机制对抗。

⸻

这就是那个喝水 App 真正有意思的地方。

它不是又给你增加了一条「请喝水」的知识。它做的是一件更根本的事:把一个长期重要但短期微弱的信号,重新编码成更容易进入注意力的形式。它让原来那个信号强度只有 0.5 的身体感受,变成了一个强度为 6 的结构化提醒、带数据的趋势图、和恰当时机的触发。

我把这种能力叫做可编程的显著性。

显著性就是某个东西能否从背景中跳出来抓住你。过去,谁能大规模设计显著性,谁就对人的注意力流向有塑形权。这种权力主要属于平台和大公司。推荐算法、通知系统、信息流——它们本质上都是显著性编排机器。

而 AI 正在让这件事发生变化。一个普通人也可以为自己编程显著性了:决定某个信号什么时候出现、以什么形式出现、多频繁出现、是否结合历史行为做动态调整。

这意味着 AI 缩短的不只是编码时间。它缩短的是「我有一个模糊的自我改善意图」和「这个意图变成了一个持续运行的系统」之间的距离。过去,这两者之间隔着产品设计、界面开发、数据逻辑、反馈迭代等一系列高门槛。现在,一个人可以低成本地把自己珍视的某个价值——健康、阅读、冥想、写作——变成一个真正作用于日常生活的系统。

我把这些系统叫做注意力支架。

我们总以为习惯形成是意志力问题。但大量经验告诉我们,持久行为靠的从来不只是裸露的意志,而是环境、节奏、提醒、反馈和惯性的共同支撑。喝水 App 本质上就是一种注意力支架——它不是代替你健康,而是为「健康」这个价值提供了一套持续作用于注意力的外部结构。

⸻

如果只说到这里,这就只是一个乐观的技术故事。但真正有意思的部分,恰恰是从这里开始变得复杂的。

赫拉利在《Nexus》里提出过一个深刻的观点:信息不天然等同于真相。历史上推动大规模合作的,往往不是最接近事实的东西,而是更能连接人、制造共同叙事、嵌入制度流程的东西。信息首先是一种组织力量。

把这个洞见缩小到个人层面,完全成立。一个人要长期改变自己,不只需要正确的道理,还需要两样东西的配合:叙事和制度。

叙事是你对自己讲的故事:我是谁,我重视什么,我在成为什么样的人。它提供方向和意义。

制度是那些看似枯燥却让价值持续运行的东西:提醒、记录、反馈、回顾、规则调整。它让叙事从口号变成机制。

只有叙事没有制度,所有理想停留在心里。只有制度没有叙事,打卡变成机械行为,目标被悄悄替换。

这就引出了一个我必须提出来的危险:代理指标劫持。

几乎所有系统运行久了都会发生同一件事:那些本来只是中介手段的指标——打卡天数、完成率、数字——开始悄悄取代原目标。你开始为了完成数字而喝水,为了 streak 而阅读,为了打卡而冥想。系统表面顺畅运转,实际上你服务的目标已经被替换了。

这很危险。因为它不以失败的形式出现,而是以一种「看起来很好」的形式出现。

更隐蔽的风险是感受力退化。系统本来是帮你更敏锐地照顾自己。但如果外部提醒过于接管,你对身体和情绪的直接感受反而在减弱。原本是「我感觉我需要停一停」,变成了「系统还没报警,应该没事」。这会形成一种反转:系统越完善,你越可能失去与自己第一手接触的能力。

所以,一个好的系统关键不是高效,而是能自我纠错。用《Nexus》的话说,最危险的不是没有秩序的系统,而是错误一旦进入就能被稳定复制和放大、却没有出口的系统。

⸻

这就把我们带到一个更大的判断。

在 AI 时代,自律正在从一种人格品质,变成一种治理能力。

过去我们理解的自律是「扛住」——凭意志力一次次战胜分心和懒惰。但今天,真正影响一个人行为轨迹的,已经不只是当下一次次的意志决斗,而是他身处怎样的信息环境、怎样的显著性结构、怎样的反馈机制、怎样的叙事框架之中。

在这样的环境里,自律更准确的说法是「治理」:治理自己的注意力结构,治理什么反复进入前台,治理哪些弱信号值得被放大,治理系统如何服务于价值而不是反过来绑架价值,治理错误如何被自己及时看见。

而自由这个词也需要重新理解。在信息密度极高、显著性竞争极强的时代,自由不再只是「没人命令我」。一个人即使表面上没人强迫,也完全可能被环境和系统持续塑形。新的自由是一种架构能力:我能不能设计自己的注意力入口?我能不能让真正重要的东西获得稳定位置?

从这个角度看,写一个喝水 App 其实是一个非常微观、却很有象征性的自由动作。你在争回一部分原本会被环境吞掉的注意力编排权。你在说:至少在这件事上,我不想被动地被世界推着走,我想主动把某个价值放进自己的日常运行里。

⸻

所以,关于 AI,最重要的问题不是「它会不会替代我」,而是「我会不会放弃建造自己」。

AI 可以帮你写代码、做计划、汇总信息、观察模式。但不能替你决定你想成为什么样的人。更准确地说,它可以生成无数个「你应该成为什么」的模板,但真正的责任仍然在你:你是否还在亲自决定什么值得反复放进你的生命里,什么应该只当作工具,什么必须被怀疑,什么绝不能让系统替你定义。

未来最成熟的 AI 使用方式,不是「把自己交给系统」,而是「借助系统,更有力地建造自己」。前者会把人越用越空,后者则可能让人越用越清楚。

这也许就是 AI 时代最值得珍惜的可能性:不是让系统替我们活,而是让我们第一次更有能力,认真地设计自己的活法。

你大脑里的注意力争夺战(Tim Urban / Wait But Why 风格)

发表于 2026/03/13 | 分类于 AI专题

你大脑里的注意力争夺战

——Tim Urban / Wait But Why 风格:用幽默拆解深刻

一场你每天都在输的战争

我要跟你说一件你已经知道、但从来没认真想过的事:

你的大脑里每天都在发生一场战争。

战争的双方是这样的——

一边是一群安静、矮小、说话声音特别小的家伙。它们代表的是你生活中真正重要的长期价值:健康、深度阅读、冥想、写作、好好睡觉、认真运动、财务规划。

另一边是一群穿着荧光色紧身衣、拿着大喇叭、跳着劲舞的选手。它们代表的是:新消息通知、朋友圈点赞、短视频推荐、外卖 App 的红点、以及那个你明知道不该点但手指已经点上去了的「再看一个」按钮。

每天,这两拨力量在你的注意力竞技场上打架。

你猜谁赢?

对,几乎每次都是荧光色那帮赢。

不是因为它们更重要。而是因为它们更显著。

为什么你知道「该多喝水」但就是不喝

让我用一个具体的例子来说明这件事。

喝水。多喝水有益健康。你知道这件事吗?当然知道。你妈从你五岁起就在说。你的医生说。你朋友圈里的养生文章说。你自己也说。

但你今天到现在喝了多少水?

(如果你现在心虚了,那我们就对了。)

问题出在哪?出在你的身体在告诉你「我有点渴了」的时候,它发出的信号大概是这样的:

嗯……好像……有点……可能……需要……水……

声音小到像在图书馆里用气声说话。

而与此同时,你手机上弹出一条消息:

🔥 张三刚刚评论了你的动态!

这条消息的信号强度大概是一架歼-20从你头顶飞过。

所以你的注意力做了一个非常合理的决定:先看消息。水嘛,等会儿再说。

然后「等会儿」就变成了「忘了」。

这个场景每天重复几十次。不是关于喝水,而是关于你生活中所有那些「长期重要但现在不紧急」的事情:读书、运动、冥想、好好吃饭、认真思考、跟重要的人好好说话。

它们全都输给了那些穿荧光色紧身衣的选手。

你的大脑是一个设计有缺陷的夜总会

让我给你打一个比方。

想象你的大脑是一个夜总会。门口有一个保安,叫「注意力先生」。夜总会里面的空间非常小——大概只能同时容纳三到五个人。

每天,有几千个客人排队想进去。注意力先生需要决定放谁进。

问题在于,注意力先生的选拔标准是几十万年前设定的。那时候的世界很简单:老虎来了?放进去。食物出现了?放进去。异性出现了?放进去。其他的?不重要,在外面等着。

这套标准在旧石器时代完美运作。但现在的客人名单变了:

  • 「长期健康」穿着灰色毛衣,安安静静站在队尾
  • 「深度阅读」戴着眼镜,看起来有点无聊
  • 「冥想」闭着眼睛,甚至没在排队
  • 而「短视频推荐」穿着全身亮片,头上有 LED 灯,手里举着一块写着「免费多巴胺」的牌子

注意力先生看了一眼:「亮片选手,请进。」

「长期健康」在门口叹了口气。这已经是它今天第 47 次被拒绝了。

这就是你的生活。这就是所有人的生活。

不是你不重视那些长期重要的事情。是它们在你大脑的夜总会门口,天生就不够闪亮。

一个喝水App为什么值得写一整篇文章

回到开头的故事。有人用 AI 给自己写了一个喝水 App。

你可能会想:这有什么好说的?不就是个定时提醒吗?

不。这不是一个定时提醒。这是一次夜总会VIP改造工程。

这个 App 做的事情是:把「长期健康」那个穿灰色毛衣的安静选手,塞进了一套亮片紧身衣里。

具体来说,它把原来微弱的身体信号——「好像有点渴」——翻译成了一套注意力先生更容易注意到的形式:

  • 在你最容易忘记喝水的时段弹出提醒
  • 用数字和图表告诉你今天的进度
  • 在你连续两小时没喝水时加大提醒力度
  • 给你看这周的趋势变化

原来的「长期健康」还是那个「长期健康」,但现在它有了亮片、LED灯和一块写着「你今天才喝了 600ml」的牌子。

注意力先生瞟了一眼:「嗯,这个看着还挺紧急的。进来吧。」

这就是我所说的「可编程的显著性」。

过去,给客人穿亮片衣服这个能力,主要掌握在大型平台手里。抖音的推荐算法、微信的红点、外卖 App 的倒计时——它们都是专业的「亮片裁缝」,专门把各种短期刺激打扮得让你的注意力先生无法拒绝。

而现在,AI 让你也可以当一回裁缝了。你可以给你生活中那些安静但重要的选手做几套亮片衣服。

这事的意义比听起来大得多。

你其实不是「一个人」,你是「很多个人」

说到这里,我需要告诉你一个关于你自己的残酷真相。

你不是一个人。你是很多个人。

早上 7 点精神饱满、雄心壮志的你,和晚上 11 点瘫在沙发上只想刷手机的你,在很多重要问题上意见完全相反。

周一早上制定计划的你觉得「这周一定要读完这本书」。周四晚上的你觉得「我先看两集剧,书明天再说」。

情绪好的你相信长期主义。疲惫的你只想现在就舒服。

这不是你意志力薄弱。这是人的基本处境。不同时刻的你,就是不同的「人」,有着不同的优先级、不同的能量水平、不同的抵抗力。

所以,所谓「自我管理」,本质上不是「一个统一的我命令自己执行」,而是「早上那个更清醒的我,如何跨越时间去影响晚上那个更脆弱的我」。

而一个好的系统——比如那个喝水 App——做的就是这件事。它是你过去某个清醒时刻做出的决定,固化成了一个能在未来不同时刻持续生效的结构。它是「过去的你」写给「未来的你」的一封自动发送的信。

从这个意义上说,这些个人系统不只是工具。它们是跨时间的自我治理装置。

但是,小心你的系统变成你的牢房

到了这里,我必须说点不那么让人开心的事。

你知道什么比没有系统更糟吗?一个你已经忘记为什么要用的系统。

我来描述一个场景,看看你是不是觉得熟悉:

你设了一个冥想打卡。前两周感觉特别好。第三周开始,你发现自己冥想时一直在想「还剩几分钟」。第四周,你冥想的动力变成了「不能断 streak」。第五周,你在思考「如果我今天实在不想坐,能不能放个 3 分钟的引导音频算打卡」。

发现了吗?

你的目标从「培养觉察力」悄悄变成了「维护连续打卡天数」。系统还在完美运转。你的日历上全是绿色的对勾。但你已经不是在冥想了。你是在给打卡 App 打工。

这就是代理指标劫持——我给它起了个更生动的名字:数字妖怪。

数字妖怪是这样运作的:每个系统一开始都有一个真正的目标。为了追踪进度,你设了一些数字指标。然后渐渐地,数字指标变得比目标本身更显著、更容易衡量、更容易让你获得即时满足感。于是数字偷偷取代了目标。你以为你在追求目标,其实你在喂养数字。

喝水:目标是身体健康 → 变成了凑够 2000ml 的数字。

阅读:目标是深度理解 → 变成了「这个月读了几本」的计数器。

运动:目标是身体能力 → 变成了手环上的步数和卡路里。

写作:目标是思考和表达 → 变成了每天写够多少字。

数字妖怪的可怕之处在于,它不以失败的形式出现。你觉得自己很自律、很规律、很有成就感。但那种成就感已经偏离了你真正想要的东西。

还有一个更隐蔽的问题:感受力退化。

系统本来是帮你更敏锐地感知自己。但系统用得太多之后,你开始依赖系统告诉你「该喝水了」「该休息了」「今天状态不好」。你自己对身体和情绪的直接感受反而在减弱。

原本是「我觉得有点累了,需要休息」。现在变成了「手表说我今天睡眠评分 65 分,所以我大概需要休息?」

你成了自己数据的读者,而不是自己身体的感受者。

你的个人系统需要一个「反对党」

所以,一个真正好的系统长什么样?

我觉得它需要五个部分——

第一,传感器。 让原本微弱的信号变得可见。这是基础。

第二,翻译器。 把「我觉得不太对劲」变成「这里有一个我可以响应的具体模式」。

第三,反对党。 这是最关键也最缺的一个。你的系统里必须有一个角色,定期站出来问:「等等。这套东西真的在帮你吗?你是不是在骗自己?你最近是不是在为了数字而活?」

AI 在这里最高级的用途,不是做你的啦啦队长,而是做你的反对党——一个温和但坚定的质问者。

第四,换届选举。 任何规则都不应该永久有效。三个月前有效的提醒策略,现在可能已经变成噪音了。系统必须内置一个更新换代的机制。很多人不是没有系统,而是没有退出旧系统的制度。

第五,宪法。 一条最高原则:所有数字都是工具,不是目标。喝水是为了身体,不是为了 2000ml。阅读是为了理解,不是为了页数。冥想是为了觉察,不是为了 streak。当工具和目标冲突时,工具让路。

所以,这一切到底意味着什么?

让我把这些整合起来。

AI 时代真正深刻的变化不是「你可以更快地做事」。更深刻的变化是:你第一次有能力低成本地为自己设计注意力入口。

过去,「什么能成为你的信息」这件事,主要由进化、由平台、由你碰巧生活的环境来决定。你基本是被动的。

现在,你可以开始主动参与了。你可以给那些在你大脑夜总会门口排不上队的重要选手,做几套亮片衣服。你可以为自己的长期价值争夺一些注意力席位。

但这带来的不只是效率的提升,还是一种全新的责任。

因为一旦「什么进入你的注意力」变得可被设计,那你就不能再假装自己只是环境的受害者了。你不能一边说「都怪手机太好玩」,一边放弃为自己建造更好的信息生态。

在 AI 时代,自律不再只是「扛住诱惑」。自律是治理——治理你自己的注意力结构。

一个喝水 App 是治理。一个阅读系统是治理。一个冥想辅助工具是治理。一个写作素材聚合器是治理。它们每一个都很小。但它们合在一起,构成了你为自己建造的微型文明。

而这个微型文明的质量——它是否服务于真正的价值?它是否允许自我纠错?它是否保留了你对自身体验的直接感受?——将越来越决定你的生活质量。

所以,最后一个问题:

你打算继续让注意力先生按照旧石器时代的标准放人,还是要开始亲自设计你的 VIP 名单了?

你的大脑夜总会就那么大。你让谁进去,你就会变成什么样的人。

可编程的显著性:AI时代的注意力争夺战(万维钢风格)

发表于 2026/03/13 | 分类于 AI专题

可编程的显著性:AI时代的注意力争夺战

——万维钢风格:理性思维,精英日课

一个喝水App引发的深层问题

先说一个小事。有人用 AI 编程,花了很短时间给自己写了个提醒喝水的 App。装上之后,饮水习惯显著改善。

这个故事的表面含义是「AI 提高了开发效率」。但如果你仔细想想,会发现它远不止于此。

我们来做一个思想实验。请问,有谁不知道喝水重要?几乎没有。这条信息早就存在于所有人的知识库里。但为什么很多人还是喝水不够?

行为科学的回答很明确:知识不等于行为。 从知道到做到,中间隔着一条巨大的鸿沟。而这条鸿沟的本质,不是你缺乏意志力,而是注意力竞争。

这件事的关键在于,我们需要重新理解三个被严重混淆的概念。

第一个洞察:信号、注意力和信息是三个不同的东西

大多数人把「信息」理解为客观存在的内容,把「注意力」理解为处理信息的有限资源。这个模型太粗糙了。

更精确的理解是这样的——

信号是外部或内部已经存在的差异。身体的口渴是信号,手机上的红点是信号,桌上没翻的书也是信号。世界充满了信号。

注意力是一个极其有限的放大器。它决定哪些信号被选中,进入意识前台。

信息只有那些被注意力选中、并实际改变了你判断或行为的信号,才算得上信息。

卡尼曼在《思考,快与慢》中反复强调,人的认知资源极其有限。系统二的启动成本很高。你每天只有极少数信号能成功进入深度处理通道。

所以,注意力不是在「处理」信息,注意力是在「生成」信息。它决定哪些差异有资格对你产生因果作用。

两者之间的真正关系不是静态的,而是一个闭环:

信号 → 注意力选择 → 信息成立 → 行动与反馈 → 心智模型更新 → 下一轮注意力分配

这条链非常重要。它告诉我们,所谓「注意力问题」本质上从来不只是「我是否专注」,而是「什么差异有资格进入我的因果世界」。

第二个洞察:长期重要的事,天生输在起跑线

现在来看一个残酷的结构性事实。

你的注意力系统是进化塑造的。它天然偏爱什么?理查德·泰勒和卡斯·桑斯坦在《助推》中详细分析过这一点——人类天然被突发的、鲜明的、情绪性的、有即时反馈的刺激吸引。

而生活中真正塑造长期人生质量的东西呢?恰恰具有完全相反的特征:

  • 身体缺水——信号微弱、连续、可被延后
  • 睡眠债积累——不会即时惩罚你
  • 阅读能力退化——不会在一天内给你明确反馈
  • 冥想质量下降——只是让你更容易烦躁,而不是一记警报
  • 财务风险——长周期、低显著、弱反馈

这些都是「高价值、长周期、低显著」的信号。它们在注意力竞争中天然处于劣势。

核心判断:短期低价值信号的显著性,系统性地压过了长期高价值信号的显著性。

这不是你意志力的问题。这是注意力竞争场的结构性不公平。身体缺水的信号强度大概是 0.5,而一条朋友圈通知的信号强度是 8。谁会赢?答案早就注定了。

这也解释了为什么「再提醒自己一下」「再努力一点」常常不起作用。因为问题不是你缺一条提醒,而是整个注意力环境的竞争规则就对长期价值不友好。

第三个洞察:AI真正改变的是「意图到系统」的距离

理解了上面的分析,你就会明白那个喝水 App 为什么有趣了。

它做的不是给你增加一条「请喝水」的知识。它做的是信号增幅——把一个弱信号重新编码,提高它在注意力竞争中的排名。

而 AI 在这里扮演的角色,远不只是编码加速器。

AI 真正改变的是一个更根本的结构:一个人从模糊意图到可运行系统之间的距离。

过去,你即便很清楚想改善某个方面——比如多喝水、规律阅读、固定冥想——中间还隔着产品设计、工程实现、界面交互、数据逻辑、反馈迭代的高门槛。现在,一个普通人可以低成本地把自己的价值目标变成持续运行的系统。

查尔斯·杜希格在《习惯的力量》中讲「提示——惯常行为——奖赏」回路。但他没有回答一个问题:谁来设计这个回路?过去只有大公司和平台有这个能力。AI 让个体也有了。

我把这种系统叫做注意力支架。它不是代替你意志坚强,而是为长期重要的价值提供一套持续作用于注意力的外部结构。

第四个洞察:可编程的显著性——一个时代级概念

在这里,我要提出一个我认为非常关键的概念:可编程的显著性(Programmable Salience)。

显著性是指某个东西能否从背景中跳出来抓住注意力。过去,大规模设计显著性的能力主要属于平台和大公司——推荐算法、通知系统、信息流,本质上都是显著性编排机器。

AI 让显著性变得可被个人编程了。你可以决定:

  1. 一个信号什么时候出现
  2. 以什么形式出现(文字、图表、语音、对话)
  3. 出现频率如何
  4. 是否结合历史行为动态调整
  5. 是否根据你当天的日程和状态做自适应

信息时代正在从「获取信息」转向「编排显著性」。 过去的瓶颈是获取——我能不能搜到、学到。今天真正稀缺的是编排——哪些信息值得进入生活系统,何时进入,以何种形式进入,能否转化为持续作用。

第五个洞察:你需要「神话」和「官僚制」的配合

赫拉利在《Nexus》中提出过一个深刻的判断:信息不等同于真相。历史上推动大规模合作的,往往不是最接近事实的东西,而是更能连接人、制造共同叙事、嵌入制度流程的东西。

信息首先是一种组织力量。

把这个洞见缩小到个人层面,会发现一个非常实用的框架:一个人要长期改变自己,需要两套系统的配合——

「神话」(叙事层): 我是谁?我重视什么?我在成为什么样的人?这些故事提供方向和意义。比如「我是一个愿意照顾身体的人」「我是一个珍惜深度阅读的人」。

「官僚制」(制度层): 提醒、记录、反馈、回顾、规则调整。这些看似枯燥的流程,把价值从语言层带到运行层。

很多人的问题出在两者严重失衡:

  • 只有神话没有官僚制——你有大量价值观,却没有任何流程支撑,所有理想停留在心里。
  • 只有官僚制没有神话——打卡很漂亮,表格很整齐,但早已忘记为什么开始。系统从服务价值变成了替代价值。

高手的做法是让两者互相校准:叙事提供方向和意义,流程提供持续性和可执行性,二者都接受现实和反馈的修正。

第六个洞察:最大的危险不是效率不足,而是代理指标劫持

这是我必须强调的一点。

几乎所有系统运行久了都会发生同一件事:那些本来只是中介手段的指标——打卡天数、完成率、数字——悄悄取代了原目标。

你开始为了打卡而喝水,为了 streak 而阅读,为了冥想时长而冥想,为了字数而写作。系统表面上运转良好,但目标已经偷偷换掉了。

古德哈特定律说得很明白:一旦一个指标变成目标,它就不再是好的指标。

更隐蔽的风险是感受力退化。系统过强时,你对身体和情绪的直接感受反而减弱。原本是「我感觉需要停一停」,变成了「系统还没报警,应该没事」。

所以,一个健康的个人系统应该包含五层结构:

  1. 传感器层——让弱信号可见。没有足够分辨率的传感器,后面一切无从谈起。
  2. 翻译器层——把模糊感受变成可处理的信息模式。把「觉得不太对劲」翻译成「这里有一个可以响应的模式」。
  3. 反对派层——这是最缺的一层。你需要某种机制来定期问自己:这套东西真的在帮我吗?我是不是在骗自己?
  4. 选举层——任何规则都不应永久有效。系统必须内置废除旧规则、替换旧策略的路径。
  5. 宪法层——最高层。守住一条底线:指标只是工具,不是目标。喝水不是为了数字,阅读不是为了页数,冥想不是为了打卡。

重新定义自律:从「扛住」到「治理」

如果用一句话总结这篇文章的核心判断:

在 AI 时代,自律正在从一种人格品质,变成一种系统设计能力。

过去的自律是「扛住」——凭意志力一次次战胜分心和懒惰。今天的自律更像是「治理」——

  • 治理自己的注意力结构
  • 治理什么会反复进入前台
  • 治理哪些弱信号值得被放大
  • 治理哪些指标只能做工具
  • 治理系统如何服务于价值而不是绑架价值
  • 治理不同时间点的自己如何形成连续性

一个人未来的成熟,越来越少表现为超强意志,越来越多表现为足够好的认知治理能力。

自由也需要重新理解。在信息密度极高的时代,自由不再只是「没人命令我」,而是:我能否设计自己的注意力入口,我能否让真正重要的东西获得稳定位置。

AI 让「把意图变成持续运行的信息结构」这件事的成本骤降。这既是机会,也是挑战。

机会在于:你第一次可以为自己建造一套服务于长期价值的认知基础设施。

挑战在于:你是用 AI 来建造自己,还是不知不觉中把自己交给另一个更精密的外部系统。

未来真正有竞争力的人,不一定知道得最多或动作最快。而是那些能为自己搭建更好信息生态、更会为长期价值争夺显著性的人。

这个选择,将定义你在 AI 时代的真正自由度。

可编程的显著性:信息、注意力与自我治理的哲学审视(刘擎风格)

发表于 2026/03/13 | 分类于 AI专题

可编程的显著性:信息、注意力与自我治理的哲学审视

——刘擎风格:概念辨析与公共哲学

一、从一个日常案例进入哲学问题

我们不妨从一个看起来极其平凡的案例开始。

一位朋友借助 AI 辅助编程,为自己开发了一个提醒喝水的应用。这个小系统在恰当的时刻提示他补水,记录他的饮水数据,并通过可视化反馈帮助他形成了更好的习惯。结果相当明显——他的日常饮水量获得了实质性改善。

如果我们把这件事仅仅理解为一个技术效率的故事,就会错过它所揭示的更深层问题。因为「多喝水有益健康」从来就不是一条稀缺的知识。几乎所有人都知道这一点。这里的困难不在于认知层面的「不知道」,而在于一个更根本的结构性断裂:知道一件事,并不意味着这件事就能持续地作用于你。

这个断裂指向的,其实是一组古老而深刻的哲学问题:知识与行动之间的关系究竟是什么?一个人为什么会「知善而不为善」?在亚里士多德那里,这被称为akrasia——意志薄弱。而在当代认知科学和信息技术的语境下,我们或许需要重新审视这个问题:也许核心障碍不是意志的薄弱,而是信号的淹没。

二、信号、注意力与信息:一组需要严格区分的概念

要理解这个问题,我们首先需要在概念层面做一个重要的区分。在日常用语中,「信息」和「注意力」往往被不加辨别地混用。人们说「信息太多了」,也说「注意力不够用了」,似乎二者不过是一个问题的两面。但如果我们审慎地对待这两个概念,就会发现它们之间的关系远比我们通常以为的更加复杂。

我认为有必要区分三个层次:

第一,信号。 信号是世界中已经存在的差异——身体的微弱口渴感、屏幕上的通知红点、一本搁置很久的书。它们不依赖于任何人的关注而存在,但它们本身尚不构成有意义的信息。

第二,注意力。 注意力是将有限的认知资源指向特定信号的机制。它不只是一种被动的「接收」,更是一种主动的「选择」和「放大」。注意力决定了哪些信号从背景中被提取出来,进入前台意识。

第三,信息。 真正意义上的信息,不是客观地「摆」在那里的东西。更准确地说,信息是那些经由注意力选择,成功进入了一个主体的认知过程,并实际改变了其判断、情感状态或行动倾向的差异。

这个三层区分揭示了一个常被忽视的要点:注意力与信息之间不是简单的处理关系,而是一种生成关系。 没有注意力的参与,信号不会自动成为信息。反过来,一个信号一旦成为信息——即真正改变了一个人的心智模型——它又会反过来重塑这个人的注意力结构,影响他在下一时刻会「看见」什么。

从哲学上看,这里存在一种深刻的循环结构。海德格尔曾指出,我们总是已经处于一种「被抛」的状态之中——我们不是先有一个中立的认知能力,然后再去面对世界;我们总是已经被特定的关切、情境和前理解所塑形。注意力,在某种意义上,就是这种「前理解」在认知层面的运作方式。它不是中性的处理器,而是一个已经带有方向性的选择机制。

三、显著性的不平等:一个结构性的伦理问题

一旦我们接受了上述概念框架,就会看到一个极具伦理意味的结构性问题:在现代生活条件下,不同类型的信号进入注意力前台的机会是极不平等的。

人类的注意力系统是长期进化的产物。它对突发的、鲜明的、情绪激烈的、具有即时社会意义的刺激高度敏感。而那些真正关乎长期生活品质的事物——健康维护、深度阅读、持续的自我反思、稳定的亲密关系、财务的审慎规划——恰恰具有相反的信号特征:缓慢、连续、显著性低、反馈严重延迟。

查尔斯·泰勒在讨论现代人的道德处境时提出过「强评价」的概念——人不只是有欲望,更有对欲望进行评价的能力,能够区分哪些欲望值得追随,哪些应当被抵制。但泰勒也承认,这种强评价的能力并不是在真空中运作的。它需要特定的社会条件、文化资源和制度支撑。

我们今天面临的困境恰恰在于:现代信息环境系统性地削弱了强评价的运作条件。 当短期低价值信号的显著性持续压过长期高价值信号时,一个人即便拥有清晰的价值判断,也难以让这种判断持续地组织自己的日常行为。问题不是他「不知道」什么重要,而是那些重要的东西无法在注意力竞争中获得足够的因果效力。

这不再只是个人意志的问题,而是一个关于显著性分配的结构性正义问题。谁有权力设计什么更显著、什么更容易被看到、什么更频繁地进入人的意识前台?在当下的技术环境中,这种权力主要掌握在平台型企业手中。推荐算法、通知系统、内容流的设计,本质上都是在行使一种对显著性的编排权——它们不是中立地传递信息,而是在积极地塑造什么「值得」被注意。

四、可编程的显著性:认知主权的新起点

正是在这个背景下,AI 带来的一个重要变化开始显得格外有意义。

过去,精细地设计显著性——设计什么以什么方式、在什么时机、以什么频率进入一个人的注意力——这种能力基本只属于机构和平台。而 AI 开始让这种能力部分地回到个体手中。

一个人现在可以低成本地为自己设计:某个信号何时出现、以何种形式出现、是否结合个人历史行为做动态调整、是否根据当天的情境做自适应。这就是我所说的可编程的显著性。

这个概念的哲学意义在于:它开始松动过去那种个体面对大型系统时的单向被动关系。过去,个体面对平台设计的显著性结构,更多只有防御性的应对——关掉通知、删除应用、提高自控。而现在,个体开始拥有了建设性的可能——主动为自己长期珍视的价值搭建信息基础设施。

阿伦特曾将自由理解为「开端」的能力——自由不只是不受干预,更是能够在世界中发起新事物、创造新结构的能力。从这个角度看,一个人用 AI 为自己搭建一套服务于健康、阅读、深度思考的系统,恰恰是在行使一种阿伦特意义上的自由。他不是在消极地抵抗外部侵扰,而是在积极地为自己创建一种新的注意力秩序。

五、叙事与制度:个人改变的双重条件

但如果我们止步于此,就会把问题过度简化为一个技术乐观主义的故事。事实上,一个系统是否真正服务于人的长期价值,取决于一个更深层的条件:叙事与制度的互相校准。

赫拉利在《Nexus》中有一个深刻的洞察:人类文明之所以能扩大合作,不仅因为我们能交换事实,还因为我们能围绕叙事建立共同想象,围绕制度建立共同流程。故事让人愿意相信,制度让人持续行动。

将这个洞见缩小到个人层面,我们会发现完全同构的结构。一个人的长期自我改变,同样依赖两个要素的配合:

叙事——关于「我是谁」「我重视什么」「我在成为什么样的人」的自我理解。麦金太尔在《追寻美德》中强调,人的道德生活不是一系列孤立的决策,而是一个有统一性的叙事。我们需要一个关于自己的故事,来为日常行动提供方向和意义。

制度——那些看似枯燥但让价值得以持续运行的结构:提醒、记录、反馈、回顾、规则调整。它们负责把价值从语言层带到运行层。

这里存在一个根本性的张力。叙事没有制度的支撑,会沦为自我感动——你有大量关于理想自我的表述,但生活中没有任何机制让这些表述兑现。而制度失去了叙事的指引,则会退化为官僚主义的自我控制——你精确地打卡、记录、完成指标,却早已遗忘了做这些事的初衷。

好的个人系统,必须让叙事和制度保持动态的互相校准。 叙事提供「为什么值得」的回答;制度提供「如何让它持续生效」的路径;而现实和反馈则提供对两者的检验和修正。

六、代理指标劫持与自我纠错的必要

这就引出了一个至关重要的问题:什么才是一个「好」系统?

一个常见的误解是,好系统就是高效、稳定、自动化的系统。但效率本身并不保证价值方向的正确。一个能稳定放大错误方向的系统,不会因为它运转流畅就变成好系统。

福柯对现代治理术的分析在此具有警示意义:权力最有效的运作方式,往往不是直接的压迫,而是通过设定正常与异常的标准、通过量化和分类、通过看似中立的管理技术来塑形主体。当一个人的自我系统过度依赖量化指标——打卡天数、完成率、连续记录——他实际上可能正在经历一种自我施加的福柯式治理:代理指标悄悄替代了原目标,工具反转为主人。

这就是代理指标劫持的危险。你开始为数字而喝水,为 streak 而阅读,为时长而冥想。系统的目标被偷换了,但因为表面上一切运转良好,这种偷换极难被察觉。

与之相伴的还有一种更深层的风险:感受力的退化。 系统本来是为了增强一个人对自身状态的觉察。但如果系统过强、提醒过密、外部指标过于替代内在感受,最终可能导致一个人与自身经验之间的距离越来越远。他不再「感受到」自己渴了,而是等系统告诉他该喝水了。梅洛-庞蒂所强调的那种身体与世界之间的原初交往,在过度系统化的生活中反而可能被削弱。

因此,好的系统的核心标准不是效率,而是自我纠错的能力。 它必须包含暴露偏差的机制——让使用者能够看到自己正在如何偏离初衷;它必须允许规则的更新和废除——今天有效的策略不一定三个月后还有效;最重要的是,它必须保留一个「宪法层」——始终提醒:指标是工具,不是目标;系统是支撑,不是主人。

七、自律的重构:从人格品质到治理能力

以上分析汇聚起来,指向了一个关于「自律」的深层重构。

传统的理解将自律视为一种人格品质:能忍耐、能克制、能坚持。这种理解预设了一个统一的意志主体,通过自身的力量来抵抗外部诱惑和内在惰性。

但在当代信息环境中,这种理解越来越不够用了。因为真正影响一个人行为轨迹的,已经不只是当下一次次的意志决斗,而是他身处怎样的信息环境、怎样的显著性结构、怎样的反馈机制。

在这样的条件下,自律正在发生一次深刻的概念转型:从「扛住」转向「治理」。 它不再只是一种内在品质的展现,而越来越像是一种系统设计和系统维护的能力——治理自己的注意力结构,治理什么持续进入前台,治理系统如何服务于价值而不是反噬价值。

自由也因此获得了一层新的含义。在信息密度极高、显著性竞争极强的时代,自由不再只是消极意义上的「不受干涉」,也不只是积极意义上的「自我实现」。它还包含一层新的维度:是否有能力设计自己的注意力入口,是否有能力让自己真正珍视的事物在日常生活中获得持续的因果地位。

从这个意义上说,一个人为自己编写的喝水 App 虽然微小,却具有哲学上的示范意义。它示范了一种在 AI 时代开始成为可能的新能力:让个体不再只是被动地被信息环境塑形,而是开始主动参与到塑造自己注意力结构的过程中来。

但这种可能性也伴随着严肃的责任。AI 可以帮助你建造系统,却不能替你决定系统应当服务于什么。它可以提供无数关于「好生活」的模板,但关于「什么是我的好生活」这个问题,最终的判断权仍然——也必须——属于你自己。

人的尊严,在 AI 时代,某种程度上恰恰体现在这里:不是拒绝使用系统,而是在使用系统的同时,依然保有为自己设定方向、为自己搭建纠错机制、为自己保留最终解释权的意愿和能力。

一杯水里的信息论(梁文道风格)

发表于 2026/03/13 | 分类于 AI专题

一杯水里的信息论

——梁文道风格:散文笔触,文化观照

一

有一段时间,我对「提醒」这件事很着迷。

不是因为它有多复杂,恰恰相反,是因为它太简单了,简单到让人忍不住想追问:为什么一个成年人需要被提醒去做一件他早就知道应该做的事?

起因是一个朋友的故事。他用 AI 帮自己写了一个提醒喝水的小程序。装了以后,据说饮水习惯大为改善。我听了以后觉得挺好笑——一个受过高等教育、日常能处理大量复杂工作的人,居然需要一个 App 来告诉他:你该喝水了。

但笑过之后我发现,我自己又何尝不是如此。

我桌上那个保温杯经常到下午还剩大半杯没动过。不是不渴,而是那种渴的感觉太轻了,轻到像一阵过堂风,还没等你回过神来,就被一封邮件、一条消息、一个会议通知给吹散了。

身体的声音本来就小。而我们生活的这个世界,实在太吵了。

二

博尔赫斯写过一个关于记忆的故事。福内斯,那个什么都记得的人,因为记忆太完美而无法思考。他的问题不是信息不足,而是信息泛滥到失去了结构,每一个细节都同等地涌入意识,没有任何东西被遗忘,因此也没有任何东西真正「重要」。

这个故事总让我想到我们这个时代。

我们和福内斯的困境恰好相反。我们不是记得太多,而是注意到的太少——或者更准确地说,我们注意到了太多不重要的东西,以至于重要的东西反而被淹没了。

问题不在于世界上没有值得关注的事物。问题在于,值得关注的事物不会自己跳出来对你喊叫。它们通常是安静的、缓慢的、需要你主动去倾听的。而现代生活的设计,从本质上是反倾听的——它倾向于把最能刺激你即时反应的东西推到最前面,而把那些需要时间才能展现价值的东西压到最底下。

一杯水就是这样被压到底下的。

不只是水。还有一本需要慢慢读的书。一段需要安静才能进行的对话。一次需要不被打断才能有效的冥想。一个需要你停下来才能感受到的身体信号。

三

我读赫拉利的《Nexus》时,有一个判断让我停了很久。

他说,信息从来不只是关于「真相」的。信息更深的功能,是连接和组织。

人类之所以能建立起大规模合作——从宗教到帝国到现代国家——不是因为我们总是在传递真实的事实,而是因为我们能围绕共同的叙事建立信任和秩序。故事未必是真的,但它能让人相信某些东西值得追求。制度未必是完美的,但它能让人持续地按照某种规则行动。

这让我想到一件很私人的事。

我曾经尝试过很多次养成规律阅读的习惯。每次开始的时候都充满热情。买书、列清单、制定计划、下载 App。但总是几周之后就逐渐松懈了。书还是堆在那里,清单还是长长的,只是我的注意力已经被别的东西带走了。

后来我慢慢意识到,问题不在于我不够自律。问题在于,「我想成为一个深度阅读者」这个叙事,在我的日常生活中缺少制度的支撑。

我有故事——我知道阅读对我意味着什么。但我没有制度——我没有任何机制来确保这个故事在日常运行中反复生效。它就像一个美好的念头,每天早上短暂地出现在脑海里,然后被一天的琐事冲走。

而那些成功占据我注意力的东西——社交媒体的信息流、邮件的通知、新闻的推送——它们之所以成功,恰恰是因为它们同时拥有叙事和制度。它们有一套完整的机制来确保自己反复出现在我面前,并且每一次出现都带着恰到好处的显著性。

四

所以当我听到那个喝水 App 的故事时,我真正在意的不是它的技术实现。

我在意的是一个更微妙的问题:一个人能不能为自己珍视的价值,搭建哪怕是一个很小的制度?

这个 App 做的事情其实很简单:它把一个微弱的信号(身体的口渴)翻译成了一种更容易被注意到的形式(界面上的数字和恰当时机的提醒)。它不是在增加什么新知识,而是在改变一个已有信息与注意力之间的关系。

我把这种改变叫做显著性的重新编排。

如果仔细想想,你会发现,我们生活中绝大多数真正有影响力的变化,其实都不是发生在「知不知道」的层面上的,而是发生在「什么东西能持续地进入我的注意力」这个层面上。

一段关系之所以疏远,通常不是因为你不再在乎,而是因为在乎这件事在日常运行中失去了入口。

一个习惯之所以消退,通常不是因为你改变了价值观,而是因为这个价值在注意力竞争中被更吵闹的东西挤掉了。

一个人之所以「变了」,也许不是他的内心真的变了,而是他的注意力生态变了——他每天反复看见的、反复被提醒的、反复被卷入的东西变了。而人,终究是被自己反复经历的东西塑造的。

五

我想起了古人的一个做法。

宋代士大夫有一种习惯,叫做「座右铭」。把自己最看重的箴言写在纸上,贴在书桌右边。每天坐下来,第一眼就能看到。

这看起来是一个很朴素的做法。但如果用我们刚才的概念来重新理解,它其实是一种非常古老的「显著性编排」技术。它做的事情和那个喝水 App 没有本质区别——都是把一个重要但容易被日常琐事冲淡的价值,通过空间布置或技术手段,固定在注意力容易抵达的位置上。

差别在于,古人的信息环境相对简单。一张座右铭就足以与周遭的其他信号竞争。而今天,你的注意力面对的竞争者如此之多、如此专业、如此精于抓取你的反应——一张纸条已经完全不够用了。

AI 在这里扮演的角色,也许就像是一种新的文房四宝。它不改变你要写什么,但它极大地改变了你能用什么来写、以什么形式来固定你的意图。

六

不过,写到这里,我想说一些谨慎的话。

系统是好的。提醒是好的。反馈是好的。但所有这些东西都有一个前提:它们在为一个值得服务的目标工作。

我见过很多人被自己建造的系统异化。冥想变成了打卡。阅读变成了凑数。写作变成了流水线。运动变成了被手环上的数字驱使。系统还在完美地运转,但里面那个「人」已经不在了。

这让我想到加缪说过的话:西西弗斯每天推石上山,重点不在于石头有没有推到山顶,而在于他是否还清楚自己为什么在推。

一个喝水 App 的价值,不在于你是否每天喝够了 2000 毫升。而在于你是否还清楚:你喝水是为了照顾自己的身体,而不是为了让一个数字变绿。

一个阅读系统的价值,不在于你是否这个月读完了四本书。而在于你是否还能在阅读中感受到某种智识上的亲密——那种文字进入你的思维、打开一个你原本没有的空间的感受。

一个冥想练习的价值,不在于你是否保持了 365 天的连续记录。而在于你是否还能在练习中真正回到呼吸,回到身体,回到那个安静的、不被任何指标衡量的当下。

指标是地图,不是风景。 当你开始为了地图而行走时,你就已经迷路了——即便地图上的路线标注得再清楚。

七

本雅明在讨论机械复制时代的艺术时,提出过「灵光」这个概念。他说,原作之所以有一种复制品不具备的气质,在于它的「此时此地」——它的独一无二的存在感。

我觉得人的直接感受也有一种「灵光」。

「我感觉有点渴了」——这句话里包含的东西,远比「你今天只喝了 600ml」丰富得多。它包含了你对自己身体的直接觉知,包含了一种不需要经过数字中介的自我关照。

系统可以帮助你找回这种感觉,但也可能取代它。好的系统像一个温和的提示——它轻轻碰你一下,然后退开,让你自己去感受。坏的系统像一面永远亮着的屏幕——它不断告诉你应该感受什么,直到你自己的感受被完全覆盖。

八

所以最终,问题也许不在于要不要建系统。问题在于:你和你的系统之间,是什么样的关系?

它是你的工具,还是你的主人?它是帮你回到自己的附近,还是在制造另一层遮蔽?它让你变得更敏锐了,还是更麻木了?

我没有标准答案。我只觉得,在这个一切都可以被追踪、被量化、被优化的时代,有一种能力正在变得越来越珍贵:

那就是在没有任何系统提醒你的时候,你依然能安静地坐下来,端起那杯水,因为你感觉到自己需要它。

不是因为数据告诉你,不是因为通知提醒你,不是因为 streak 要求你。

而是因为你,你自己,在那个当下,真实地感受到了。

也许这才是所有系统最终应该服务的目标:不是让你做得更多,而是让你感受得更清楚。

不是让你更高效地活着,而是让你更真实地活着。

12…32下一页

316 日志
9 分类
RSS
© 2017 — 2026 李文业
由 Hexo 强力驱动
|
主题 — NexT.Muse
粤ICP备17160932号