评论区里有一句话,我看了三遍:
「目前 agent 最大的问题,就是微信拒绝 MCP,还会封禁模拟点击这类的自动化行为。没微信,生活化的 agent 永远闭环不了。」
底下没人反驳。因为它说中了一件大家都隐约碰到过、却没往这个方向归因的事:不是 AI 不够聪明,是它每次都停在同一个门口。
我想往前提一步。停在那儿,不是意外。是我们一直用错了词。
「闭环」这个词的意思是,这件事从头到尾没有口子。
我们默认,一个好流程就是从第一步自动跑到最后一步,中间不用人。所以每遇到一步要人,我们就说它”还没做完”。
我要说的是——那一步不是没做完。它从一开始就被设计成必须有人。
我们的第四格,连着五期没跑通
我们每天有一条观察流水线,要去看四个地方当天在谈什么。三个地方给接口,脚本跑完自己落盘。第四个地方不给。
不给的意思是:没有接口,没有文档,只能开一个浏览器,像人一样去点。

第一版方案里,我写的是”预计两周内打通”。
两周之后,我把那句话删了,换成了一个字段:gap: <那个源>。
因为这两周我们修的东西不在我们这边。它认的不是我们的请求,是我们的”像不像一个人在点”。你越像,它越防。点击间隔、鼠标轨迹、窗口尺寸、有没有滚动——我们每补一样,它那边就多一条判据。这场仗从头到尾,战场都不归我们。
所以从第五期开始,我们做了一件更难堪的事:不修了。
顺带换了一个词:它从”待修复”变成了”已知边界”。两个词听起来差不多,但一个是任务,一个是结论——任务会一直挂在待办里,结论会有人接手。
我们给它写了一条判据——连不上就跳过,不诊断、不弹窗,然后在当天那份报告的最后加一行:本期缺口,某源。
那条判据上线那天,我以为自己是在妥协。
后来发现不是。
为什么后来连报警也撤了
判据的第一版是带报警的:连不上就给群里发一条消息。
三天之后,那条消息变成了一个没人点开的红点。因为它每天都说同一句话——那个源,今天还是连不上。没有人会为一句重复了五遍的话停下来,包括发它的我们自己。
一个每天都在响的报警,等于没有报警。
后来改成:只在缺口出现的那天和消失的那天各说一次,其余时间它安静地待在报告末尾。
这中间变的不是技术,是我们问的问题。原来是”这个源什么时候能用”,现在是”这一天,我们有没有把它算进去”。
前一个问题我们答不了,它归对面。后一个我们能答,它归我们。
缺口被写下来,它就从没做完,变成了设计
每个跑得起来的自动化背后,都有一本这种东西。区别不在有没有,在写不写下来。
写下来的长这样:
- 一份每月自动生成的报表,最后一步是”导出,发给财务”。
- 一套自动回复,最后一步是”我看一眼再发”。
- 一个自动上架,最后一步是”截图给平台客服确认一下”。
这三步全都不在流程图里。因为它们不属于系统,属于”某个人顺手做的”。
顺手做的意思是:没有名字,没有负责人,没有交接。写这段流程的人离职那天,它就跟着消失了,然后整条线在某天早上突然不动,而没有人知道该找谁。
它消失的方式还特别安静。程序挂了会留一行报错,这一步不会——因为它从来不是程序做的。第二天早上,报表照样生成,只是每个月都该出现的那一列,空了。
反过来,只要给它一个名字——「财务确认」「人工复核」「平台报备」——它立刻从”这个系统有毛病”变成”这个系统到这里为止”。

这是两件完全不同的事。前者你会一直修它,修到怀疑自己;后者你会给它安排人,然后去干别的。
你现在能想起自己那条线里,最后那一格坐着谁吗?如果想不起来,那一格大概还没人。
不是所有缺口都一样
我们踩下来,缺口大概三种。
第一种,技术的缺口。能修,只是没修——接口没写完、字段没对齐、回调地址填错。这种最难的是找,不是修。
第二种,授权的缺口。能谈,只是要付钱——要权限、要白名单、要签一份协议。这种最磨人,因为它不看你的代码写得好不好,看的是你有没有资格站在门口。
第三种,责任的缺口。这种修不掉。
微信拦模拟点击,表面是风控,是技术。底下是另一件事:一笔转账如果错了,谁的账?一条消息如果发错了人,谁去解释?一个订单如果下重了,谁赔?
这一下,机器接不了。不是它不会,是它签不了字。

所以第三种缺口你只能承认它在,然后指定一个人。这个人不是”临时凑合”,他就是流程的一部分——只不过他站的那一格,是唯一一格写着人名的。
回到那个词
所以”闭环”这个词,我一直想扔。
闭环的意思是,没有口子。
可跑得久的系统,全都留着口子。不是没堵上,是留着让人接。
缺口不是没修好的地方。缺口是接口——人就是从这个口子接进去的。