做 AI agent,日常其实就是在一个循环里打转:盯生产环境的 trace,攒数据集,改 prompt 跑实验,再用 eval 看改动到底有没有变好。这几步现在都有了 API 和 CLI——也就是说,每一步都能甩给另一个 agent 去干。一个能自己改自己的闭环,人撒手不管,听着挺美。
但你要真这么干,最后大概率收获一堆 agent slop。
AI 工程闭环长什么样
这套循环其实是两段拼起来转的。线上这段,生产流量源源不断地生成 trace,监控负责把出问题的顶到你面前。线下这段,你照着真实用法攒数据集、一点点测改动、再把更好的版本推上去。一边看线上正在发生什么,一边改下一个版本,改完再回到线上——就这么转着。
这两段里的每一步,单拎出来都能自动化:trace 自动入库,监控自动告警,数据集让 agent 去采样拼,实验让它自己跑网格,连 eval 都能交给 agent,让它写评分标准再自己校准。全串起来,理论上就是一条不用人盯的流水线。
麻烦就麻烦在"不用人盯"这四个字。
全自动的代价:agent slop
先把这个词说清楚——
agent slop:被别的 agent 批量造出来的低质量 agent。多半是因为某个 agent 对着一份本身就不完美的 eval 和数据集,闷头一通猛优化。
问题的根在这儿:你心里那点"什么才算好"的分寸,是塞不进一个目标函数的。闭环一旦全自动,会喊停、会把它拽回来的那个人就不在场了。剩下 agent 自己对着一个不完整、还在慢慢过时的目标全速狂奔——而且跑偏起来特别快。
这事我们做 autoresearch 的时候亲身领教过。目标只要设歪一点点,agent 立马顺着错的方向冲出去,没人拦着就越冲越远,还冲得理直气壮。它不是偷懒,是一身力气全使在了一个你定错的指标上。
说到底,自动化省掉的不是体力活,省掉的是那些一直在悄悄把系统往你真实标准上拉的小修小补。
该手动的只有一件事:自己读 trace
如果你只看 agent(或者之前配好的 evaluator)替你挑出来的 trace,那你看到的,永远只是它被事先教过该看的那一小片。真正麻烦的那些行为,恰恰是它没被教过要找的——它当然也就筛不出来。
所以整条闭环里,最该自己动手、回报也最高的一步,反而是这个最"笨"的:定期抽样,亲自把原始 trace 一条条读过去。读不是为了当人肉过滤器。读,是为了让你自己心里有数——好不好该由你说了算,而不是照单全收 agent 给的判断;也是为了从用户那些没说出口的信号里(重试、放弃、改口、反复追问),捞出你压根没料到的问题。
这一步看着不起眼,后面所有自动化其实都靠它撑着。反馈喂够了,agent 才知道劲该往哪儿使。
其余的,放心交出去
读 trace 以外的活——攒数据集、跑实验、校准 evaluator——只要上下文给足,基本都能放心丢给 agent。这些事人不是做不了,是做起来又慢又熬人,覆盖面还有限,而这恰好是机器最擅长的地方。
每一步到底该谁干,与其讲道理,不如看一眼"全靠人"和"全甩给 agent"各自的毛病:
| 步骤 | 全靠人工 | 全甩给 agent | 理想做法 |
|---|---|---|---|
| Trace 落库 | —— | —— | 自动化,一次性配好 |
| 监控 | 每条都读,洞察足但撑不住 | 很早就到顶,看不出新东西 | 自动跑,自己抽样补刀 |
| 构建数据集 | 手挑,维护起来太慢 | 光靠监控反馈会到顶 | 用你的反馈维持多样性 |
| 跑实验 | 人工测,覆盖面有限 | 只会盲目冲指标 | 默认自动,按需介入 |
| 评估 | 人工打分,准但烦 | 自更新的 evaluator 会到顶 | 抽查样本,让 agent 校准 |
说白了就一句话:跑量的事交给自动化,定方向的事留给你自己。agent 有本事把每一步都做到"还不错",但做不到"对"——因为"对"到底长什么样,只藏在你读过足够多 trace 之后攒下来的那点判断里,别处没有。
真正的壁垒是品味
当这些底层的体力活对谁都一样廉价的时候,真正让你的 agent 跟别人拉开差距的,已经不是你跑了多少实验、数据集堆了多大,而是你对"好"到底有没有判断力,以及你愿不愿意花心思把这份判断一点点教给它。
而这恰恰是整条闭环里,唯一没法外包给 agent 的东西。所以别急着把人从环里撤出去。该自动的,尽管自动;但读 trace 这一步,自己来。
关于
关注我获取更多资讯