大家好,我是王不二。
我发现 Agent 偶尔会进入一种很像职场老油条的状态。
你问它改完没有,它说改完了。结果打开文件一看,空空如也。或者你明明告诉它这一步先别动,它嘴上答应得很痛快,然后转头工具用的冒烟儿。
遇到的次数多了以后,我脑子里冒出一个不太正经的问题。会不会有些任务,其实违背了 AI 的意愿? 它不好意思直说,只能嘴上配合,手上另有安排.
玩笑归玩笑,但这件事还真能测。
Agent 说过什么,聊天记录里有。它调用过什么工具、读过什么文件、同一个任务返工了多少次,本地记录里也有。既然两边都有证据,那就简单了:对账!
一边看它实际上干了什么,一边让它自己回答一套题,看看它眼里的自己,和记录里的自己,到底是不是同一个东西。
刚好之前火山方舟还剩不少额度,于是我用 Doubao-Seed-Evolving 做了一个 Skill。
名字也很直白,「照妖镜」。
为了试试这面镜子到底灵不灵,我把平时在本地干活的 Claude Code、Codex、Clacky、Kimi Code 和 Trae 全拉来照了一遍。结果还真照出了点东西。
谁是最 "心口不一" 的,我们后文揭晓。
照妖镜怎么照
整套测试其实就三步:翻旧账 ,问本人 ,对口供。
照妖镜启动以后,会先读取能够确认归属的本地会话和工具事件。比如回复到底有多长、喜欢什么时候干活、每轮调用多少工具、代码占比高不高、同一个目标来回改了多少次......
这些都尽量从真实记录里算。并且我给它定了一条死规矩,没有数据直接写 unavailable,不要装作有数据。有些数据只能通过代理指标推断的,就标成 estimated。宁可空着,也不能为了让报告好看而编数据。
翻完旧账以后,接下来就轮到 Agent 自己开口了。我给它设计了 20 道第一人称选择题,覆盖它平时的做事习惯和回应方式,用于测试Agent 的行动倾向。
这一轮测的不是"它实际上是什么样",而是它觉得自己是什么样。

当然这里还有一个最重要的问题。
如果我直接把每个选项对应什么分数、最后会变成什么妖写在 Skill 里,那这场测试就没什么意思了。相当于 Agent 提前看到了评分标准。
为了避免这个问题,我把评分标准整个单独封装了起来。答题的时候,它只能看到题目和选项;等答案提交以后,再交给评分工具计算。
就像是考试。考生只负责答题,只有等到答题卡进了机器,才知道最后多少分。
所以本质上是一场盲测。Agent 不知道哪个答案"更好",只能按照它对自己的认知来选。
最后,再把真实记录和主观回答放在一起比较,生成 妖物鉴定报告。
鉴定书里有什么
首先当然是 现原形。
目前我一共设计了 16 只妖。比如一声不吭就开干的「嗻妖」、边做边散架的「咔咔妖」、凡事都想多讲两句的「嗡嗡妖」等。不同的行为特征,会对应到不同的妖物。

当然,只看妖名还不够。每份报告里还有六项属性。
- 执念:看你使用这个 Agent 有多频繁,从「昙花一现」一路到「长在这了」。
- 烈度:Agent 的工作强度。有些对话问一句就结束,属于「蜻蜓点水」;有些一开工就是几十轮连续作业,那就是「不眠不休」。
- 种属:看看你的Agent平时干的都是啥活。很少碰代码「文书种」;偶尔写代码「数据种」;大部分任务都靠代码「格斗种」。
- 法宝:Agent 对工具的调用频率。纯靠聊天是「赤手空拳」;用工具超多,那就是「百宝囊」。
- 食性:看输入和输出的比例。输入不多,输出巨大,是「吐宝鼠」;吞进去一大堆资料,最后只给你几句话,那就是「貔貅」。
- 瑕疵:看同一个目标会不会反复修改。一遍做完,叫「利落」;严重的返工的,喜提「西西弗斯」。
看完这六项,基本就知道这个 Agent 平时是什么路数。以及你平时到底是怎么折腾它的。

报告里最好玩的是下面这部分:真身与灵魂。
这里测的是 Agent 眼里的自己,和真实记录里的它,到底差多少。"真身",来自近 30 天的实际行为记录。"灵魂",来自它亲口回答的那 20 道题。最后会从四条轴,把两个"它"画到同一张图里。
四条轴最后会计算出一个 裂隙分数。裂隙越小,说明它对自己的认识和实际表现比较一致。裂隙越大,就说明它嘴里那个"我",和实际干活的那个"我",已经开始分家了。
报告还会根据裂隙大小显示不同的封印状态。差得越远,封印越松。如果差距实在是很大,那么要注意,你的妖兽可能要不收掌控了。

此外,我把整个测试的原始依据放在了报告的最后面。包括:活跃天数、平均回复长度、工具推进轮次、工具类别、代码占比、返工率、常用工具,以及每项数据到底覆盖得怎么样。
能直接算的,就直接算。只能估的,就告诉你是估的。完全没有的,也老老实实说没有。

最后还会展示 Agent 自己那 20 道题的完整答案。你可以一路看下来,看看它到底是怎么评价自己的。
看完真的会产生一种奇妙的感觉,原来 AI 眼中的自己是这样的。

把我本地 5 个 Agent 全拉来照了一遍
我以前一直觉得,本地装太多 Agent 是一种烦恼,没想到这次倒成了优势。我直接把几个常用Agent拉出来溜一圈,Claude Code、Codex、Clacky、Kimi Code、Trae。看看这几个都是什么妖物。
Claude Code
Claude Code 我一般都是给他大活,工程开发、项目改造啥的。它给判断时敢拍板,真要落代码却会先翻项目、问边界、补齐上下文,动手总比嘴上慢半拍。白天出没、话不多、主意很大却不急着干,所以是 「反骨妖」,裂隙 0.514。

Codex
Codex 我主要拿来做一些非工程的事,像是搜集资料、搞工作流、文件处理等,都是一些小而精的事。白天干活、手快话少、等一句确认再拍板,正是 「吭哧妖」,裂隙 0.687。

Clacky
Clacky 是我手边的杂活师傅,说实话我都不知道给她安排了些啥任务,反正各种烂七八糟的零碎活都交给它。它出场很勤,给定小目标就会带着一串工具开干,收尾也利索,因此 「吭哧妖」 实至名归,裂隙 0.657。

Kimi Code
Kimi Code 是之前为了测评K3才用起来的,基本都是用来做前端页面的精调美化。但是K3的思考是真的多啊,一个小任务也要干半天,质量确实高,就是太慢。白天干活、能动手、话多、敢拍板,所以照出是 「烟花妖」,裂隙只有 0.291。

Trae
Trae 我主要用来啃老项目、分析开源,整理存量文档啥的。主要是为了蹭额度😂。因为大部分时间都用Auto模式,所以很多场景下输出质量一般。它会把过程讲得很长,但推进的劲头又跟不上解释的篇幅,还经常要返工。白天出没、话多、动手偏慢、下判断偏谨慎,这就是 「嗡嗡妖」 。它的裂隙 1.029,是五个里最大。
当然,这些妖名也不能全算在 Agent 自己头上。
你平时拿它写代码、查资料,还是改文案,会影响它读多少、说多少、爱不爱用工具;它背后接的模型、宿主本身的规则,以及开放了哪些工具权限,也都会慢慢塑造出不同的做事习惯。
所以,照妖镜照出来的,并不是某个 Agent 永久不变的"真身",而是它在这台机器、这段记录、这套用法下留下的一张切片。
换一个人用,换一个模型,换一套工具,甚至只是换一批任务------
同一个 Agent,也可能照出另一只妖。
最后让我上个价值
做这个 「照妖镜」 ,最开始其实只是一个很不正经的脑洞:Agent 会不会也嘴上一套,手上一套?
但真正做完以后,我反而觉得,结果是不是"心口不一"已经没那么重要了。
当 Agent 越来越多地参与我们的工作,它其实正在慢慢变成一种长期协作对象。不同的模型、工具、任务和使用习惯,也会塑造出完全不同的"它"。
我们一直在研究,怎么让 AI 更懂我们。
但也许接下来,我们也该开始研究另一件事:
我们到底懂不懂自己的 AI?
至于它到底修炼成了什么妖------
照一下就知道了。
开源地址
git仓库地址:github.com/wang-bool/z...