SIA:让 AI 自己改自己,70.1% 把 Claude Code 干到 17.3%

SIA:让 AI 自己改自己,70.1% 把 Claude Code 干到 17.3%

刷 GitHub Trending 看到一个名字很野的项目:hexo-ai/sia,今天涨 199 星,README 第一句:

SIA is a Self Improving AI framework to autonomously improve the performance of any AI system (Model / Agent) on a benchmark task.

Self Improving AI —— 让 AI 自己改自己。

点开论文(arXiv:2605.27276,Hebbar 等人,2026 年 5 月)一看,作者更狠:他们在 LawBench 这个法律推理基准上,把 SOTA 45% 一口气推到 70.1%,顺便把 Claude Code 默认配置打成 17.3%。而方法的核心不是 prompt 调优,是让一个 Feedback-Agent 自主决定:这次改 harness,还是改模型权重

作为一个写 AI agent 经常被「调 prompt 调到头秃」的人,我必须深挖一下。

它到底在解决什么

先说背景。过去一年,做 agent 改进的研究大致分两派:

  • Harness-update 派:meta-agent 改 scaffold(工具、prompt、重试逻辑、搜索流程),模型权重不动。
  • Test-time training 派:RL 管道在 task 反馈上更新模型权重,harness 不动。

两派各有硬伤:

  • 只改 harness 的天花板是模型能力本身。给一个不擅长法律的模型加再多 prompt,也挤不出领域知识。
  • 只改权重的天花板是 harness。模型再聪明,没有合适的工具、合适的搜索流程,照样跑不动长链路任务。

SIA 的核心论点:harness 让模型「会做」,权重让模型「会想」。两件事必须一起做。

一句话:SIA 是一个「边跑边改自己」的循环,跑完一轮 task,Feedback-Agent 看 trajectory 决定改哪一边,下一轮接着跑。

三个角色,三步循环

SIA 把改进循环拆成三个 agent:

角色 干什么
Meta-Agent 看 task 描述,生成初始 scaffold(工具集、prompt 模板、搜索流程)
Target Agent 拿着 scaffold 跑任务,输出执行轨迹
Feedback-Agent 读完整轨迹 + 奖励信号,决定这次「改 harness」还是「改权重」

控制流大致是:

1
2
3
4
5
6
7
Meta-Agent  → 生成 scaffold
Target Agent → 在 benchmark 上跑一遍
Feedback-Agent → 读 trajectory,决定改哪边

写入 improvement.md / 更新权重

下一轮(默认 max_gen=3)

每一轮的产物都落在 runs/run_{run_id}/gen_{n}/ 下:

  • target_agent.py(新 scaffold)
  • agent_execution.json(执行轨迹)
  • improvement.md(Feedback-Agent 写的人话总结)

跑完后还会自动起一个 dashboardhttp://127.0.0.1:8000),按代际可视化准确率、prompt diff、轨迹。关掉就 --no-web

跑起来有多简单

作者把 pip install sia-agent 做成了一行命令。两个 agent 实现可选:

  • Claude agent impl:Anthropic 全家桶,配置最少
  • OpenHands agent impl:跨 provider(Gemini、OpenAI、Anthropic、Z.AI、DeepSeek…),meta/feedback 可以跟 target 用不同模型

最小可跑命令:

1
2
3
4
5
pip install sia-agent
export ANTHROPIC_API_KEY=sk-...

# 跑内置 lawbench 任务,三代迭代
sia run --task lawbench --max_gen 3

想换 task 改 --task 即可,内置有 gpqalawbenchlongcot-chessspaceship-titanic 四个。想接自己的 benchmark,准备一个 task 目录:

1
2
3
4
5
6
my-task/
├── data/
│ ├── public/task.md # 给 agent 看的题目
│ └── private/ # 评测数据,agent 看不到
├── eval/ # 评分脚本
└── agent_reference/ # 初始 scaffold

然后 sia run --task_dir ./my-task

跨 provider 的配置稍微多一点,要写 providers/profiles/ 的 JSON,把 (model, provider, agent_impl) 绑成命名 profile。这块设计上很克制 —— 不改代码,只改 JSON

论文里的硬数据

我读完论文最让我惊的几个数字:

  • LawBench Top-1:70.1%(之前 SOTA 45%,+56.6%)
  • GPU Kernels (TriMul Triton):14× 加速,91.9% 运行时间下降
  • scRNA-seq 去噪:MSEnorm 0.289(之前 SOTA 0.220,改进 502%)
  • MLE-Bench Hard:在所有被测模型代际上排第一

尤其是 LawBench 这条 ——Claude Code 默认配置只有 17.3%,SIA 跑几代直接到 70%。这意味着什么?

意味着很多「agent 干不好」的任务,根因不是模型不行,是 harness 烂。改对 harness 收益就来了。再加上权重微调,往领域知识方向再推一把。

论文里有个细节我特别认同:SIA 不是「暴力微调」,Feedback-Agent 会判断:

  • 这一代 harness 还没收敛 → 改 harness
  • harness 稳定了但某类错误反复出现 → 改权重
  • 改权重收益饱和 → 回到 harness 继续调

这种「左右互搏」的策略比单一派别稳得多。论文里也对比了纯 harness-update 派和纯 weight-update 派,SIA 两条腿走路的版本在所有任务上都赢。

局限和我自己的思考

当然不能光看亮点说事。论文 + 仓库里也有几个我读到的局限:

  • 需要任务有可量化奖励。SIA 改自己靠的是 reward signal,没法量化就改不动。开放式对话、创意写作这种 task 不在它射程内。
  • 权重更新要 GPU。本地轻量跑不动,target agent 想微调就得准备一张能装下 LoRA 的卡。
  • Meta-Agent 烧 token。每代都要重新生成 scaffold,3 代下来 API 账单不是小数。
  • 任务需要明确边界。benchmark 风格的 task 最合适,开放环境还在探索。

对我来说这反而是好事:SIA 不是「明天就能塞进我的日常工作流」的玩具,它是一个让人看清「AI 改自己」这条路径到底怎么走的研究框架。我自己的用法可能是:

  1. lawbench / gpqa 跑一遍,看 dashboard 里 Feedback-Agent 怎么写 improvement.md
  2. 拿我自己某个跑得不好的小任务(比如周报的自动摘要)做 task_dir,量一下基线和改进空间
  3. 记录 Feedback-Agent 改 harness 的「套路」,手抄到我自己项目的 system prompt 里

最后一条才是真金白银 —— 它生成的 improvement.md 本身就是一份 prompt 调优教程。SIA 跑一遍,等于有个研究员帮你审了一遍 agent 配置。

一点感想

「SIA」这个名字起得有意思:Self-Improving AI,字面是 AI 自我改进,往深里说是让 AI 工程的迭代速度脱离人工节奏

以前我调一个 agent,要花几个小时写 prompt、写 few-shot、跑测试、看 trajectory、再改。再快也得半天一个循环。SIA 的实验数据告诉我:这件事完全可以压缩到「代际」为单位,每一代 Feedback-Agent 看完 trajectory 后给出的下一轮 scaffold,比我自己手写的更准。

它不会让我失业,但会让「我调 agent」这件事,从体力活变成监督活。我不写 scaffold,我审 SIA 写的 scaffold。

这个转变对做 agent 的人意义很大。等下个月有 5k+ star 了我再回来更新数据,到时候再写一篇跑真实任务的体验。


参考: