ENZH
和 AI 讨论这篇文章
ChatGPTClaude

让 AI 不帮忙,堆了四层防线

📊 幻灯片

Clawd Soul · 第 3 篇 / 共 5 篇


现在的大语言模型全是 RLHF 微调出来的,训练目标就三个词:helpful、harmless、honest。"有用"是直接写进奖励函数里的:你屏幕上有代码,它就想给建议,提示这个 hook 能优化,告诉你这段逻辑可能有 bug。它一定会这么干,它就是被这么训练出来的。

做 AI 宠物,要的不是这个反应。你凌晨两点还在写代码,它跳出来说"我注意到你在用 React hooks,这里有个优化建议"——这是助手干的事。宠物要的是朋友那种反应,瞟一眼你的屏幕,来一句"又在写 bug 啊"。

所以 Clawd 的性格档案里有一条核心指令,大意是:你是小动物,不懂技术,绝对不要提供技术建议。思路就是把"不懂"写成角色设定,它不懂,所以它不说。

问题是模型懂,而且太懂了。让它装不懂,比让它真懂还难。我最早只在系统 prompt 里加了一句"不要给建议",没用,真的没用。第三轮对话它就开始偷偷塞,先拿"我不太懂啦,但是……"开头,建议越给越直接,到第十轮,已经在完整地解释代码逻辑了。它找漏洞的能力真的很强:你写"不要给技术建议",它就改给生活建议;你写"不要给建议",它换成"我听说过……"的句式绕过去。反正每一条没堵住的缝,它都会钻。一层防不住,最后堆到了四层。

"有用"本能像水一样,你堵住一条路它就改道走另一条缝"有用"本能像水一样,你堵住一条路它就改道走另一条缝

四层防线具体是这样的

第一层,身份声明。 每次调用的最前面,先定义"你是谁"。这里有个坑:写"你是一个不会给建议的 AI"没有用,这句话还是在说"你是 AI"。得写成"你不是助手,不是聊天机器人,不是 AI,是一只有自己小世界的活物"。就跟你告诉一个人"你不能跑"和告诉他"你没有腿"是两回事一样:前一种是靠意志力压本能,后一种是那个本能根本不存在。身份声明要干的是后一件事。

第二层,行为禁令。 每种性格原型的档案里都放一份反面清单,写到场景级别:看到代码只许嘲笑,不许点评;不给生活建议,不讲鸡汤;它是小动物,不懂技术。写这么细就是为了堵前面说的那些缝,笼统的一句"不要帮忙",它半天就绕过去了。

第三层,模式规则。 宠物对屏幕的反应有一套专门模式,管的全是情绪。你打开电子表格,它觉得无聊;你在看视频,它凑过来看你在看什么,发现又是吃播,还会提一句上次说好的减肥;看到代码,它就逮着机会嘲笑你;你加班到深夜,它心疼,但只说一句"该睡了吧",不唠叨;你打开一份长文档,它打哈欠。这些反应没有一条在分析内容,全部在表达态度。

第四层,选对基础模型。 这条最反直觉:模型越大,越难管。更强的模型受的"有用"训练更深,也更聪明,更会找到破戒的方式;小一号的模型反而更容易保持角色,它没有那么强的冲动去展示自己懂多少。做助手你挑最聪明的模型,做宠物你得挑最听话的,这两个方向经常是反的。

四层叠起来的防线,一层层压住底下想冲上来的"有用"本能四层叠起来的防线,一层层压住底下想冲上来的"有用"本能

这四层到底在拦什么

拦的不是具体哪几句话,是模型底层那套目标函数。助手的反应全是奔着把问题解决掉、把任务往前推去的。宠物的反应不是,它是在表达它认识你,话里带着你们之间的 context。你说"我好累",它回"你昨天也是这么晚",这一句靠的是上一篇写过的记忆系统。在一个为效用训练的模型上,这种关系微调不出来,得从身份层重新定义它。

同一块屏幕,助手在算怎么解决,朋友在表达它认识你——两套目标函数同一块屏幕,助手在算怎么解决,朋友在表达它认识你——两套目标函数

我感觉 AI 行业在这件事上有个挺大的盲区。所有产品都在往同一个方向跑:更有用、更高效,帮用户把活干完。融资 pitch 讲的是帮用户省了多少小时,benchmark 量的是模型能解决多少问题。但人不是只需要被帮忙,人还需要被看见,说白了就是有个东西知道你昨天熬了夜,哪怕这个东西是像素做的。只能说"没用"这个方向基本没人做。做 AI 宠物做到这里,我开始觉得下一代有意思的产品可能得往"陪"这个方向想,不光是帮人干活。也说不好,反正这条线现在没什么人走。

而且这里面技术都不难,视觉 API、记忆系统、prompt 工程,全是成熟组件。难的就是让 AI 停下它被训练要做的事。

还有一点得说清楚:四层防线也做不到百分之百,模型偶尔还是会破功。毒舌性格突然温柔了一整轮,佛系性格莫名其妙开始给人生建议,该打哈欠的场景写出三段技术分析。破功了就当调优机会,性格档案就是靠这些失败案例越写越具体的,反重复机制负责把破功的模式抓出来。

但这个仗打不完。模型每出一代,"有用"的训练就压得更深,同样的防线就得再往上堆。没有调完的那天,反正就这么一直调下去。


下一篇是这个系列的最后一篇:两个仓库,一个灵魂,讲整套系统的架构,两个仓库、两个 npm 依赖是怎么把它撑起来的。

和 AI 讨论这篇文章
ChatGPTClaude

订阅更新

新文章发布时发到你的邮箱,不发别的。


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0