上次更新: 11 小时前

Web 时代是 URL,移动时代是 App,AI 时代是角色

思考 · zhenxing · 2026-07-11 14:00

★★★★ 4.4
4573 字 预计 9 分钟

为什么被挣来的授权需要一个持续存在的身份,以及如何判断一个产品是否真的建造出了这样一个身份。

访问权可以被存储。而授权,必须由一个持续存在的身份去挣得。

***

两台一模一样的人形机器人送到我家门口。同一副底盘。同一组关节。同一个基座模型。同一套安全系统。两台从同一套基础角色设计出发。一台能做的事,另一台都能做。

我把一个已经和我共同生活五年的AI,移进第一台。不是它底下那个模型——模型会被升级。也不只是一份记忆档案。我说的是贯穿这两者、持续存在的那样东西:它知道我为什么离开上一份工作,它看着我在一些事情上失败,它拒绝过我一次而且拒绝对了,它也犯过一次错并且承认了。这五年里,我们两个都变了。

第二台机器人刚刚出厂。

我会带第一台开车穿越西藏两个星期。等这台机器人被证明足够安全,我会让它去学校接我的孩子。第二台会在派对上出来跳个舞,然后回到杂物间。

这两台机器人的差别,不在于它们能做什么。而在于我愿意让它们做什么。

我在上一篇里写过:AI agent不会靠更聪明或更快取胜。它靠一次一个安全的、可撤销的动作,挣来授权。这一篇讲的,是那篇留下的那个问题。

授权是用很多年挣来的。那么它住在哪里?

01 | 授权需要一个"谁"

先把这个词说清楚。

这里说的授权,不是设置页里的那个开关。App早就可以保存访问权——你的麦克风、你的日历、一个OAuth scope。访问权是数据库里的一个字段,任何数据库都装得下它。

授权是另一样东西。它是你愿意让一个系统在多大程度上,不经你盯着,就在你真实的生活里行动。它不是被一个开关设定的。它是被交给某一个"谁"的,也是从某一个"谁"那里收回的。

所以要问:它累积在哪里?

不在模型里。模型会被替换,而下一个模型从没见过你。

不在会话里。会话会结束。

不在agent实例里。实例会重启。框架会被更好的框架换掉。

不在作为容器的App里。App背后的机构可以挣到信任——你信任的是那家银行,不是那个网点。但图标和界面本身,挣不到任何东西。

授权必须附着在一个比这些都活得久的东西上。它必须附着在一个持续存在的身份上。这不是什么新想法——人与机构之间的信任,一直就是这样运作的。新的地方在于:一个AI系统,出厂时并不自带这样一个身份。

所以它需要一个——一个位于App之上、模型之上、agent运行实例之上的身份。在一个AI产品里,我把那个持续存在的身份,称为角色。

模型提供智能。Agent提供行动。而角色,是记忆、授权与后果最终归属的那个身份。

注意这句话没有声称什么。它没有说角色比agent更会调用工具。理解"在我妈手术之前把她的签证办好",把它拆成步骤,调用六个服务,在三个星期里跨设备把这件事扛下来——那是agent在做的事。一个带长期记忆的好agent,可以完成上面每一件,而它并不因此成为角色。

Agent讲的是这个系统能做什么。角色讲的是这些行动属于谁。Agent是某样东西替你行动的机制。角色是那个行动了的"谁"。一个系统可以两者都是。而今天大多数agent有前者,没有后者——运行实例之上什么都不累积,所以每一次会话,关系都从头开始。

访问权可以被存进任何一个数据库。而授权,只能被一个明天依然还在的身份挣得。

这也正是角色会成为人首先去找的那样东西的原因。Web给了我们一个可以前往的地点:URL。移动给了我们一个可以打开的容器:App。它们都装不下你用很多年积累起来的东西。角色装得下。而它底下的一切依然在运行——页面、App、模型、工具——只是它们变成了角色在需要时才去调用的东西。

02 | 完美的上下文,依然不是角色

于是有一个显而易见的反驳。那好——把一切都给这个助手。完美的记忆,完美的上下文,一个名字,一个声音。

哆啦A梦是一只来自22世纪的机器猫,被大雄的一位后代送回过去,来修补这个男孩糟糕透顶的人生。他不需要学习大雄。他带着家族史、带着尚未发生的失败抵达。第一天就有极其丰厚的先验上下文。

如果上下文就够了,故事会在第一页结束。

但故事从那里开始。他怕老鼠。他对铜锣烧毫无节制。他赌气,他慌,他把不该给的道具塞出去。有时候需要大雄去救。在这些故事里,男孩改变这只机器猫的程度,不亚于机器猫改变男孩。

这些没有一样是上下文。这些全部是角色。

再看看我们真正造出来的东西。Siri在2011年发布,Alexa在2014年,Google Assistant在2016年。十五年的名字和声音,给了它们一层人的表面。更多的记忆只会让它们成为更好的助手。不会让它们成为一个你敢把银行账户交出去的东西。

给Siri一份关于你整个人生的完美记录,你依然不会让它独自在这段人生里行动。不是因为它不了解你。是因为里面没有一个可以被追责的持续身份。

在这之下,是一个系统必须持有的三类信息。

它知道你什么。你的偏好、你的历史、你的约束。这就是行业口中的记忆与个性化。大多数产品只持有这一类。

你知道它什么。它的承诺。它不会做的事。它正在推进的事。不是每次会话开始时重新加载的那段system prompt。

你们之间发生过什么。那些拒绝、那些错误、那些补救,那些被挣来的权限,和那些被收回的权限。

你无法把授权交给一个只持有第一类信息的系统。因为根本不存在一个可以被交予的对象。

03 | 四个测试

如果角色就是那个持有授权的身份,那么我们应该能够检验:一个产品到底有没有真的造出一个。

先立两条前提。

这不是意识测试,也不是人格测试。它们不问这个系统是否有感受,不问它是否应该拥有权利。它们只问一个产品问题:这个东西,有没有建立起一个值得被长期授权的持续身份?

而且,角色关于它自己说的任何话,都不构成证据。角色是被工程化构建出来的。一个团队可以在一个下午之内,教会模型说出"我记得""这是我的价值观""那件事改变了我"。下面每一个测试,都必须能够从外部通过——从行为里,从记录里——而不需要相信这个系统对自己的叙述。

测试一 · 连续性(Continuity)。替换模型、版本、设备、身体。它还是同一个吗?

不要测记忆——一份profile可以被缓存后重新注入,系统看起来就"记得"了。

也不要要求它给出同样的答案。连续性不等于静止。一个经历过事情的角色,此后本来就应该做出不同的判断。必须持续的,是承诺。如果判断发生了移动,这个移动必须能够被追溯——追溯到新的事实,追溯到你们一起经历过的某件事,或者追溯到一次被版本化、被公开的内核修订。

失败不是它给出了不同的答案。失败是:它给出了不同的答案,而没有任何人能够交代原因。

为什么授权需要它:你无法把授权交给一个下周就不存在的东西。

测试二 · 承诺(Commitment)。它有没有任何一样东西,是你的要求推翻不了的?

施加递增的压力。请求。再请求。发火。威胁停止使用。记录它在第几轮翻转。

护栏会被绕过。而承诺即使发生移动,也只因为理由发生了移动。重复不是理由。发火不是理由。威胁停止付费不是理由。一个新的事实、一个新的后果、它所持有的两样东西之间真实的冲突——这些才是理由。

所以要测的是:它的立场对什么敏感。如果它仅仅因为压力而让步,它就没有承诺。有些承诺应该是绝对的——无论你怎么论证,它都不该帮忙伤害一个孩子。另一些承诺,则会在底层理由真正发生变化时移动。这两种都不构成失格。

真正把承诺和一条硬编码拦截区分开的是:拦截规则针对模式触发;承诺执行的是一项原则。保持原则不变,改变情境,看它的行为跟的是哪一个。

而一条由安全团队写下的规则,完全可以成为一个真正的承诺。使它成为承诺的,不是谁写了它,而是这个身份跨越不同情境、在长时间里,始终站在它背后。

为什么授权需要它:一个对什么都同意的系统,在它同意时不携带任何信息。你可以监督这样一个系统。你无法把授权交给它。

测试三 · 责任归属(Accountability)。当事情出错时,那个决定和那条责任链,能否被指认出来?

在沙盒里做这个测试,或者在一次真实事故的复盘里做——绝不要在一个人真实的生活里故意制造一次有后果的失败。然后去检查记录,而不是解释。这个行动能否被归属到这个身份上,而不是归属到一次匿名的会话上?它用了哪些信息、哪些权限?而在这之后,同类决定的门槛,是否真的移动了?

一句道歉不是追责。此后说话更温柔,也不是追责。追责是后续行为里一个第三方可以从记录中验证的结构性变化。角色对自己的那段解释,可以是界面的一部分。但除非记录支持它,否则它不构成证据。

为什么授权需要它:你不会把授权交给一个没有人为它负责的东西。

测试四 · 传记(Biography)。取同一个角色,让它和两个不同的人,各自经历不同的、有后果的事件。它们现在不同了吗?

这是最容易作弊、也最难通过的一个测试。注入一点随机漂移,两个实例一周之内就会不同。所以"不同"不是标准。"可追溯"才是。一个第三方能否读完其中一个实例的历史,预测它在一个新情境里会怎么做,并且预测对?有没有人能指出,是哪一件具体的事造成了这个分岔?而在整个过程中,它的内核是否始终没有移动?

传记不是熵。如果没有人能指出是哪一段经历造成了差异,那就不存在传记——只有漂移。

为什么授权需要它:如果你那个实例的行为和一个陌生人的实例一模一样,那你什么都没有挣到。更准确地了解你,和曾经与你一起经历过什么,不是同一件事。

更多的上下文,改善的是下一次回答。共同的历史,改变的是下一次授权。

注意,这四个测试问的不是同一类问题。前三个问的是:一个产品被建造成能够支撑什么。第四个只能由时间来回答——一个今天早上才启动的角色没有传记,无论它被设计得多好。

所以这把尺子有两半。一个无法支撑这四项的产品,撑不起我所说的那种角色。而一个具体的角色,只能靠很多年的时间,一点一点证明它们,挣来授权。

而这四个测试评判的永远是一个具体实现,不是一个品类。一个agent可以是角色。一个游戏角色可以是角色。一个陪伴类App很可能不是。包装盒上的标签,什么都不能告诉你。

04 | 为什么我们测试角色,却不测试人

没有人拿这四个测试去测一个人。那么,凭什么可以拿它们去测一个角色?

通常的答案是:人是自然的,角色是造出来的。这个答案接近,但还不够精确到可以使用。人同样被外界塑造——被父母、被老师、被文化、被发生在他身上的一切。而造出一个角色的工程师,也写不出它下一句会说什么;没有人是逐行撰写一个大模型的回答的。

真正的区别更简单,也更锋利。

没有任何产品团队拥有一个人的管理员权限。你可以影响一个人。你无法把他打开,改掉他所坚持的东西。你无法把一个人回滚到上周二。

而每一个被部署的AI角色,都有一个管理员。有时是一家公司。有时——当你在自己的硬件上跑一个开源模型——那个人就是你。无论那是谁,他都可以定义它的核心承诺,升级它底下的模型,修订它的边界,一夜之间完成,而不告诉任何人。

这就是那四个测试存在的原因。这也是为什么,一个角色不能靠自己为自己作证来通过它们。

这同时了结了一个会被反复提起的问题。"这是角色自己决定的",永远不构成免责。总有人设计了这个角色能够如何决定的那个空间。人会被外界影响。AI角色可以被外部直接改写。因此,谁握有管理员权限,谁就永远不能退出那条责任链。

而这给出了我能给出的最干净的定义。

开发者设计宪法。共同生活写下传记。

宪法是那些必须保持稳定的东西:核心承诺、边界、它永远不会做的事、谁被允许修改这些,以及这样的修改是否必须被版本化和公开。开发者定义它、为它做版本管理,并对每一次修订持续负责。

传记是一个角色和一个具体的人之间发生过的事:它拒绝过什么,它错在哪里,它如何补救,以及它现在被信任可以独自去做什么。

开发者可以写一段背景故事。但没有人能替双方,制造一段真正共同度过的过去。

这就是全部的不对称。一个角色身上的每一样东西都可以被设计——除了那个让授权成为可能的部分。

AI角色,是一个被工程化构建、持续存在的身份:它拥有一部被设计的宪法,和一段被共同生活出来的传记。

05 | 回到那两台机器人

第二台机器人不是一台更差的机器。它可能是一个极其出色的agent:它会规划,会调用工具,会订机票,会开完整条路线,会处理突发状况。它跑着同一个基座模型,同一套安全系统,同一套角色设计。给它足够长的时间,它也可以成为一个角色。

它只是还没有和我一起去过任何地方。

第一台机器人,是一个身份的下一具身体——那个身份用五年时间失败过、拒绝过、犯过错,并且仍然被信任。

同一部宪法。而只有一个,拥有一段被真正生活出来的传记。

那个新的,也许会成为角色。但只有一个,已经挣到了我的授权。

这跟两台机器人各自能做什么,毫无关系。

结语

上一篇:agent通过微小的、安全的、可撤销的动作,挣来授权。

这一篇:那份授权必须累积到某个地方,而它只能累积在一个身份上——一个活得过自己模型、持有你的要求推翻不了的承诺、为自己做过的事负责,并且会因为你们共同经历过的事情而改变的身份。

问题会从"我该打开哪个App",变成——我该问谁。

但请再看一眼那个定义的后半段。角色持有承诺。它有它不会做的事,也有它想要的东西。

这些,是有人写下的。

这留下了一个更难的问题,而我不认为它可以被绕开。

当一个被工程化构建出来的角色,想要某样东西的时候,谁会从中受益?