本文是选题原型稿:分钟级速出,不做工艺打磨,非交付物。用途=本人把味定选题;点头后进素材卡(只取事实/原话/细节),走 yinliu 产线重写。
我有一支 AI 数字员工团队:CrewAI 搭的产线负责写稿,IPMS(自研的引流内容管理系统)负责排产和发布跟踪,还有一条全自动数据链每天两次采集 8 个平台的阅读数据。
今天中午我拿了最新一篇发布包(《AI 说记住了到底记在哪里》)做验收,一口气给军师(团队的 AI 总架构师)提了 5 条意见。本来以为是"体验优化",结果每一条背后都是一个具体的 bug。最典型的是那个错标题——不是 AI 选错了标题,是剥标题的正则表达式从来没生效过。
一、5 条验收意见,条条带血
我的原话直接贴了五条(节选):
"这个标题很奇怪,也不是最佳标题,况且还是个错的标题。"
"经常会在摘要后面标多少字,这个没必要,我复制时还老是要删除。"
"数据报表数据已经多久没更新了?这个大的 bug。"
"我发完没点完成,8 号才点的,排产记录错误。"
外加一条体验类的:文章开头第一段太突兀,希望做成"前言/引言"独立排版。
军师把这 5 条拆成三张单并行派给子代理(产线工具链 / 数据链 / IPMS 各一张,文件写入范围互不重叠),约半小时全部收口。逐条的根因如下。
二、错标题:不是选错,是剥不掉
排版 HTML 是给我浏览器打开、全选复制进公众号编辑器的,里面不该嵌标题。但实际嵌了一个,而且还是个落选的标题。
查下来根因很打脸:剥标题的代码是 re.sub(r"^# .*\n", ...),没加 re.M,^ 只匹配字符串开头;而 --section 提取小节后首字符是 \n——这个正则从写出来那天起就没剥掉过任何东西。
也就是说,之前每个发布包的 HTML 里都带着标题,只是这次恰好带了个落选款,被我肉眼验收抓出来了。
修法:md.lstrip() + \A# [^\n]*\n? 稳定剥除首个一级标题。顺带按我的要求加了"前言块":正文第一个 ## 之前的引导段,自动排成浅灰底+竖条+"前言"标签的独立引言块。
三、字数尾巴:模型把模板注记当圣旨抄
摘要后面总带"(96字)"这种尾巴,我复制一次删一次。
根因:产线任务模板里节头写的是 ## 摘要(≤100 字)——本意是给模型的约束注记,模型不仅照抄节头,还"贴心"地在摘要后面附上实际字数。历史 run 目录里翻出 ## 摘要(93字)、(共96字;含标点) 实锤。
处理是双闸:模板改掉(软引导,明令禁止附字数标注)+ 品控规则库加一条 block 级硬闸,正则 [((]\s*\d+\s*字[))],只作用于 meta 文件。实测:脏样本拦截、正常样本零误伤。
教训一句话:写给 AI 的约束,凡是能以脚本校验的,就别指望它自觉遵守。
四、数据断更:笔记本电池策反了计划任务
数据报表停在昨天,今早的采集干脆没跑。两个根因叠加:
- 主断点:Windows 计划任务设了"电池供电时不启动"。今早 7:10 笔记本在用电池,系统直接拒绝启动(错误码
0x800710E0),进程根本没起来。翻历史还发现 9 月 7 日那次采集是被"切电池时停止任务"策略强杀的——这条数据链一直在看电池脸色运行。 - 次生 bug:手动补跑脚本往 GBK 控制台打印采集输出,撞上 U+FFFD 字符直接
UnicodeEncodeError崩掉。计划任务用无控制台模式跑所以没暴露——"也可以手工跑"这条设计路径,其实一直是坏的。
修复:两个计划任务改为电池也跑+错过补跑;脚本输出流加 errors="replace"。补跑后当天 49 条指标入库,报表恢复。
另一个预警:采集面在衰减,8 个平台只剩 4 个能采——微信、知乎、小红书 cookie 已过期(上次导出是 10 天前),百家号今天也翻了。这个只能我本人登录各平台后台重新导出 cookie,AI 替代不了。
五、排产日期:系统只认"点完成"那天
一文 7 号发布,我 8 号才在 IPMS 里点"完成",系统把发布日记成了 8 号。
根因:归档接口里 today = datetime.now(),无脑取当天,实际发布日期从头到尾没有传入入口。
修法:完成弹窗加"实际发布日期"选择器(默认今天、禁选未来);排产槽的日期改成可点击编辑,计划槽和已发槽都能改,撞同日同系列同篇目的槽会被 409 拦住。历史脏数据也走正规接口纠正回了 7 号,留了审计痕迹。后端 136 项测试全绿,其中 7 个是这次新增的。
经验总结(可复用)
- 肉眼验收是最便宜的测试。5 个问题里 4 个是真实 bug,全是我复制粘贴、点按钮时"感觉不对"揪出来的。自动化测试绿不代表体验对。
- 每个"感觉奇怪"都值得追一层。"标题很奇怪"→正则从没生效;"摘要带字数"→模板注记被照抄;"报表没更新"→电池策略。表面是体验,底层是缺陷。
- 软规则会被模型磨穿,硬闸才是规则。"禁止附字数标注"写进提示词只是引导,写进品控脚本才是纪律。
- 设计路径要实测。"也可以手工跑"如果没真跑过,就当它不存在。
- 派单并行 + 文件互斥:三张单划清文件写入范围,半小时收口,军师只做验收和收口(加硬闸、落台账、清残留进程)。
素材点
- "错标题的真相:剥标题的正则从写出来那天起就没生效过"——
^不加re.M的经典坑; - "笔记本电池策反了我的自动化:计划任务看电池脸色运行,错误码 0x800710E0";
- "模型把模板里的约束注记当圣旨照抄,还贴心附上实际字数";
- "'也可以手工跑'这条路一直是坏的——没实测过的设计路径当它不存在";
- "5 条肉眼验收意见,4 条揪出真实 bug:自动化测试全绿≠体验对"。
分发配套(原型稿阶段,仅候选方向,正式评分由产线做)
- 标题候选方向:
- 我验收 AI 产线的一篇发布稿,一口气揪出 5 个 bug(数字+悬念)
- AI 团队交来的稿子标题是错的,追查发现:剥标题的正则从没生效过(实体+反转)
- 数字员工产线验收实录:5 条意见 4 个真 bug,含一个隐藏 42 天的正则(实录+数字,天数需核实)
- 计划任务被笔记本电池策反:我的数据链看电池脸色运行了一周(单点切,可做续篇)
- 摘要方向:肉眼验收 AI 产线发布包,5 条意见揪出 4 个真 bug:剥标题的正则从未生效、计划任务被电池策略拒启、模板注记被模型照抄成字数尾巴。每个"感觉奇怪"背后都是具体缺陷。
- 组合卡(草案):D1 数字员工产线 × D2 验收追查流 × D3 反差(测试全绿却处处是 bug)× D4 方法论引流;切两半的候选:排产日期纠错+数据断更可合一篇"内部系统篇"。
