为什么 AI Agent 试点进不了生产:缺的是四层运行基础
一个 agent 演示可以很精彩,生产评审却只问一件事:你怎么证明它不会越权、会等审批、能交出审计证据?试点失败通常不是模型不够强,而是缺语义、权限、审批和审计四层。
先给结论:进不了生产的 agent 试点,输的通常不是模型,而是脚下缺了语义、权限、审批、审计这四层。补更强的模型能改善答案质量,但不能替你证明“谁能看什么、谁批准了什么、证据在哪里”。
那个项目,演示日拿了满堂彩。
牵头的业务负责人老陈记得很清楚:客服 agent 现场答了七八个刁钻问题,又快又准,会议室里有人鼓掌。高管当场拍板扩大投入,给了预算、给了人。那是他职业生涯里少有的高光时刻。
四个月后,这个项目被悄悄关停了。预算写进了沉没成本,老陈在管理层心里的可信度也跟着折了一道。
杀死它的不是模型——模型一直很能打。是法务在一次上线评审里问的一个问题:“这个 agent 回答 A 客户时,能不能保证不会把 B 客户的信息也用进去?你怎么证明它做不到?”
没人能证明。不是因为它一定会泄露,而是因为系统里根本没有一个地方,能拦住它、或事后说清它有没有这么干过。那一刻老陈才明白:从头到尾,问题就不在模型。
他不是一个人。很多 agent 试点都经历同一个路径:演示日很亮,生产评审很安静。它们不是突然不会回答问题,而是回答不了“怎么证明它受控”。
换更强的模型,为什么不管用
面对这种成绩单,大多数团队的第一反应是同一个:模型不够强。于是换更大的模型、调更精的提示词、上更复杂的编排。
通过率未必因此改善。因为从试点到生产,真正重的工作往往是数据工程、治理、流程集成和度量;模型本身只是一部分。绝大多数试点不是死于”不够聪明”,是死于模型脚下缺了几层东西——而那几层,换多强的模型都补不上,因为它们根本不在模型这一侧。
先做 PoC 快速验证,难道有错吗?
这里要接一个听起来无懈可击的反驳:先搭个 demo、跑个 PoC 验证价值,本来就是正确的做法,难道一上来就该把一个演示过度工程化吗?
PoC 本身没错。错的是它验证了错的东西。
老陈那个 demo,验证的是”模型答得好不好”——而这恰恰是整个项目里最不需要担心的部分。它没验证、也设计成不去碰的,是那四层会真正决定生死的东西(权限、口径、审批、留痕)。于是 PoC 给了管理层一个错误的信心:既然演示这么顺,扩大投入风险应该不大吧?四个月后大家才发现,演示的顺利和生产的可行,几乎不相关。
所以正确的 PoC,不该只问”模型能不能答对”,更要问”这个答案能不能在权限、审批、留痕都齐的真实环境里,安全地交付给对的人”。验证错了对象,越漂亮的 demo,越是埋得越深的坑。
演示,天生就不需要那四层——所以它骗了你
为什么 demo 的顺利会和生产脱节得这么彻底?因为一个好的演示,被设计成不触发任何治理问题——它用一份导出的数据、给一个人看,不会去问”这个用户能不能看这条""这步要不要先审批”。
于是有个残酷的推论:每一次成功的演示,都系统性地隐藏了它将来会失败的原因。 你看到的越漂亮,被藏起来的那几层就越深。接生产数据那一刻,环境彻底变了,决定成败的是模型脚下有没有这四层:
| 它必须能回答 | 缺的是哪一层 | 缺了会怎样 |
|---|---|---|
| ”客户”到底指什么?口径在哪? | ① 语义层 | 答非所问、口径打架,业务不认 |
| A 客户的信息会不会用到 B 客户身上? | ② 权限层 | 越权泄露,法务一票否决 |
| 这步该不该先等人审批? | ③ 流程与审批层 | 该停的没停,没人敢让它动手 |
| 这笔操作是谁、何时、依据什么做的? | ④ 审计层 | 交不出证据,合规直接拦下 |
老陈那个项目,死在第②行。
为什么这四层总是缺席
那为什么不一开始就建好?因为按传统做法,每一层都是一大块横切的硬工程:语义层要把十几个系统的数据对齐成统一对象模型;权限层要把散在各应用代码里的规则收成一致策略;审批要接现有体系;审计要把人和 AI 的动作汇进同一本账。它们不是某个功能的一部分,而是垫在所有功能底下的地基——又脏又慢,还全是演示里看不见的部分。
更糟的是,很多团队为每个试点单独重建这四层。这轮结束、换个场景,四层重来一遍。预算和耐心,全耗在反复造地基上。
判断你的试点能不能进生产,不用等四个月,对着四层各问一句就够了:
- 语义:换个人问 agent 同一个业务问题,口径一致吗?还是各答各的?
- 权限:你能不能证明它只会让每个人看到自己有权看的数据?
- 审批:高风险动作,它会自动停下来等人签字,还是直接做了?
- 审计:随便挑一笔它做过的事,能不能调出完整经过?
四个都答得出”是”,你才有进入生产评审的基础。有一个答”不确定”,那就是下一个老陈。
进了生产的项目长什么样
值得看一个反例,因为它和老陈的差别,恰恰不在模型上。
另一家公司做了几乎一样的客服 agent,用的模型还更朴素一些。但他们没从”让模型答得漂亮”起步,而是先把四层搭在了一个统一的运行时上:客户、订单、工单都是同一套对象(语义齐了);agent 以提问坐席的身份行动、只能看该坐席有权看的数据(权限齐了);退款超额自动转人工(审批齐了);每个动作落进同一本账(审计齐了)。
他们的演示日没有老陈那么炸——答得稳,但不惊艳。可上线评审时,法务问出同样那个问题,项目经理当场调出权限集和一条审计记录,证明 agent 只能以坐席身份、看坐席有权看的数据,越权会被运行时当场拦下并留痕。法务点头,项目放行。
差别就在这儿:进了生产的项目,不是只靠模型赢了,而是把那四层提前搭好了,所以经得起被问”你怎么证明”。 老陈输的不是技术含量,是顺序——他把最不该只盯着的(模型)放在了前面,把真正决定生死的(四层)留到了最后。
先泼一盆冷水:四层齐了,也不保证成功
这里得诚实一句,否则又成了万能药。
很多试点还会死于变更管理——人不用、流程不改、组织不认。这和”死于缺四层”不矛盾,是一件事的两面:一个法务不敢放行、业务不认口径的系统,连被组织采纳的入场券都拿不到;但反过来,四层齐备只是拿到了入场券,不等于赢得了比赛。
技术就绪是必要条件,不是充分条件。四层让 agent 的动作可控、可追溯、可解释,组织才有可能信任它、采纳它——但真要落地,还得有人推动流程改变、有人愿意改变习惯。谁要说”补齐这四层,试点就一定成功”,那是过度承诺。它清掉的是技术性的死因,清不掉组织性的。
出路:四层来自运行时,不靠每个项目重建
能提高试点进入生产概率的,不是只换更强的模型,而是让这四层不再是每个项目的自建工程,而是运行时自带的能力。
拿一个设备报修场景。你只声明对象和它的权限:
export const RepairTicket = ObjectSchema.create({
name: 'ops_repair_ticket',
label: '报修单',
fields: {
device: Field.lookup('ops_device', { label: '设备', required: true }),
cost: Field.currency({ label: '维修费用', min: 0 }),
},
});
剩下四层由运行时(ObjectOS)一次性给齐:语义层——这份声明本身就是 agent 看懂业务的依据;权限层——谁能读写报修单,运行时每次调用强制核验;流程与审批层——“维修费超额走审批”是挂在对象上的声明式流程,自动暂停等签字;审计层——人和 agent 的每次动作落进同一本账。换下个场景,这四层不用重建,只要再声明几个对象。那”80% 的反复造地基”,被压成了几百行声明。
老陈那个项目如果是这么搭的,法务那个问题就不会是死刑:他能当场调出权限集,证明 agent 只能以提问者的身份、看提问者有权看的数据——第②层本来就在脚下,项目也就有机会当场放行。
结语
真正进了生产的项目,靠的很少只是最好的模型。靠的是模型脚下那四层——语义、权限、流程、审计——稳稳地在;也靠组织真的把它用起来。前者是入场券,后者是比赛,两个都得要。
所以如果你的 agent 试点又卡住了,先别急着换模型。问老陈四个月后才学会问的问题:它脚下这四层,到底建了几层? 这比再调一版提示词,省钱得多,也救得了一个项目和一个人的可信度。
npm i -g @objectstack/cli && os start
声明一个对象和它的权限,让 agent 去用它——你会发现那四层已经在脚下了,而你只写了几十行。