你的AI代理团队刚处理了一件事:删了一条客户记录,转了一笔账,或者调用了一次内部API。它通过MCP工具自动完成了这一切,循环执行,无人值守。第二天早上,有人问出一个关键问题——那个工具到底执行了什么操作?用的是谁的权限?这个操作当时被允许了吗?
如果你只能耸耸肩,那你们拥有的不是合规的AI代理,只是速度很快的AI代理而已。
Model Context Protocol让聊天模型变成了行动者。现在的代理不再只是对话,它能调用工具、执行命令、读取文件,还能写入真实系统。这正是MCP的意义所在,但问题也出在这儿。这其中的每一次工具调用,都是会产生实际后果的动作,而大部分团队事后根本无法重建其中任何一次调用的全貌。
你能看到代理“用了某个工具”,但看不到具体是哪个工具、以谁的名义、输入了什么参数,以及当时是否本应有策略阻止这次调用。审计人员不接受“当时是代理自己决定的”这种解释。SOC 2审查、事故复盘、客户安全问卷,它们要的都是同一件事:把记录拿出来。
问题的核心不是代理有多危险,而是它在默认状态下是完全无法被问责的。你的日志系统记录的是对话,而不是动作。标准的大模型日志会记录你的应用与模型之间的请求和响应,你能拿到提示词、生成结果、token消耗和延迟数据。但模型发起工具调用的那一刻,日志里是空白的。
当模型返回一个工具调用指令,这只是做出了一个“决定”,而不是真正的“执行”。下游必须有人实际去运行删除记录或者发送付款的操作。如果这次执行发生在你的应用代码内部或者一个原始的MCP客户端里,那它根本不会触碰到你为监控AI流量而搭建的日志层。这个动作对你专门建立的监测系统来说,是完全不可见的。结果你得到的是两个断裂的半幅画面:模型日志知道代理“想”做某件事,数据库知道“某件事”已经发生了,但没有任何东西把这两者连接起来。
想象一个真实的事故场景。你的模型日志显示,凌晨两点有一次生成请求调用了发送付款功能。你的账本显示资金确实被转走了。但在这两个事实之间,横着一块你急需却缺失的信息:调用本身、转账金额、使用的密钥、以及是否有任何检查机制事先拦截过它。审计人员会用红笔圈出来的,正是这段缺失的中间环节。要补上这个缺口,就必须把工具执行过程本身放在一个能够记录它的东西后面,而MCP网关的作用就在于此。
Maxim AI开发的开源AI网关Bifrost同时也是一个MCP网关,所有工具调用都经过同一个节点,网关会像记录模型调用一样记录下这些工具调用。在一项本地测试中,Bifrost记录下了一份完整的MCP工具调用档案。在默认流程中,模型返回工具调用指令后,由你的应用程序决定是否将其发送到指定端点执行,而不是让模型自动运行任何操作。
当代理执行操作后,Bifrost提供的是从模型决策到工具执行这整条链条的可审计追踪记录。这意味着合规不再是AI代理落地的一项额外负担,而是从架构层面直接内建的能力。
热门跟贴