42.3万token烧出残次品:我给AI产线做的五小时屎山治理

0 阅读8分钟

翻车根子不是模型不行,是配置屎山。治理后43分钟压到15.4分钟,token砍掉82%(产线落盘日志实测)。

9月3日下午15:07,我的yinliu产线2.0首跑收工,退出码0。

yinliu产线是我自研内容生产系统的核心,一条CrewAI多智能体产线,负责把AI实战素材写成公众号加知乎双稿。2.0是当天上午刚落地的改造,下午14:24起跑,43分钟跑完,烧掉42.3万token,产出两篇稿(产线落盘日志实测)。

产线品控岗签字放行,报告写得漂亮:禁词零命中、数字零卡外、GEO合规、图片齐全。

我读稿,越读越不对。

手忙脚乱中,我误点了"终审通过"。四分钟后,走驳回流程把状态退了回来。这成了当天第一个要修的工具bug:终审按钮没有二次确认。

当晚我下了归因指令,原话:

"跑了43分钟,出这么个结果,我感觉不很不满意。上个对话是改造ip产线2.0,你分析下失败的原因。"

四层品控全过的稿子,被"不满意"三个字否了。

五条归因,每条都有落盘证据

归因材料是run日志、token落盘和git时间线。五条全是定论,没有"疑似"。

一、品控岗烧掉全链65%的token。 43分钟里,它一个岗占24.4分钟、27.6万token(产线落盘日志实测)。这个岗没挂LLM判卷闸,靠agent拿三个工具自主审稿,max_iter 8乘重试3,理论上限32次调用,每次都把42KB的prompt加两篇长文全文重发一遍。而同一套质检脚本在硬闸里0 token已经跑过一遍。同一个检查烧两遍,其中一遍烧LLM。

8月31日我刚做过一轮提速,判卷内联化、注入瘦身14.8KB。我以为提速成果落袋了,结果2.0新增的约10条软判加组合卡判卷注入,把省下的全对冲了。

二、GEO硬闸带病投产。 验收线白纸黑字写着"实测拦过一次才准投产",没做就首跑了;跑完才发现两个实跑bug再返修。那43分钟里,GEO闸根本不可信。

三、双稿制名存实亡。 知乎稿的派单书五段、三个坑、翻车实录三节,和公众号对应小节大段逐字复制。规则里有相似度品控项,纯靠LLM软判,没拦,也没报。

四、品控边判边改当编辑。 报告自己写着"删冗余转述句、合并验收段、FAQ 4条减至3条"。24分钟的大头花在自己动手改稿上。合规项全拉满,稿子被改到"正确而平庸"。

五、根子:所有闸只判"不违规",没有一闸对"好不好看"负责。 43分钟烧完,兜底的真闸还是我这双眼睛。

六单动刀:砍岗、砍注入、补真闸

我的拍板原话:

"也就是说现在的产线成'屎山'了,我要求全篇产线控制到15分钟以内,全面治理屎山配置文件。你给出逐条的修改意见方案。"

治理方案落盘成正式文档,四个coder子代理并行施工,文件写入范围互斥:

  1. 砍岗。 轻链从4个任务砍成3个,品控实体任务摘除。职责三分流:硬校验本来就在脚本层,0 token,保留;软判并入写手判卷闸,13条判据压到8条单次调用;"末位签字"改成全闸绿即放行,我的终审不动。

  2. 砍注入。 实测每个任务的prompt构成,选题岗被塞了19.9KB引流数据汇总,占它prompt的80%,而轻链选题是我钦定的,根本用不上。一行配置砍掉,该任务prompt从24.8KB掉到2.4KB,只剩原来的十分之一(产线落盘日志实测)。规则文件17.5KB瘦身到15.2KB,八处"软规则与硬闸双写"改成一行指针。

  3. 补真闸。 双稿相似度硬闸,用段落级5-字shingle覆盖率,超阈值打回。阈值不拍脑袋:coder把历史41篇定稿加47篇初稿全跑一遍,被退回的违规定稿0.801,已发布合规稿最高0.541,阈值取0.70,依据写进代码注释。

  4. 人的闸也防呆。 IPMS侧终审通过、批量通过、平台核销、组包、发起写作,全部加二次确认弹窗。我那次误点,就是这条的由来。

第一轮验收:token达标,时间没达标

六单落地,第一次真链验收:26.6分钟、11.6万token(产线落盘日志实测)。

token砍掉73%,达标。时间离15分钟还差得远。

我以为prompt砍掉一半,时间也会等比例降。结果只降了38%。时间大头是生成时长,一轮双稿就要7到8分钟,再压只剩拆并行。这是结构问题,不是配置问题。

还炸出四个新洞:全文22处逐句日期括注,一股实验报告腔;定稿第一行带着"标题(综合首选):"内部标签直接外露;品控岗摘走后,重试耗尽的交接块没人消化,会漏进定稿直接发布,潜在事故;判卷打回的判词只在内存里不落盘,两轮失败归因靠猜。

收口单:判词逐轮落盘成 judge_verdicts.jsonl;日期戳和内部标签两条新硬闸,阈值照样实测定,日期戳违规样本16行、历史合规上限2行,阈值定3;标签闸回扫历史134篇,零误伤。轻链重试耗尽直接杀链走断点续跑,不再放行末轮草稿。

第二轮验收:15.4分钟,链条干净

18:42跑完,数字全部对账(产线落盘日志实测):

指标治理前(首跑)治理后(二跑)变化
全链耗时43分钟15.4分钟-64%
token(实例去重真实口径)42.3万7.7万-82%
LLM请求/失败21 / 28 / 0链条干净
链结构4任务(品控占65%)3任务品控岗摘出轻链

判词日志里躺着两条正当拦截,原文:

jsonl {"task":"changwen_task","guardrail":"长文硬校验","round":1,"valid":false, "feedback":"第126行数字不在素材卡且未标来源:每月 30 日前后有月报栏目…"} {"task":"meta_task","guardrail":"meta 结构校验","round":1,"valid":false, "feedback":"[S3 标题丧感拦截] 炫技稿(D2=S3)标题含丧感词「坑」=基调错配,换主钩子"}

两轮修正后通过。定稿过质检CLI:零必改、零告警;日期戳22处降到1处;双稿相似度低于阈值。

这轮最大的收获不是速度。是归因第一次变得无聊:第一轮为什么被打回,打开jsonl一看,两行字写得清清楚楚。以前这种事,要翻console输出考古。

这次翻车,我记下五条

  1. "测试全绿"不等于"能投产"。 两个仓库140加143个测试全绿,拦不住一个没在真链上跑过的闸。改配置必真链验收:违规样本必拦、合规模本必放,进回归用例。
  2. token瘦身减的是成本,不是时间。 想再快得动结构、拆并行,别再指望砍prompt。
  3. 阈值凭实测定,不许拍脑袋。 0.70是88篇历史稿跑出来的分布缝隙。你也能照做:把历史违规样本和合规模本各跑一遍,取中间的空档。
  4. 可观测性先行。 判词不落盘,归因就是算命。每个自动化决策点,判定理由都要落盘。
  5. 合规闸判不了好坏。 产线能保证"不违规",保证不了"我愿意发"。兜底的闸永远是人,所以要保护这道闸,终审加二次确认后,我的误点率归零。

全流程5个小时跑完收工,没有一步靠"感觉"。

玩具不会给自己写故障台账。我的产线会。

FAQ

Q1:相似度阈值0.70怎么搬到我的场景?

思路三层:先攒样本,历史违规稿和合规稿各一批;用同一种算法跑两组,看分布找缝隙取值;依据写进代码注释,样本更新就重测。算法可以换,"实测分布取缝隙"这个动作不能省。

Q2:品控岗摘了,质量谁管?

不是不要品控,是不让一个agent把同一个检查用LLM再烧一遍。能写成代码的检查全沉到脚本层,0 token;软判并进写手判卷闸,一次调用判完;终审还是人。

Q3:为什么不直接拆并行,压进10分钟?

这轮治理的目标是清配置屎山、把闸立起来。生成时长7到8分钟是结构问题,拆并行是下一刀,跑到了就写。

我是野生码农,AI 实战派。自研知识库、数字员工、软考备考、量化交易四个系统,全程公开复盘。

本文所有内容均为本人 AI 实战的过程和结果,经 AI 整理后发布,无任何瞎编虚构内容。

这篇来自《数字员工养成记》系列。产线治理还在继续,每月底的月报栏目会公开产线真实数据,全真实,不修饰。

关注我,看真的。

野生码农AI实战 · 全网同名