Agent 开始自己造 Agent,真正的突破却在改错题本
胡新宇
Published on 2026-08-19
LlamaFactory 作者郑耀威开源 PenguinHarness,把 Agent 工程的自我改进从训练拽到 Harness 层。
Agent 开始自己造 Agent,真正的突破却在改错题本
LlamaFactory 作者郑耀威这两天在 GitHub 开源了 PenguinHarness。这套系统给自己一句话定位:让 Agent 造 Agent。项目地址 github.com/Prism-Shadow/penguin-harness(来源:公众号 NLPer 2026-08-19)。
但真正有意思的"造"背后,是那个 4.80 → 9.80 的自我改进曲线。
Agent 怎么造 Agent
先说"造"长什么样。项目里的本地示例从一句需求开始:创建一个能根据代码改动生成 Git 提交信息的新 Agent(来源:PenguinHarness 项目示例)。
默认 Agent 接到指令后,干了四件事:
- 在项目里建出
commit-helper目录 - 写好
AGENTS.md和system_config.yaml - 装上需要的 Skill
- 把刚被造出来的新 Agent 叫出来干活
新 Agent 读取代码改动,交回一条符合 Conventional Commits 规范的提交信息。整个流程用 Ollama 调本地的 qwen3.6:35b,数据不出机器。

这只是开胃菜。项目首页还放了一件更大的活:用户只写一句话,让它收集 Claude Code 文档,做一个回答配置问题、同时附上原文引用的 RAG 应用。
PenguinHarness 往下补完脚手架、代码和运行说明,最后交出一个可以继续运行的网页应用。项目使用的 DeepSeek V4 Pro,总共花费 0.2 元(来源:项目首页演示)。
0.2 元,造一个完整可用的 RAG 应用。这是 Agent 造 Agent 的当下水位。
真正发生的事:自我改进
但这个项目最值得拆的,是自我改进示例里那组数据。
PenguinHarness 给新 Agent 安排了一项看起来不难的工作:把会议笔记整理成团队报告,写两句概述和三条事实,还要遵守公司的内部格式。
问题出在"内部格式"四个字。报告要带什么标题、密级和页脚,只写在团队的工作手册里。初始的 AGENTS.md 是空白,新 Agent 根本无从猜起。它连续跑了五次,得分分别是 5、4、5、5、5,平均 4.80/10(来源:PenguinHarness self-improving-agent 示例)。
随后系统给它看了一份合格报告。Agent 从范例里摸出了大致结构,把新规则写回自己的 AGENTS.md,第二轮平均分升到 6.60/10。
一份范例还分不清哪些内容每次都要固定。等到三份合格报告摆在面前,它找出了不变的项目标记和签名,把这些常量也补进手册。第三轮来到 9.80/10。

**从 4.80 到 9.80,这中间没有任何一次训练。**模型权重一直放着没动。变化都写进了模型外面的 Agent State:工作手册、Skill、运行配置。
这是项目自定位的那个词——Harness for RSI。
RSI 是 Recursive Self-Improvement,递归自我改进。但这次的递归不在权重里,在外部文件里。
三个层级与质量守门
PenguinHarness 的自我改进分了三个档:
最简单的 self-improve.ts 由脚本硬编码写入规则,只演示"考试、修改、重考"这套循环。self-evolve.ts 才把改手册这件事交给 Agent 自己完成。递归版更进一步,让 Agent 自己从范例里找规律、改手册。
每轮修改前还会留一份快照。新版本必须在同一套题上严格涨分,才有资格留下;成绩没涨,直接退回上一版。
**这是 CI 思维跑进 Agent 工程的关键一步。**以前调 Agent 的规则全挤在一大段系统提示词里。改了哪句话、为什么改、上个版本到底哪里不行,时间一长很容易说不清。PenguinHarness 把这些东西变成了文件和记录:工作手册可以进版本,考试有固定题目,每轮执行能看 Trace,改坏了还有快照可退。
把它和最近阿里开源的 skill-up 摆在一起看就清楚了:skill-up 给 Skill 加 CI,PenguinHarness 给整个 Agent 加 CI。同一条工程化路线,从 Skill 层升到 Agent 层。
为什么这件事现在重要
Agent 行业的最大障碍,过去两年一直被认为是"模型不够强"。模型迭代到这个水位,问题早就不是这一个了。真正卡住人的是另一件事:怎么把一个 Agent 调稳定、保持稳定、出了问题能回滚。
这件事长期没人解决,不是因为缺技术,是因为大家还在用"调提示词"的方法——提示词没有版本号,没有 Trace,没有回滚按钮。改坏了你都不知道是哪一句的锅。
PenguinHarness 的解法是把提示词外面的那层 Harness 做厚。工作手册 = 可版本化的提示词外延。考试系统 = 可回归的评估集。Trace = 可调试的运行日志。快照 = 可回滚的发布历史。
这跟当年 LlamaFactory 干的事一脉相承。郑耀威前作 LlamaFactory 把模型微调里一堆零散脚本收进同一个工具箱,让很多人第一次跑微调可以从一份 YAML 配置开始,不用折腾环境。这次他瞄上了 Agent 工程的同类痛点——脚手架、提示词、Skill 全是散的,没有同一个工作台把它们串起来。
剩下的问题
Harness for RSI 这条路线把"自我改进"从训练拽到了工程层。但这条路还有三个问题没人答:
第一,外部记忆的容量边界在哪? AGENTS.md 能写多大?写多了 Agent 自己读不完、写少了规则又放不下。这是个工程容量问题,但没人给过基准。
第二,递归层数会不会失控? Agent 改手册、改完再改、改完再改……如果每轮涨 0.1 分,它会一直改下去吗?质量守门挡住了回滚,但没挡住"够用就继续改"。
第三,什么时候该训练、什么时候该改 Harness? 现在两边都能涨分,但工程师没有一个清晰的判断标准。模型权重不动、能力在涨——这件事是好事,但边界模糊。
这三个问题没答案之前,Harness for RSI 还只是一个工程思路,不是一个工程标准。但方向已经清楚了:Agent 工程第一次有了完整的"考试系统"——以前只能调提示词,现在能调整个 Agent State。
这条路让 Agent 第一次像软件工程。剩下的问题,都是工程问题。