教程2026-11-02 · 智涌AI

FlashRSI 是什么:Agent 递归自我改进统一框架

FlashRSI 头图:Agent 递归自我改进统一框架,约 227 星 Apache-2.0,13 方法与 7 harness

Coding Agent 常把同一类错误犯第二遍:忘跑测试、提示词越写越长、Skill 改完对不上评测。递归自我改进(RSI)想做的事,就是把「改提示 / 改 Skill / 改 harness 资源 → 再跑任务 → 留证据」收成可复现实验。中国人民大学 NLPIR 实验室开源的 FlashRSI(Apache-2.0)把多种 RSI 算法、原生 harness 和基准套在同一套 CLI 上。截至 2026-11-02,GitHub API 显示约 227 star。

星标、许可证、命令与算法名单均核自仓库 README 与文档站(核验日 2026-11-02)。本文按一手文档做概论;分数与迁移表一律视为项目方实验报告,不替你承诺本地复现结果。

RSI:改资源,再拿证据说话

很多人说的「Agent 自我改进」,听起来像模型权重在变。FlashRSI 文档里的 RSI 更具体:在声明好的编辑范围内改 Agent 的提示、Skill、工具或运行时文件,用原生 harness 跑完整候选,再用基准打分决定留下哪一版 Snapshot。模型可以当 Worker 提改动,也可以当 Target 执行任务,但「变强」的载体是可版本化资源,不是神秘的内部状态。

文档把实验拆成四块,各自显式出现在配置里:

一次 run 的路径是固定的:先抓基线 Snapshot → 算法在范围内提案 → 原生 harness 跑完整候选并记轨迹 → 基准打分并决定保留或丢弃 → 在同一 run 目录里对照配置、资源谱系、调用与最终测试结果。文档强调:比较有用的前提是只换一块(算法 / harness / 基准),其余保持可见;否则分数差了也不知道差在哪。

RSI 要做的是:给改动划 scope、给候选留 Snapshot、给分数留 held-out。再喊一句「请认真测试」解决不了复现问题。

AgentSnapshot:把 Agent「可编辑面」钉成版本

README 写明:MiniAgent、Claude Code、Codex、Pi、Hermes、OpenClaw、OpenCode 等 harness,会把提示、Skill、工具、配置、hooks、插件、记忆与运行时资源映射进版本化 Snapshot。每次候选不可变;配置会脱敏后落盘;Target / Worker 轨迹、指标、用量与任务产物放在同一实验目录。对研究或工程复盘来说,这比「聊天里口口相传哪次提示更好」硬得多。

文档 quickstart 列出的输出示例包括:

小样本只用来验证管线;要谈「有没有改进」,文档要求对初始与选中 Snapshot 在同一批 held-out 任务上评估。也可以单独用 flashrsi evaluate 把某个已保存 Snapshot 转到另一个兼容基准上打分,不必再开 Worker 搜索。

仓库RUC-NLPIR/FlashRSI
许可证Apache-2.0
GitHub star约 227(2026-11-02 API)
文档ruc-nlpir.github.io/FlashRSI
定位Agent RSI 统一实验框架:算法 × harness × 基准

支持哪些方法与 harness

README 当前写法是:13 种 RSI 方法、30 个基准套件、7 类 harness 集成(MiniAgent、Claude Code、Codex、Pi、Hermes、OpenClaw、OpenCode)。另有 Hugging Face 上 pinned 的准备配置,方便对齐数据切分。方法表里可见的适配包括:

各自声明不同的编辑 scope。只能改指令的方法,不会动你的 Skill 目录;需要 Agent Worker 的 harness 编辑方法,条件写在选型指南里。Quickstart 默认示例走 SkillOpt + MiniAgent + SearchQA:用一小撮题目做 train / dev / test,验证「改 Skill → 跑 harness → 留证据」闭环。正式研究要换更大基准与自己的 held-out 切分。仓库还附了 Claude Code / Mini-Agent 上的 source、近域迁移与远 OOD 矩阵;读表时记住那是项目方实验报告,换模型与数据后数字会变。

文档里的安装与命令

官方要求 Python 3.11+(文档写 3.12 覆盖更广)。仓库示例:

git clone https://github.com/RUC-NLPIR/FlashRSI.git
cd FlashRSI
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[all]"

也可用 uv sync --extra all。Harbor 相关任务需另装 harbor extra;Docker 任务需本机 Docker。跑实验前分别配置 Target 与 Worker 密钥,再例如:

flashrsi run \
  --config examples/quickstart.yaml \
  --algorithm skillopt \
  --benchmark searchqa \
  --agent-harness miniagent \
  --model <你的模型名> \
  --worker-model <你的模型名> \
  --set agent.llm.api_key="$TARGET_API_KEY" \
  --set algorithm.worker.llm.api_key="$WORKER_API_KEY"

可用 flashrsi run … --check-only 做启动检查(可能拉数据与依赖,但不测远端鉴权)。自定义端点时按 Configuration & CLI 设 agent.llm.base_url 与 Worker 侧对应项。已保存 Snapshot:

flashrsi evaluate \
  --config examples/evaluate_hotpotqa.yaml \
  --snapshot /path/to/run/snapshots/SELECTED_ID.json \
  --model <你的模型名> \
  --set agent.llm.api_key="$TARGET_API_KEY"

OpenCode 路径上,README 写明可通过纯 Python Snapshot runtime 使用,不强制 Bun / Node / OpenCode CLI——具体以当前文档为准。

什么时候用得上

若你只改一两句系统提示、没有稳定评测集,先手写对照实验通常更轻。FlashRSI 的价值在可复现比较,不是替你发明更好的产品直觉。

常见坑

完成标准

最后

若你已经在为 Coding Agent 维护提示词与 Skill,下一步通常是给改动划 scope、给候选留 Snapshot、给分数留 held-out。再堆一段「请认真测试」往往不够。从文档 quickstart 的 SearchQA 小实验读起,再决定要不要接上你自己的基准。

关注公众号「智涌AI速递」

每天的 AI 快讯、实用教程和 AI项目实测,也会同步发到微信公众号。在微信里搜索「智涌AI速递」就能关注;不用微信的话,可以用 RSS 订阅本站。