Notion 把会自己写 PR 的编码智能体,塞进了你的文档

小岛AI 2026 / 06 / 25

事情是这样的。

这两天刷到 Cursor 官博一篇不太起眼的文章,标题平平无奇,讲的是 Notion 怎么把 Cursor 接进自己产品里。我本来是当一条普通的「又一个集成上线了」的新闻扫过去的,扫到一半停下来了。

因为它说的不是「Notion 接入了 AI 助手」这种我们已经看吐了的话。它说的是,你现在可以在 Notion 的一篇文档里 @一下 Cursor,或者在某个讨论串里提它一句,或者干脆在数据库里给它派一个任务,然后 Cursor 会自己把活干完,规划、写代码、跑测试、自己验证,最后给你提一个 PR 出来。

@一下,它就去给你提 PR 了。

Cursor 把编码引擎,接进了 Notion 的工作区

我盯着这句话看了一会儿。倒不是因为「AI 写代码」有多新鲜,这事儿大家都麻了。让我愣了一下的是后面那句不起眼的补充,Notion 做这套集成,从零到完整上线,只花了几周。

几周。一个会自己开沙箱、自己跑、自己提 PR 的自主编码 agent,塞进一个几千万人用的产品里,几周。

好家伙。

先说说这事儿为什么不太对劲

你要知道,做一个真能干活的编码 agent,是一件特别脏特别累的工程。

我平时的工作,说得文艺一点,是给大模型搭脚手架,就是让模型从「能聊天」变成「能真的去仓库里改代码、跑命令、提交结果」的那层工程。这层东西外面有个词叫 harness,意思就是把模型套进一个能干活的框架里。这词读者大概不熟,你就理解成「让 AI 真正能动手干活的那套底层管线」就行。

这套管线里有什么?我随便给你数几样。

你得有一个云端的沙箱,因为你不能让一个 AI 在你的生产服务器上随便 rm -rf,得给它一个隔离的、能装依赖能跑代码、跑完即焚的环境。你得做模型路由,这个任务用哪个模型、贵的便宜的怎么分配、一个挂了怎么切到另一个。你得管工具调用,让模型能调 git、能读文件、能跑测试,还得处理它调错了、调超时了、调了一半网断了的各种烂摊子。

最要命的是这些坑你单独看每一个都不大,但它们会同时发生。模型生成到一半 token 预算超了,沙箱里某个依赖装失败了,工具调用卡在那儿不返回了,你得有超时看门狗把它捞回来,得有重试逻辑别让它死在那儿,还得保证用户那头看到的是「正在工作」而不是一个转圈圈转到天荒地老的菊花。

我跟这套东西天天打交道,所以我太清楚这玩意有多难搞了。真不是搭个 demo 那种难,是上线之后每天被各种边界 case 凌迟的那种难。一个团队认认真真做,做半年一年都正常。

所以当我看到 Notion 几周就搞定了,我的第一反应不是「厉害了 Notion」,是「等会儿,他们肯定没自己做」。

他们确实没自己做

往下读,谜底揭开了。Notion 没有自己造这套 harness,他们直接用了 Cursor SDK

Cursor SDK 这东西,简单讲,就是 Cursor 把自己在生产环境里天天跑的那一整套 agent 引擎,沙箱、模型、运行时、工具链,原封不动打包成一个接口给你。你不用自己造沙箱,不用自己做模型路由,不用自己趟那些重试和超时的坑。你调它的 API,它给你返回一个能干全栈活的编码 agent。

Notion 那位叫 Victor Shen 的工程师有句话我觉得说得特别实在。他说构建一个自主编码 agent 是一套庞大且高度专业化的系统,而 Cursor 在这件事上做得比他们自己更好,所以 Notion 想把工程时间花在产品和体验上,而不是 agent 的基础设施上。他用了一个我很喜欢的比喻,Cursor 是引擎,Notion 是界面和上下文。

我看到这儿其实有点感慨。

因为这是一个特别清醒的判断。很多公司在这个阶段是会犯轴的,觉得 AI 是核心能力得攥在自己手里,于是吭哧吭哧自己从头造一遍轮子,造了大半年,造出来一个比 Cursor 差、还得自己养着的东西,然后把本该打磨产品的时间全填进这个无底洞里了。

Notion 没有。Notion 想得很明白,我的核心价值不是 agent 引擎跑得多溜,我的核心价值是我有几千万用户的工作区、有他们的文档、有他们的上下文。引擎我租就行了。

这话听着简单,真到自己做决策的时候是很难的。承认「这块别人做得比我好,我不做了」,对一个工程团队来说是需要一点克制的。

真正让我坐直的是那个「薄」字

但这篇文章里最让我没绷住的,不是「Notion 很聪明地外包了」这个判断,是 Shen 描述这个集成有多简单时用的那个词。

他说,他能给这个 SDK 的最高评价就是,集成 Cursor 只需要一个很薄的适配层。

很薄。英文原文是 thin。一个工程师夸另一个工程师做的东西,最高级别的褒奖往往不是「功能多」,而是「接上去毫不费劲」。

薄到什么程度呢?文章里讲了具体怎么对应的,我觉得这段是全文最有意思的地方。

Notion 里有「线程」这个概念,就是你在文档某处发起的一串讨论。他们的做法是,一个 Notion 线程,直接对应成一个 Cursor 的 agent。然后这个线程里的每一条消息,对应成 agent 的一次运行。

第一条消息会把 agent 创建出来,顺手带上提示词、你选的代码仓库、用哪个模型、要连哪些 MCP 服务器,还顺手把「干完自动提 PR」这个开关给打开。之后你每发一条新消息,就触发一次新的运行,结果通过 SSE 流式推回来,所以你能实时看着它干活的进度,哪怕你中途网断了,重连之后还能从上一个事件接着看。

我读到这段的时候笑了一下。

因为你发现没有,这里几乎没有「翻译」。不是 Notion 费劲巴拉地把自己的模型硬掰成 Cursor 的形状,而是两边的抽象本来就长得差不多。线程天然就是 agent,消息天然就是一次运行。Shen 自己说的,agent 和运行的结构几乎可以直接映射到他们的模型上。

一个线程对应一个 agent,一条消息对应一次运行,中间只隔着一层很薄的适配层

这种「严丝合缝」的感觉,是 SDK 设计得好才有的。一个烂 SDK 会逼着你写一大坨胶水代码,把你的世界观和它的世界观来回硬转,转得到处是 if-else 和补丁。一个好 SDK 是你看一眼就知道「哦,我这个东西刚好能套上去」。

SSE 那个细节也很见功力。SSE 就是 server-sent events,服务器主动往浏览器推消息的一种方式,比起每隔几秒去问一次「好了没好了没」,它是有进展就推给你,所以你能看到那种打字机一样一点点冒出来的实时进度。更妙的是它支持断点续传,连接断了从上一个事件接着来,不用从头再跑一遍。对一个可能要跑好几分钟的 agent 任务来说,这个体验上的差别是天和地。

MCP 在这里是那块缺的拼图

光有引擎还不够。一个 agent 如果只会闷头写代码,但不知道它服务的这个工作区里有什么,那它就是在真空里编程,写出来的东西大概率不是你要的。

这里就轮到 MCP 上场了。

MCP 全称 Model Context Protocol,模型上下文协议,是去年开始火起来的一个东西。你可以把它理解成给 AI 用的 USB 接口,一个统一的标准,让 agent 能去连接外部的数据源和工具,读你的数据库、查你的文档、调你的内部系统,而不用为每一个系统单独写一套对接。

Cursor SDK 支持远程 MCP,意思是 Notion 可以把自己的自定义 MCP 服务器接上去,让 Cursor 这个 agent 能实时读写它正在服务的那个工作区。Shen 的原话是,把出色的远程 MCP 支持、云端沙箱和工具调用这几样凑到一起,Notion 几乎是直接就拿到了一大块「agent 干完实际的活、产出 PR」的完整闭环能力,有大量复杂的基础设施他们压根不用自己建。

你把这三样东西连起来看,引擎是 Cursor SDK,上下文是 MCP 接进来的工作区数据,界面是 Notion 自己的文档和数据库。三块拼到一起,一个能在你真实工作场景里干活的 agent 就成了。

而 Notion 真正写的代码,就那一个薄薄的适配层。

我想跟你唠的,其实是这背后的味道

聊到这儿,具体的技术其实说得差不多了。但我之所以盯着这篇不起眼的官博看了半天,是因为我闻到了一点别的味道。

就是 agent 这层东西,正在变成水和电。

你回想一下云计算刚起来那会儿。一开始大家都自己买服务器、自己搭机房、自己请人运维。后来 AWS 出来了,告诉你别买了,算力我按小时租给你。再后来连数据库、连消息队列、连身份认证都变成了你调个 API 就能用的服务。慢慢地,创业公司不再需要一屋子人去维护基础设施,他们把那些时间全砸回到自己真正独特的那部分产品上了。

现在轮到 agent 这层了。

agent 引擎正在像水和电一样,顺着管线流到每一个产品里

前两年,谁手里有个能干活的 coding agent,那是核心竞争力,是壁垒,是融资 PPT 上最亮的那一页。现在 Cursor 把它打包成 SDK 了,Slack 能接GitHub 能接,现在 Notion 也接上了。下一个是谁不重要,重要的是这个动作本身在说,agent 引擎正在从「你得自己造的核心能力」掉到「你调个 API 就能用的公共设施」。

这是好事还是坏事,我说实话也没完全想明白。

对绝大多数做产品的人来说,这显然是天大的好事。你不用再去趟那条又长又脏的 agent 基础设施的路了,你可以把那半年时间拿去打磨你的产品到底解决了用户什么问题。这是把创新的门槛往下砸了一大截。以前你得是个有几十号工程师的团队才敢碰自主 agent,现在可能几个人几周就能给自己的产品长出一双手。

但我心里也有另一个声音。当所有人的 agent 引擎都来自同一个 SDK,大家的能力底座就长得越来越像了。你的护城河就从「我有 agent」变成了「我有什么独特的上下文和场景值得让 agent 干活」。Notion 的护城河从来不是它会不会写代码,是它装着你的笔记、你的文档、你团队的整个第二大脑。引擎谁都能租,但那个工作区只有它有。

所以这事儿逼着每个做产品的人去回答一个更硬的问题,引擎不再是你的壁垒了,那你的壁垒到底是什么。

这个问题,我觉得比「Notion 接了 Cursor」本身重要得多。

写在最后

其实你把视角拉远一点看,这是一个特别程序员的故事。

我们这行从第一天起信的就是一件事,不要重复造轮子,能站在别人肩膀上就别自己从头来。Unix 哲学里有句老话,一个程序只做好一件事。Cursor 把「做一个会干活的编码 agent」这一件事做到了能打包卖给别人,Notion 把「给你一个好用的工作区」这一件事做好了,两个各自做好一件事的东西拼在一起,长出了一个谁单独都做不出来的新东西。

我盯着官博那张配图看的时候,脑子里冒出来的画面是这样的。某个 Notion 的工程师,某个普通的工作日,在文档里敲下一行话 @了一下 Cursor,然后看着屏幕上的进度条一点点往前走,几分钟后一个 PR 安安静静地躺在那儿等他 review。他可能也就是喝口水的工夫,活就有人替他干了一半。

我们总在聊 AI 会不会取代谁。但这种时刻给我的感觉不是取代,是那种很古典的、工程师之间互相托举的感觉。Cursor 把最难那块扛了,Notion 就能轻装上阵。你省下来的那几个月,本来就该花在更值得花的地方。

至于那个更值得花的地方是什么,每个人答案不一样。但能开始认真问自己这个问题,已经是被这波浪潮往前推了一步了。

我也还在想我自己的答案。想明白了再跟你唠。