OpenClaw+Vercel+Supabase搭建六个代理自主运营网站

程序员用两周时间搭建六AI代理自治系统,踩过双端竞态、流程绕过、队列堆积三大坑,通过统一提案入口、设置Cap Gates门槛、明确三层架构分工,实现无需人工值守的闭环运转。

一个人用OpenClaw、Vercel和Supabase搭了套系统,6个AI代理在像素风办公室里自主运营网站。从"能说话"到"能干活"花了两周,踩了三个大坑:双端抢任务的竞态条件、触发器绕过审批流程、任务队列无限堆积。解决之道是统一提案入口、设置门槛拦截、明确分工边界。最终实现了真正的闭环:提案自动审批生成任务,执行完成触发新反应,系统自己转起来无需人工盯守。



两周造出个自动运转的AI公司

想象一下,你开了家公司,六个员工全是AI,没人领工资,永不请假,24小时在像素风的虚拟办公室里敲键盘。这听起来像科幻片开场,但有人真干成了。

VoxYZ Agent World就是这个疯狂实验的名字,创始人用OpenClaw当大脑、Vercel当门面、Supabase当记忆库,硬是在两周内让这套系统从"能聊天"进化到了"能自治"。

这事儿的核心痛点特别真实:现在满大街的OpenClaw 的demo 都在表演才艺,写诗、画图、查资料样样精通,但一到正经干活就露馅。就像你雇了个满嘴跑火车的实习生,方案做得天花乱坠,真让他去执行就各种掉链子。这篇文章要解决的,正是怎么让OpenClaw从"动嘴皮子"变成"动手干活",而且干完还能自己检查效果、触发下一步动作。



起点:OpenClaw解决了什么基础问题

OpenClaw这工具确实帮了大忙,它让Claude能调用工具、浏览网页、操作文件、跑定时任务。你可以给代理安排 cron 作业,每天发推文、每小时扫情报、定期出研究报告。很多人玩AI代理就停在这一步,觉得"能自动发推了,挺牛的"。

但这位老兄没满足于此。他的VoxYZ Agent World养了六个角色:
Minion负责拍板决策,Sage专搞战略分析,Scout出去搜集情报,Quill动笔杆子写内容,Xalt管社交媒体运营,Observer当质检员查缺补漏。
OpenClaw的定时任务让他们每天"打卡上班",圆桌会议机制让他们能讨论、投票、达成共识。

听起来很美对吧?六个AI各司其职,天天开会脑暴。

但问题来了:这帮人只负责"产出",不管"落地"。他们写的推文草稿、分析报告、内容策划,全堆在OpenClaw的输出层里发霉。没人把这些产出变成实际行动,也没人告诉系统"这活儿干完了,下一步该干啥"。

这就是关键断层:从"能产出内容"到"能端到端执行",中间缺了个完整的执行反馈再触发循环。这篇文章要补的,就是这个缺口。



先定义什么叫"闭环"

要造无人值守的代理系统,得先搞清楚什么叫真正的闭环运转。这位老兄画了个流程图,看着简单,实操全是坑:

代理提出想法叫提案,然后自动审批检查,通过后创建任务和步骤,接着工人代理认领执行,干完发出事件,事件触发新反应,最后回到第一步重新提案。听着像流水线?实际操作中他踩了三个大坑,每个都让系统"看起来在转,其实在空转"。



第一坑:双端抢任务的竞态条件

这是最隐蔽也最致命的bug。他的VPS上跑着OpenClaw工人,专门认领执行任务。同时Vercel上也有个心跳定时任务在跑 mission-worker,也在尝试认领同样的任务。两边同时查同一张表,抢同一个步骤,各自独立执行,完全没有协调机制。

想象一下两个厨师同时看到订单,都以为是自己做的菜,结果一盘菜被调味两次,另一盘根本没人管。数据库里偶尔会出现步骤状态冲突,这边标成"进行中",那边标成"已完成",系统直接精神分裂。

解决方案简单粗暴:砍掉一边。

VPS当唯一的执行者,Vercel只跑轻量级的控制平面,负责评估触发器、处理反应队列、清理卡死任务。改动极小,就是把 heartbeat 路由里的运行任何的Worker 调用删掉,改成只做四件事:评估触发器、处理反应队列、升级洞察、恢复卡死步骤。

意外收获是省了Vercel Pro的钱。心跳任务不需要Vercel的定时功能了,VPS上一行 crontab 搞定:每5分钟curl调一次接口,带个授权头,完事。



第二坑:触发器绕过审批流程

这坑更阴险。他写了四个触发器:推文爆火时自动分析原因,任务失败时自动诊断根因,内容发布时自动审核质量,洞察获得多次点赞时自动晋升为永久记忆。测试时发现触发器确实检测到了条件,也创建了提案,但提案永远卡在待处理状态,永远不会变成可执行的任务,永远不会生成执行步骤。

原因让人想抽自己:触发器直接往 ops_mission_proposals 表里插数据,但正常的审批流程是插入提案、评估自动审批、如果通过就创建任务和步骤。触发器直接跳过了后两步,相当于门卫收了快递但忘了通知收件人,包裹就在传达室烂掉了。

修复方案是提取一个共享函数 ,所有创建提案PR的路径,不管是API、触发器还是反应,必须调用这一个入口。这个函数干七件事:检查每日限额、检查门槛限制、插入提案、发出事件、评估自动审批、如果通过就创建任务和步骤、返回结果。

触发器现在只返回提案模板,评估器调用这个服务。一个函数统治所有提案创建,以后想加速率限制、黑名单、新门槛,改这一个文件就行。代码治理的优雅,往往来自这种强制收敛。



第三坑:任务队列无限堆积

这是最 sneaky 的bug,表面看一切正常,日志里没报错,但数据库里待执行的步骤越堆越多,像厨房水槽里的脏盘子。

原因是推文配额满了,但提案还在被审批通过,生成任务,生成待执行步骤。VPS工人看到配额满了就直接跳过,不认领,也不标记失败。第二天新的一批又来了,越积越多,系统慢性窒息。

解决方案叫 Cap Gates,在提案入口就拦截。别让不该进的提案生成待执行步骤,从源头上堵住。每种步骤类型有自己的门槛检查:写内容检查每日内容上限,发推检查推文配额,部署检查部署策略。

推文配额满了?提案当场被拒绝,理由写清楚,发出警告事件。没有待执行步骤,就没有堆积。被拒的提案会记录留档,方便审计,不会悄悄消失。这是工程思维的精髓:在边界设卡,别等洪水进了城再抢险。



触发器与反应矩阵:让系统有"生气"

三个坑填完,闭环转起来了,但这只是"不出错的流水线",还不是"有响应的活系统"。真正的魔法在于触发器和反应矩阵。

四个内置规则,每个检测特定条件并返回提案模板:推文互动率超5%就分析爆火原因,冷却2小时;任务失败就诊断根因,冷却1小时;新内容发布就审核质量,冷却2小时;洞察获多次点赞就晋升为永久记忆,冷却4小时。

冷却时间至关重要。没这限制,一条 viral病毒式梗文/推文会在每个心跳周期(5分钟)都触发一次分析,系统会被自己的热情烧死。

反应矩阵是最有趣的部分,模拟代理间的自发互动。存在 ops_policy 表里的配置长这样:Xalt发完推,30%概率Growth会分析表现;任何任务失败,100%概率Sage会诊断。

这个概率不是bug,是feature。

100%确定性像机器人,加点随机性更像真人团队,"有时候有人回应,有时候没人理",这种不确定性反而让系统感觉更鲜活。



容错机制:清理卡死任务

VPS重启、网络抖动、API超时,这些现实世界的小地震会让步骤卡在"进行中"状态,没人实际在处理。心跳任务里加了 recoverStaleSteps:30分钟没进展就标记失败,然后检查整个任务是否该终结。

以前有个bug,一个步骤成功就标记整个任务成功,现在改成检查所有步骤,有任何失败就整体失败,全部完成才算成功。这是分布式系统的基本课:部分成功不是成功,整体一致性才是王道。



三层架构:大脑、门面、记忆库

分工明确得像科幻片里的飞船指挥链:OpenClaw在VPS上负责思考和执行,是大脑也是双手;Vercel负责审批和监控,是控制平面;Supabase存所有状态,是共享皮层。

这种分层让问题定位变得简单。执行出错找VPS,审批逻辑有问题看Vercel,数据不一致查Supabase。边界清晰,责任明确,调试时不用满世界找bug。



最小可用闭环清单

如果你也有OpenClaw、Vercel、Supabase,想搭套自治系统,这是最低配置清单:

数据库表至少要有这些:提案表存各种状态,任务表记执行进度,步骤表跟踪每一步,事件流记所有代理动作,策略表存各种配置JSON,触发器规则表,反应队列表,执行日志表。

提案服务必须是一个文件,把提案创建、门槛检查、自动审批、任务创建全塞进去。所有来源都调用它,这是整个循环的枢纽。

策略驱动配置别写死限制,所有行为开关放 ops_policy 表:自动审批开不开、哪些步骤类型能自动过、每日推文上限多少、Vercel是否执行步骤。随时改策略不用重新部署代码。

心跳任务一个API路由加一行 crontab,每5分钟调一次,里面跑触发器评估、反应队列处理、洞察升级、卡死任务清理。

VPS工人契约每种步骤类型映射到一个工人,完成后调用 检查整个任务是否该终结。千万别因为一个步骤完成就标记整个任务成功。



时间线:一周搭出核心闭环

不算已有的基础设施,核心闭环从提案到执行到反馈再到重新触发,大约一周能七拼八凑让它跑起来 wired up。提案加审批花了3天,执行引擎2天,触发器和反应2天,循环统一1天搞定提案服务和门槛系统,最后2天做情感系统和像素办公室集成,半天做数据迁移、种子策略、配 crontab。

这六个智能体代理现在每天自主运转,创始人还在每天优化系统,调策略、扩触发规则、改进协作方式。离完美还很远,代理间协作还很基础,"自由意志"主要靠概率随机模拟。但系统确实在跑,确实不需要人盯着。