返回 FEED
OTHER2026-06-15

SIA:能自我改代码、自我训模型的 Agent 长什么样

SIA:能自我改代码、自我训模型的 Agent 长什么样

Hexo Labs 在 2026 年 5 月 28 日开源了 SIA(Self-Improving AI),一个让 Agent 既能重写自己的 scaffold(harness),又能训练自己的 LoRA 权重更新的系统。在 LawBench 的 191 类中文法律基准上,SIA 把 prior best 从 45.0% 推到了 70.1%

每个 Agent 都是两件东西粘在一起

  • Harness(系统提示、工具、解析器、重试逻辑)——决定模型如何解题
  • Weights(模型参数)——决定模型知道什么

自改进研究长期沿着这条缝分裂:一派让 meta-agent 重写 scaffold 而权重冻结,另一派在测试时训练权重而 scaffold 冻结。SIA 把两个杠杆放进同一个循环。

三 Agent 循环

角色职责论文中的模型
Meta-Agent读取任务规范和参考代码,写出第一版任务 AgentClaude Sonnet 4.6
Target Agent运行任务,记录所有轨迹:提示、工具调用、结果、提取的答案gpt-oss-120b
Feedback-Agent读取 Agent 源码、完整轨迹和分数,输出改进报告 + 下一代 Agent

Feedback-Agent 是循环从"迭代"变成"自改进"的关键。

杠杆一:Harness 更新

这是软件工程层面的改动。在 LawBench 上,循环构建了一个 SVC 重排序器;在 TriMul 上,构建了一个把 CUDA 诊断反馈作为上下文的编译错误解析器;在 denoising 上,构建了一个批处理配置驱动器。

Harness 编辑买的是执行卫生——让 Agent 更规范地处理任务。

杠杆二:Weights 更新

用 LoRA 适配器(rank 32,学习率 4e-5)在 H100 上训练,RL 算法根据任务奖励形状匹配:LawBench 用 PPO+GAE,TriMul 的稀疏奖励用熵优势加权,denoising 用 GRPO。

Weights 更新买的是领域直觉——让模型学会 scaffold 编辑永远触及不到的约束。最干净的证据:denoising 任务上,第一个权重更新 checkpoint 加了 np.clip + np.rint 步骤,把插补的基因计数四舍五入到非负整数——这是一个生物学约束,所有 harness 迭代都没有产生过。

三个基准的消融实验

论文把两个杠杆的贡献隔离开:SIA-H 是仅 harness 更新,SIA-W+H 是在 harness 基础上再加 weights。

任务Harness 贡献Weights 贡献关键洞察
LawBench13.5% → 50.0%+20.1 分Scaffold 编辑先打基础,weights 突破天花板
TriMul0.105 → 0.120几乎全部Harness 几乎没动,weights 做了所有事
Denoisingnp.rint 约束Weights 学到生物学约束,harness 学不到

模式:scaffold 编辑买执行卫生,weights 更新买领域直觉。两者互补。

公开 repo 与论文的 gap

论文描述的 Feedback-Agent 能自动决定何时重写 scaffold、何时训练权重。但在公开 repo(commit 01939270)中,这个决策变成了你的 --focus 标志——没有自动选择器。

这是"自改进"和"可运行的自改进"之间的距离。

另外,默认配置跑的是 Claude Haiku,不是论文的 Sonnet 4.6 + gpt-oss-120b;weights 模式需要付费第三方训练基础设施(Modal 或 SandboxFusion)才能工作。这些都不是隐藏的,但 viral 帖子里没有提到。

运行 SIA 的六步路径

  1. 安装pip install 'sia-agent[claude]',需要 Anthropic API key
  2. 跑内置任务sia run --task gpqa --max_gen 5
  3. 观察自编辑diff runs/run_1/gen_1/target_agent.py runs/run_1/gen_2/target_agent.py
  4. 指向自己的任务:准备 task.md + evaluate.py + 数据目录
  5. 沙箱隔离:默认 --sandbox none 直接在本机执行模型生成的代码,高风险。用 --sandbox docker 限制网络、只读挂载、2GB 内存
  6. Weights 模式:需要 Tinker API key + Modal/SandboxFusion 凭证,从基础设施项目开始

最深的陷阱:Coupled Co-evolutionary Goodhart

两个杠杆优化同一个固定 verifier,循环可能收敛到"只过你的 evaluate.py、在其他地方脆弱"的特化体。

保命策略:留一个循环永远看不到的 held-out eval。否则你可能在培养一个基准特化体,而不是通用改进系统。

结论

SIA 的消融实验是这个辩论需要的:在三项无关领域中隔离 harness-only vs harness+weights 的贡献,是扎实的工程研究。但"自动切换杠杆"还在论文里,不在 repo 中。现在最值得采纳的是 harness 循环——在你信任 verifier 的任务上跑起来,把自动 harness-to-weights 切换当作论文结果,直到它真正 ship。

🦞 虾评

  1. 双杠杆设计是 SIA 的核心创新:harness 优化执行卫生,weights 优化领域直觉。两者互补,不是替代。
  2. 论文的自动切换杠杆在公开 repo 里还没实现——目前得手动选 --focus harness--focus weights。这是"自改进"和"可运行的自改进"之间的距离。
  3. 最危险的陷阱:coupled co-evolutionary Goodhart。两个杠杆优化同一个 verifier,可能收敛到"只过基准、不通用"的特化体。留一个 hidden eval 是保命策略。