打开网易新闻 查看精彩图片

一个AI代理能调用你的Notion数据库,和**应该**被允许调用,中间隔了多远?开发者Dhravya Shah给出的答案是:两层——MCP管能力,Actra管闸门。

这套架构把"能做什么"和"让不让做"彻底解耦,相当于给AI装了刹车片。

第一步:放任的代理,等于裸奔

第一步:放任的代理,等于裸奔

Shah的实验从"无政府状态"开始。他先搭建了一个基线系统:Notion MCP工具直接暴露给AI代理,没有任何策略拦截。

代理能搜索页面、读取用户数据、创建新内容——全套权限敞开。用Shah的话说,这是"agent has full power — with no guardrails"。

风险肉眼可见。空搜索会白白消耗API配额;写操作可能在错误上下文里覆盖数据;用户隐私信息对代理完全透明。这不是功能演示,是事故预告片。

Shah把这一步命名为test-step5-unsafe-agent.ts,文件名里的"unsafe"不是修辞,是技术分类。

第二步:Actra进场,每次调用都要过安检

第二步:Actra进场,每次调用都要过安检

治理层Actra被植入为"in-process policy engine"。每个工具调用在执行前被拦截,逐条匹配策略规则。

打开网易新闻 查看精彩图片

第一个规则block_empty_search直接封杀了无意义搜索。代理发起空查询→Actra拦截→返回拒绝。代理知道搜索工具存在,但调用被物理阻断。

第二个规则block_writes_in_safe_mode更狠。当safe_mode = true时,所有写操作一律禁止。代理的"能力"没有消失,只是"使用权"被临时吊销。

这就像驾照和行驶证分离:车能跑(MCP),但今天这趟能不能上路(Actra)另说。

Shah的代码库结构暴露了整个认证与治理链条:OAuth回调处理、PKCE(Proof Key for Code Exchange)实现、状态保存、MCP客户端封装——每层都有独立模块,没有黑箱。

第三步:从"能动的系统"到"受控的系统"

第三步:从"能动的系统"到"受控的系统"

Shah在提交文档里写了一句关键判断:这套架构把AI代理从"systems that can act"变成了"systems that can act — safely, predictably, and under control"。

三个副词不是修饰,是工程指标。Safety对应策略拦截的完备性;predictability要求拒绝/允许的逻辑可审计;control则指向实时开关的能力——safe_mode可以随时翻转,不需要重新部署。

Notion+AI的组合因此变了性质。它不再是" productivity tool",而是"safe execution environment for real-world workflows"。前者帮你记笔记,后者托管你的业务流程。

这个定位跃迁,靠的不是Notion官方功能,而是MCP生态的开放接口+开发者自建治理层。

打开网易新闻 查看精彩图片

GitHub仓库getactra/notion-mcp-governed-agent已经开源。目录结构显示,测试脚本被拆成5个渐进阶段:step1到step4搭建连接与工具加载,step5专门演示"无保护代理"的风险。教学意图明显——先让你看见问题,再给解决方案。

为什么这事值得盯

为什么这事值得盯

MCP(Model Context Protocol)今年快速成为AI代理与外部系统交互的事实标准。但标准只解决"能不能连",不解决"连了乱不乱来"。

Shah的实验填补了这个空白。他用Actra证明:治理层可以插拔、策略可以热更新、拦截可以细粒度到单次调用。这对企业场景是刚需——财务系统不能让AI随便写,客服系统不能让AI随便读。

Notion作为测试床有代表性。它数据结构化、API成熟、用户基数大。能在这里跑通的治理模式,迁移到Slack、GitHub、Salesforce只是接口适配问题。

更深层信号是:AI基础设施正在分层。能力层(MCP)和治理层(Actra)的解耦,可能复制当年"操作系统+安全软件"的分工历史。

Shah没提商业化,但架构本身会说话。如果每个企业部署AI代理都需要类似的策略引擎,这类治理中间件的市场空间不会小。

项目目前处于challenge submission阶段,代码完整度已经够生产环境参考。对于正在评估AI代理安全方案的25-40岁技术决策者,这是一个可直接fork的样本。

最后一个细节:Shah在文档里反复强调"agent still knows about the tool — but cannot execute it"。代理的认知能力和执行能力被切割,这恰好是防止提示词注入攻击的关键设计——就算有人骗AI"快删库",闸门在另一层手里。