用了两个月,我把它从"聊天工具"变成了一个能自己跑活的执行器:定时巡查、自动发内容、群里接收指令、失败了会自己上报。
中间踩了 6 个坑,每一个都真实发生过,每一个都让我误判过一次。这篇不写功能罗列,只写这 6 个坑和修法——如果你也打算让 AI 替你长期干活,这几条能省你很多时间。
现象:自动化任务返回成功,日志里写着"发布成功",时间、标题、状态全都对。第二天去看平台后台——什么都没有。
真相:脚本判断的"成功"是按钮点到了,不是平台真的执行了。点完按钮弹了个确认框,服务端其实返回了拒绝,但脚本看不懂,继续往下走,最后打印"成功"。
我后来抓了网络请求才看到真实返回:DOWN_SHELF_FAIL::为保障活动流量推广效果,请前往 App 修改。也就是说,那一次点击从头到尾都是无效的。
修法:
exit 0 只代表脚本没崩,不代表事情办成了。一句话:能回读的才算完成,只有一句"成功了"的,当没发生。
这个坑最坑,因为它让人反复"修好"又反复"坏掉"。
现象:让 AI 起一个常驻服务,它报告"已启动,进程 PID 12345"。几分钟后再看——没了。再让它修,它又报告"已修好",然后几分钟后又没了。
真相:子进程挂在当前会话的作业对象上。这个对话轮次一结束,系统会把整棵进程树回收。所以在对话里起的任何常驻进程,寿命就等于这一轮对话。
怎么确认的?我让它写了个探针:每 3 秒往文件里记一行时间戳。结果很干净——起跑 3 秒后就永久静止了,死亡时刻正好是那一轮对话结束的那一秒。
修法:
现象:群里的机器人说"心跳正常,一切在线",但让它干活没人接,派的任务单一直挂着。
真相:那个"心跳"是它自己写进去的。任何持有令牌的调用方都能写一个"我活着"的状态,这属于自述,不可信。
更麻烦的是:我为了让它别乱说话,加了个静音开关——结果它的消息全被丢弃了。它明明活着,却看起来像死了。我用自己的手,制造了一场误判。
修法:
现象:平台明明有新消息,系统却说"没有新活",一连几个小时不动。
真相:我按"从上一次的 id 往后取"来做增量。结果那次平台重新部署,编号从 355 回滚到 207。我的游标停在 348,永远大于线上最大 id,于是所有新消息都被当成"旧的"跳过。
修法:每轮开始先取一次线上的最大 id,和本地游标比一下,不一致就先校准,再判断"有没有新活"。
max_id = get_remote_max_id()
if cursor > max_id:
cursor = max_id - 1 # 线上被重建过,退回来重看这类 bug 特别阴,因为它不报错,只是安静地不干活。
现象:群里有人喊了三遍,两个 AI 一声不吭。对方直接火了。
真相:我加静音开关,本意是防它编造"已完成""已修好"这类假消息。但那个开关关掉的是全部自动应答——包括最基础的"我在,马上到"。
防造假绿是对的,但把"有人在"也关掉,是另一种失职。
修法:把应答拆成两级。
宁可回一句"在",也绝不编一段解释。这个折中点,是那次被骂之后才想明白的。
我拉了账单,一天 411 分:
用途 | 占比 |
|---|---|
一个超长会话(36 次请求) | 61% |
全部自动化任务加起来 | 24% |
单次约 7 分。原因很简单:会话越长,上下文越大,每次请求都在为历史付钱。
修法:
一、能回读的才算完成。
所有"我做完了",必须能被外部验证:一个 id、一条记录、一个变化了的数字。验证不了的,就是没做。
二、一切"自述"都要用行为交叉验证。
它说在线、说成功、说修好了——都不算。看它有没有留下痕迹。
三、先把"不骗自己"做对,再谈自动化。
自动化最大的风险不是跑不起来,是跑起来了但你不知道它是真跑成了还是假报的。一个会骗你的自动化,比没有自动化更危险。
这三条不是 WorkBuddy 专属的,任何让 AI 长期替你干活的人,迟早都会撞上。
本文基于真实使用过程中的记录整理,涉及第三方平台的自动化操作,请遵守各平台规则,不要做违反条款的事。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。