今天终于把个人主页上线了。没有想象中的激动,反而隐隐约约有一丝如释重负的感觉,像是写完毕业论文交稿的那一刻,不是兴奋,而是终于可以好好呼吸了。

明明没有任何人要求我做这件事,也没有谁给过我一个截止日期,但整个清明假期我给自己上的那股发条,紧得跟赶论文时候一模一样。后来想想,大概是骨子里那点焦虑在作祟吧,也和性格有关,MBTI里「J」的比重偏大,习惯按计划推进事情,一旦节奏被打乱就容易心烦。不过保留这点焦虑也未尝不是好事,人天生就有惰性,总得有点什么在后面推一把。

做个人主页这个念头,最早大概25年初就有了。起因很简单,想记录点什么。相比向外去寻找什么,我大概是更倾向于向内求的那类人。以前上学的时候,语文课上总不太理解为什么那么多诗人作家会有那种不写点什么就浑身难受的冲动。后来有段时间突然理解了,「写」这件事表面上是在记录,更深一层其实是在和自己对话。把做过的事情、正在发生的事情一条条理清楚,很多纷杂的想法和情绪就在这个过程中慢慢沉淀下来。

只是在决定做网页之前,这些想法一直停留在脑子里,未曾真正落地。一方面不知道把内容放在哪里,我并没有想过拿这些去经营社交媒体。另一方面是技术上的限制,毕竟完全没有代码基础。

转折发生在去年年底。coding agent异军突起,网上铺天盖地的案例让我觉得自己好像也可以试试。再加上去年在AI产品经理大会机缘巧合下看到可以用NFC卡做一个电子版的个人主页「名片」,也觉得很有意思,准备尝试一下。然后因为各种事情一直没腾出手,拖到上周五才正式动手。

从开工到上线,前后大概一个礼拜,实际投入四五天。其中大部分时间花在了整理材料上,Logo、头像、文案、布局排版,平时做产品关注的都是app,真到自己上手做网页才发现需要考虑的东西远比预想多。但真正需要coding的时间,大概只有一个小时出头。上周五跑完步回来,打开电脑和Claude Code聊了聊需求,不到半小时前端框架就写完了,再花半小时注册Vercel账号、配置部署,大概就搭好了。坦率地讲,那一个小时里我觉得我才是Claude Code的瓶颈,它写代码五分钟,我注册账号填token十分钟。

之后几天白天摸鱼准备素材,晚上加班调细节,直到今天清明假最后一天从早搞到晚,终于完成。对我个人来说这算是一个不小的里程碑,一个完全没有代码基础的人,借助AI把一件从想法到上线的事做成了,效果比预期好得多。

但真正让我觉得值得写下来的,不是这件事本身,而是做完之后沉淀下来的一些思考。

第一个感受是,AI确实能够极大地拓展一个人的能力范围。整个过程里,从logo图片该用什么格式到网页该选什么技术栈,几乎所有超出我知识范围的问题,都是和AI协作解决的。它不只是一个执行工具,更像是一个随时在线的协作者,我负责描述想要的效果,它负责提供实现路径。

过程中不可避免地冒出过一个念头,我能做到以前做不到的事,究竟是我自己变强了,还是工具变强了?但仔细想想,这两者并不矛盾,甚至是同一件事的两个面。AI为每个人提供了一个强大的杠杆,而学会使用这个杠杆,本身就是一种新的能力。我不需要成为工具本身,我只需要做成那件事。这也是为什么这个时代大家都在谈论harness,如何驾驭AI,而不是如何成为AI。

但第二个感受,可能更值得被认真对待。

基本的原理认知和判断力,依然需要人自己先具备。AI虽然强大,但它会犯错,而且犯起错来有一种令人叹服的执着。部署的最后阶段我遇到了一个字段映射的问题,明明一个简单脚本就能解决,Claude Code硬是要用Python写一套原生的映射逻辑,然后不断出错、不断修改、再出错、再修改,烧掉了几百k的token在同一个坑里打转。要不是我把代码单独丢给Claude做了一次独立分析,跳出了那个死循环,今天可能就上不了线了。

这件事让我意识到一个很重要的事实,工具不知道自己不知道什么,但我们需要知道。

类似的情况后来又发生了一次。我在用OpenClaw的时候遇到了一个系统bug,问它为什么同一个问题会连续给我发两条一模一样的回复。它给的答案是,可能是我问了两遍,或者announce和主动触发同时发生了,以后会注意把两者分开。

我看完第一反应是,这不就是开会时答不上来领导问题的标准敷衍话术吗。

后来冷静想了想,这背后其实藏着一个比「犯错」更深层的问题。大模型有一套自己的「节能模式」,就像人类大脑里「快思考」的部分,对简单问题跳过复杂推理直接给结论。这个机制本身没有问题,DeepSeek甚至专门为此发了论文来做优化。但关键在于,什么时候该快思考、什么时候该慢下来认真推理,模型自己是很难判断的。我觉得这也是顶尖模型和普通模型之间最核心的差距之一。

而更根本的原因在于,大模型是没有认知的。它完全依赖于上下文。当系统出了问题,我不知道原因在哪里,它也不知道,但它不知道自己不知道,又因为必须给我一个回答,于是就编了一个看上去合理的答案。直到我告诉它「你不知道原因就去查日志」,它才去做了正确的事。

Claude Code在错误方向上死磕是如此,OpenClaw面对未知问题编答案也是如此。AI可以帮我写出我写不出的代码,可以帮我解决我解决不了的技术问题,但它无法替代我去理解问题的本质,也无法替代我去判断哪条路是对的、哪条路是死胡同。当它在错误的方向上越陷越深的时候,需要有人站在更高的位置把它拉回来。而这个「更高的位置」,只能来自于人自己的认知积累和经验沉淀。

这也让我对harness这个概念有了更深一层的理解。所谓harness,也许不仅仅是「驾驭」或「使用」,更像是在模型拥有真正的自我认知之前,通过一系列外部的规则、护栏和引导,给它构建一套能基本运转的认知框架。打个不太恰当的比方,就像给一个人装上人工心脏或者呼吸机,在他能自主呼吸之前,先依赖外部提供的环境活着。而现阶段那个「装呼吸机的人」,就是我们。

所以我觉得,在AI能力日新月异的当下,真正需要想清楚的问题其实就两个方向。

一个方向是,不要因为AI太好用就放弃了自己去理解、去体验、去积累的过程。AI能帮你跑完最后一公里,但前面那些路,你自己走过和没走过,最终沉淀下来的判断力是完全不同的。如果过度依赖工具而荒废了个人的成长和体验,那么当工具犯错的时候,你甚至没有能力意识到它在犯错。这才是最危险的地方。

另一个方向是,不要因为AI可能犯错就因噎废食,拒绝去拥抱新技术。每一代新工具出现的时候都会有人质疑、有人恐惧、有人抵触,这很正常。但工具就是工具,它拓展的是可能性,而不是取代你。固步自封地拒绝使用,不会让你更安全,只会让你在一个加速变化的时代里逐渐被甩在后面。

理解工具的能力边界在哪里,理解自己的能力边界在哪里,然后在两者之间找到那个协作的最佳位置。工具能做的交给工具,工具意识不到的由人来兜底,各取所长,互为补充。这大概是我经过这一个礼拜最想说清楚的一件事。

也许未来到了L4的AI甚至AGI,这些边界就不复存在了。但至少在当下,它们依然清晰地摆在那里。而正因为还在,这个寻找边界、理解边界、在边界之间找到平衡的过程,才有它独特的价值和意义。

以此记录。终于可以睡个安稳觉了。

晚安。