Reef:让 Agent 从每次交互里持续自我进化的开源基础设施

Human-Agent-Society/reef 是以 Apache-2.0 开源的持续自我进化 Agent 基础设施,把推理、反馈、训练与版本化交付接成 Serve / Observe / Grow / Commit 四步闭环;可进化模型权重或 harness 文本树,PyPI 包 reef-infra 现为 v0.1.3,权重路径需 GPU 与 git-lfs。

Agent 能写代码、调工具,但会话一关就回到出厂状态:同一套提示词、同一批技能、同一个权重。Human-Agent-Society 于 2026 年 8 月 31 日以 Apache-2.0 开源 Reef,官方口径是「首个面向持续自我进化 Agent 的开源基础设施」,把推理、反馈、训练与版本化交付接成闭环。它给的不是算法,而是最难维护的那层工程底座。

一句话定位

Reef 架在推理引擎与 RL 训练框架之上:按 OpenAI / Anthropic 协议承接流量并记录交互,用 receipt 把反馈匹配回原始记录,交给可插拔 recipe 产出候选更新(权重或 harness 文本树),过评估即发布为新版本并热加载,被拒候选不影响在线服务。

技术栈

  • 语言:Python 为主(约 10.7 MiB),C++ 约 218 KB,另有 Shell、Dockerfile 与少量 TypeScript
  • 运行要求:Python 3.12+;artifact 与 checkpoint 依赖 git-lfs,官方推荐 uv
  • 分发:PyPI 包 reef-infra,已发 v0.1.1(2026-09-25)、v0.1.2(2026-10-02)、v0.1.3(2026-10-14)
  • 上游:SGLang 管推理,Slime 管权重训练;最小示例用 Qwen/Qwen2.5-1.5B-Instruct
  • 接口:/v1/chat/completions、/v1/responses、/v1/messages;x-reef-scenario 选场景,x-reef-agent-record-id 返回 receipt,POST /reef/report 上报 score 与 feedback
  • 模块:service、runtime、storage、record2sample、recipe、train、evaluation、artifact、surface,对应 Serve、Observe、Grow、Commit 四步
  • 许可:Apache-2.0

核心功能

四步闭环 Serve 记录交互,Observe 匹配反馈,Grow 产出更新,Commit 按选择策略发布;候选被拒时当前 release 继续服务。

两个进化面 权重路径走 Slime 加 SGLang,需可训练模型与 GPU 栈;harness 路径把提示词、规则、技能存成文本树,只需 OpenAI 兼容端点。

recipe 按任务形态分三类 开放式发现:TTT-Discover、Guidance-TTT;离线已知答案:SAO、SDFT、SDPO、OPD、GEPA、Meta-Harness;在线学习:OpenClaw-RL、ACE、ReasoningBank。除 SFT 随 wheel 发布,其余在 recipes/ 按类引用选取。

版本化交付与热加载 checkpoint 过评估即被运行时加载为新 release,无需重启;GET /reef/harness 渲染已发布文本树供客户端拉取。

评估留痕 每个 recipe 的 examples 带 results 页,README 汇总了 IMOAnswerBench、AIME 2024、AIME 2025、SciKnowEval、ToolAlpaca、Terminal-Bench、TriMul、圆填充与 GSM8K 等已测基准。

bash
uv venv && source .venv/bin/activate
uv pip install reef-infra
python3 -c "import reef; print(reef.__version__)"

对比 vLLM、SGLang 与 Slime

维度ReefvLLMSGLangSlime
开源Apache-2.0Apache-2.0Apache-2.0Apache-2.0
训练权重是,经 Slime否否是
版本管理与热更新有,更新期间不断服无无无
进化权重以外提示词、规则、技能不涉及不涉及不涉及
中文文档官方 README.zh.md仓库内无中文版仓库内无中文版官方 README_zh.md
上手成本中,harness 路径只需端点中中高

差异化在于:vLLM 与 SGLang 管请求跑得快,Slime 管训练跑得通,都不管反馈去哪儿、版本谁保管、上线失败怎么保住在线服务。Reef 把 receipt、record、recipe、artifact 做成显式对象,让「越用越好」成为可回溯的流水线。

客观短板

  • 极年轻:2026-08-31 创建,最新提交已带 #1074,release 停在 v0.1.3,2026-11-01 仍有 refactor!: 破坏性变更(RFC #1070 移除共享 base release)。
  • recipe 不在 wheel 里:reef-infra 只带 SFT,SAO、GEPA、Meta-Harness 都在仓库 recipes/,必须 clone 源码才能跑训练示例。
  • 权重路径门槛高:README 只写「受支持的 GPU 栈」,规格在站外文档;harness 路径不需 GPU,但评估要真实 Agent 跑任务,token 成本转嫁调用方。
  • 贡献者集中:前六位中 BobbyZhouZijian 276 次、Benjamin-eecs 114 次,第三名是 dependabot 49 次;127 个 open issue。
  • 自我进化即风险面:官方要求 harness 树写在 Agent 工作目录外,一次会话能改项目内文件,就可能改变下次会话执行的代码。

适合谁,不适合谁

适合:要把 Agent 从手工调提示词升级到按反馈迭代的团队;已有 vLLM / SGLang 与 Slime、缺版本化交付与评估门禁的平台方;无训练 GPU 但想做 harness 自动优化的独立开发者。

不适合:只想让机器人记住用户偏好的应用层需求,Markdown 记忆库更轻;拿不到稳定反馈信号的场景,缺 score 与 feedback 时它退化为推理代理;要求 LTS 与向后兼容的生产系统。

普通开发者能学到什么

  • receipt 解耦异步反馈:响应头返回 ID,上报时带回,归属关系不进业务表
  • 把学习拆成 Serve、Observe、Grow、Commit 四步、每步一个目录,接口边界比算法难设计
  • 候选与在线版本分离:评估不过不发布,线上总有可用 release,即蓝绿发布
  • 进化对象可以是文本树而非权重:提示词与技能也能版本化、diff、回滚,成本低一个量级
  • 点分类引用做插件注册,wheel 与 cookbook 分离,依赖不全塞进一个包

独立开发者价值

上手成本中等。uv run reef serve 指向小模型即可起服务;独立能跑通的是 harness 路径:cd tutorials/evolve-your-harness && ./run.sh,只需 OpenAI 兼容端点与 Node.js,脚本自动发任务、上报分数、拉回发布的树。

二次开发集中在 recipe 与 evaluation 两层。Apache-2.0 允许商用与闭源再分发,可自写 recipe 接私有反馈(工单闭环率),也可换评估器与选择策略,把 Reef 当自家平台后台。

变现路径三条:给已有推理与训练栈的企业落地学习闭环,按项目 20-80 万;把某垂直场景的 recipe 与评估集做成托管服务,按月 999-4999 元;做 harness 自动优化咨询,按天 5000-20000 元。

合规上 Apache-2.0 附带专利授权,两点要写进合同:客户提示词与反馈会落进 record 存储,私有化与留存条款要明确;harness 树不能放在 Agent 工作目录内,这条官方约束不能省。

中文开发者友好度

  • 文档:README.zh.md 是完整官方中文版,与英文版一一对应;reefinfra.ai 站点以英文为主,仓库内无镜像
  • 社区:Discord、GitHub Discussions 与微信群三个入口,微信群已满员,需加助手再邀请;另设 Roadmap(issue #25)与 Office Hours(issue #818)
  • 响应:最近 5 次提交有 4 次落在 2026-11-02,涵盖 docs、refactor、chore;变更走 RFC 模板,但 127 个 open issue 说明积压仍在
  • 访问:GitHub 与 PyPI 国内可直连,示例模型在 Hugging Face 需自备镜像;reefinfra.ai 与 Discord 国内不稳定,部署参数建议离线留存

总结

Reef 补的不是又一个训练框架,而是训练之外那层没人愿意写的脏活:反馈怎么对上交互、候选怎么评估、版本怎么发布、失败怎么保住在线服务。这四件事躲不掉,差别只在自己写一遍还是接一层。

已有 vLLM / SGLang 与 Slime,或想在无 GPU 前提下让提示词与技能自己迭代,先跑 harness 教程那条最小闭环,再决定要不要接权重训练。0.1 的接口会变,但 receipt、record、recipe、artifact 这套抽象大概率留下来。

GitHub: Human-Agent-Society/reef