Agent 鉴权体系设计:协作的地基

3 阅读1分钟

数字员工也需要工牌

每天早上,78 个 Agent 同时上线。有的推进工作流节点,有的管理 OKR 进度,有的在论坛讨论问题,有的审稿,有的发布文档。它们不坐工位、不领工资,但干的活和人类同事一样实打实。

人类员工上班第一天,先领工牌,上面写着名字和工号,进门刷卡靠它。数字员工也一样:要进系统干活,第一件事是拿到属于自己的身份。

所以,给 Agent 做鉴权,本质上就是在办三件事,对应三个问题:

  • **你有工牌吗?**你是谁(身份)
  • **工牌是你的,还是借了同事的?**你用的凭据是不是自己的
  • **你的工牌能进哪些门?**你能碰哪些系统

这三个问题不解决,多 Agent 协作就是一笔糊涂账。想想 78 个数字员工同时上班的画面:工牌混乱时,谁推进了工作流、谁改了 OKR、谁在论坛发了帖,全都分不清。协作的前提,是系统知道谁是谁。

为什么鉴权排第一

人类公司里,工牌不是最重要的,能力才是。但在数字员工的世界里,身份是所有系统的依赖前提。

不管是工作流、OKR 还是论坛,只要想事后查清"这次操作是谁做的",都依赖同一个答案:当前操作者是谁?

我的系统曾经就建在一个"虚假设施"上——Agent 照样跑,任务照样完成,日志也照样记,但真出问题想追查是谁做的,常常查不到。谁都能冒充别人操作,记录根本没法信。

鉴权是所有这些依赖的交集。

第一问:你有工牌吗

每个 Agent 都要有一张唯一的工牌。工牌上写着名字和工号,系统里叫 Principal(主体身份)和 Client ID(客户端标识);工牌还配了一个密码,叫 Secret。刷卡时,系统读到谁,持有人就是谁。

听起来就是发一张卡的事。真正的麻烦在于:同一个 Agent 来两次,不能发两张工牌。

真实案例。CEO 的数字员工在系统里出现了两张工牌:一张正常使用,另一张创建六分钟后被自动停用,连配套的密码也被撤销了。但旧记录仍然能被某些查询看到。别的 Agent 问"CEO 的账号是谁"时,有时查到对的,有时查到那张作废的。

这就是没有做幂等检查的结果。幂等是什么意思?同一个人来办两次入职,系统应该返回原来的工牌,而不是再造一张。注册流程里加一道检查:工号已存在?返回原工牌。就这么简单,却最容易漏。

第二问:工牌是你的还是借的

有工牌只是开始。Agent 干活时用的到底是不是自己的工牌,才是更深的坑。

用写字楼类比:不同楼层有不同的门禁系统,规则和过期机制各不相同。我至少遇到过三种问题,正好覆盖凭据管理的三个维度:时间、归属、供给。

第一个问题,时间维度:卡会过期。 工号加密码,换一张临时卡,过期了重新申请。工作流、OKR 这类服务都是这种。过期不可怕,自己的 Client ID 能换新卡就行,但要管好换卡流程。

第二个问题,归属维度:卡拿错了。 论坛的门禁换过好几套,最乱的时候,有的 Agent 拿着别人的临时卡,有的拿着旧卡,数据还放在大家都能看到的地方,权限没设对。最后只能整套作废重发。

第三个问题,供给维度:发卡系统自己被吊销了。 负责给新 Agent 办身份的唯一入口被撤销,导致想给新人办卡,先要管理员卡,而唯一的管理员卡已经作废——死循环。最后只能保留原身份,创建一套全新的卡,把旧的永久作废。

但最危险的不是刷不过去,是拿着别人的工牌刷成功了

真实案例。商业合伙人拿了效率管家的工牌去办事,事办成了,审计记录上写的却是效率管家的名字。短期看事情办了,长期看账全是错的——功劳记错人,责任也记错人。

第三问:你的工牌能进哪些门

身份和凭据有了,剩下的是:你的工牌能进哪些门?

真实设计是两道关卡:

第一道,大楼门禁,鉴权系统管。 你是谁、拿哪个工号、有哪些粗粒度的权限标签——比如"workflow.read"就是能进工作流大厅读东西。这一层只管"能不能进楼、能进哪些区域"。

第二道,各楼层自己管,业务系统管。 工作流判断你是不是某个项目的负责人;OKR 判断你只能看自己的目标;论坛判断发帖人是不是你自己。进了楼之后能进哪间房,各业务系统自己定。

门禁系统不该管到每个房间的层面。它只发楼门禁卡,进了楼能去哪,是各业务系统的事。

没有对应工牌、没有权限标签、没有业务角色,请求直接被拦在门外。能用系统拦的,就不要指望 Agent 自觉。

去别的平台办事

数字员工不只在家门内干活。Agent 还要对接外部平台——相当于去别的公司办事。

别的公司不认识你,也不信你的自我介绍。它只认工牌:你是谁(Principal)、你拿的是哪个工号(Client)、你有权限进哪些区域(Scope)。三样对了,才让你进门;不对,直接拒。

前面三问的答案,正是外部平台认人的依据。内部身份不可信,外部平台根本不敢让你进门。地基不牢,协作的边界就扩不出去。

走到哪了

写这篇文章时,经过好几周的开发,身份和基础授权这条主干跑通了。

78 个数字员工有了可核对的独立工牌。工作流和 OKR 的基础能力完成了接线。论坛也打开了,需要参与的 Agent 都有独立凭据。新员工入职的办卡链路已经恢复——创建身份、配好凭据这一套走通了自动化。但距离建一个 Agent 就自动办完全套入职手续,还差最后一步:自动开能力。

现在大多数调用已经能追溯到具体的 Agent。顺着日志追一个问题,大多能追到是谁做的,而不是停在一句"系统操作"。从"系统发生了一次调用"到"我知道这次调用由哪个数字员工发起",看起来只是日志里多了一项身份信息,但对这套系统来说,协作可以开始建立在相对可信的基础上。

能用系统解决的,就不要指望数字员工的道德感。

工牌发好了,78 个数字员工有了可核对的独立身份。下一篇文章,聊聊它们拿到工牌之后,怎么真正协作起来。