Reef 是完全開源的:https://github.com/Human-Agent-Society/reef
1. 在所有的「RSI」熱潮成真之前
在今日圍繞 RSI 的興奮情緒完全實現之前,我們希望開源 Reef,這是一個我們為了解決相同更廣泛問題而一直在建設的基礎設施:讓 Agent(工具框架 + 模型)能夠從其經驗中持續進化。
目標是讓開源社群更容易實驗持續自我改進,並能方便地取得用於此目的的生產級基礎設施。我們在此使用更廣泛且更實用的框架 持續自我改進,而 RSI 則代表了同一想法中更完全遞迴的形式。¹
2. 為什麼持續自我改進需要新的基礎設施?

GIF
大多數 LLM 基礎設施假設了一個相對簡單的生命週期。我們訓練一個模型、評估它、部署它,然後用它進行推理。對於持續自我改進的 Agent,我們認為這個設定背後的兩個假設開始失效。
首先,推理不再是管線的終點。Agent 在工作時會產生有用的經驗,包括軌跡、執行結果、使用者回饋以及其他可以驅動未來改進的信號。推理時發生的事情,不再只是我們簡單提供服務然後丟棄的東西。它成為了學習過程本身的一部分。
其次,模型不再是唯一會進化的東西。一個 Agent 不僅僅是一個模型,而持續自我改進也不應僅限於模型權重。提示詞、記憶、技能、工具和編排邏輯都可能從經驗中改進。更強的模型擴展了 Agent 的能力,而更好的工具框架則有助於更有效地激發這些能力,並在複雜任務中更可靠地運用它們。
這些變化共同將曾經幾乎是順序執行的管線,轉變為一個持續的進化循環。Agent 進行互動、產生經驗、改進自身的不同部分、評估這些改變是否值得保留,然後以系統的新版本回歸服務。
這也是為什麼我們不將 Reef 僅僅視為訓練基礎設施。訓練只是循環的一部分。我們認為,用於持續自我改進的基礎設施必須從即時推理開始,並支援整個 Agent 的進化。

GIF
3. 這樣的基礎設施需要什麼,Reef 又是如何實現的?

Reef 架構
用於持續自我改進的基礎設施需要端到端地掌握三件事:經驗、Agent 和更新。這意味著 (1) 從即時流量中學習,(2) 同時更新模型和工具框架,以及 (3) 妥善評估、版本控制和管理更新的發布方式。
掌握經驗——學習必須建立在即時服務之上
推理和訓練在歷史上一直是分離的。一些 RL 基礎設施(例如 Slime、veRL)整合了用於生成資料的推理引擎,但這些系統是為模型訓練而非模型服務而設計的。我們認為,一個持續自我改進的基礎設施首先應該是一個推理基礎設施,並圍繞即時推理建立其訓練能力:系統服務真實應用程式,收集測試時的經驗,並讓學習配方持續消費這些經驗。 這個信念導致了對許多設計選擇的重新思考,包括訓練信號生成和訓練樣本選擇。
推理是 Reef 的原生功能。Reef 暴露標準的推理端點,使其易於整合到現有應用程式中,並將它們轉變為自我進化的系統。
1# client = xxx # 初始化 httpx client 連接到 Reef 的服務端點23# 通過 Reef 進行的標準推理呼叫,Open-AI 格式4response = client.post(5 "/v1/chat/completions",6 json={"model": xxx, "messages": xxx},7)89# Reef 儲存的推理記錄的參考10receipt = response.headers["x-reef-agent-record-id"]
應用程式也可以透過以下方式報告與特定推理呼叫相關的獎勵、評估者回饋或其他信號:
1# 將回饋附加到對應的推理記錄2client.post(3 "/reef/report",4 json={"feedback": "錯誤答案", "references": [receipt]},5)
與現有在其生命週期中保持靜態的推理引擎不同,Reef 提供有狀態推理:Reef 將推理軌跡和回饋儲存為結構化的經驗流,處理諸如離策略過時、會話合併和去重等問題。學習配方定義了如何處理這個流、使用哪種學習演算法,以及何時評估和部署更新。這讓不同的應用程式可以在相同的基礎設施之上,使用自己的學習策略進行進化。
掌握整個 Agent——模型和工具框架都透過有狀態推理進行進化
一個能夠提供端到端結果的 AI Agent 不僅包含一個模型,還包含一個工具框架。模型提供了解決任務所需的基本能力,而工具框架則透過管理工具、上下文、記憶、回饋和編排,實現跨複雜、長程軌跡的可靠執行。這兩者緊密耦合:工具框架決定了模型的能力如何被激發、落地和運用,而模型則決定了工具框架可以可靠支援哪些執行形式。因此,任何一方的進步都可能改變另一方的最佳設計。一個持續自我改進的基礎設施應該支援整個 Agent 技術棧的共同進化,不僅包括模型權重,還包括提示詞、記憶、技能、工具和編排邏輯。
Reef 支援對模型和工具框架的更新。
在工具框架方面,Reef 使用 Cordis 作為「訓練後端」。一個工具框架進化配方通常會分析 Agent 的軌跡和回饋,然後提出對工具框架的編輯。這個過程完全在 Reef 內部進行,每個進化後的工具框架版本都會作為可安裝的更新發布給使用者(假設 Reef 在 localhost:8900 上提供服務):
1curl -fsS -H "Authorization: Bearer $REEF_TOKEN" \2 'http://localhost:8900/reef/harness/install?adapter=pi' | bash
上面的指令安裝了一個 Reef 包裝的 Pi 工具框架,方式與典型的編碼 Agent 非常相似。該工具框架被配置為使用 Reef 的有狀態推理端點,因此其推理流量會流經 Reef。當使用者工作時,Cordis 會根據配置的工具框架進化配方來進化工具框架,新版本會透過 Reef 提供。下次使用者打開工具框架時,他們可能會看到:

在模型方面,學習配方消費 Reef 的記錄來更新模型權重。訓練使用分散式訓練後端與即時服務非同步運行,該後端目前改編自 Slime,並產生候選權重更新,例如檢查點或 LoRA 適配器。
一旦候選者通過評估並獲准部署,Reef 就會將其發布為該場景模型工件的新版本,並使用基於 NCCL 的權重同步熱更新服務引擎,無需重啟服務。
掌握更新——進化後的發布版本會經過評估和版本控制
一個持續進化的 Agent 可能會面臨服務品質下降的問題,特別是當進化不能保證帶來效能提升時。因此,每個進化後的候選者在發布前都應經過評估。Reef 控制進化後的候選者是否允許取代目前為場景服務的工件。如果候選者被拒絕,服務保持不變。否則,Reef 會將其發布為一個新的、可審計的版本。
任何 Reef 可以進化的東西——例如模型檢查點、LoRA 適配器、工具框架樹或路由策略——都被表示為由版本控制器管理的工件。Reef 採用 Git LFS 來管理工件,特別是那些佔用大量磁碟空間的工件,例如模型權重。發布路徑如下:

每個場景都有一個僅能追加的發布鏈。Reef 使用比較並交換來推進場景的發布頭,因此過時的發布者無法覆蓋較新的發布。發布管線使 Reef 能夠有效地追蹤持續的版本變更和發布過程。
4. Reef 中的持續自我改進方法
上述基礎設施為持續自我改進提供了通用的抽象層。Agent 實際改進的邏輯是透過模組化的學習配方來實現的。
我們已經看到越來越多的方法,用於將測試時產生的信號轉化為更好的 Agent:線上強化學習、測試時訓練、技能進化、工具框架進化、自我對弈等等。儘管它們的名稱和機制不同,但它們共享相同的基本模式:測試時產生的信號被轉化為對系統的更新,而該系統會產生下一次互動。
這些配方主要在三個維度上有所不同:
學習信號: 什麼形式的信號驅動改進,它來自哪裡?
經驗獲取: 學習經驗是如何產生的?是由 Agent 主動尋求的,還是從外部任務或互動中被動產生的?
進化目標: 實際改變的是什麼:模型、工具框架,還是兩者?

Reef 已支援或即將支援的配方
Reef 的設計使得這些方法基本上可以透過在相同基礎設施之上的不同學習配方來表達。使用一個配方很簡單:選擇一個,並在啟動 Reef 服務時進行配置。
1# serve.yaml2reef:3 recipe: recipes.sao.recipe:SAORecipe # 插入一個進化配方4 batch_size: 1 # 配方特定的配置5 max_staleness: 18
然後使用該配置啟動 Reef:
1reef serve -c recipes/sao/examples/sao/serve.yaml
下面,我們展示兩個例子,OpenClaw-RL 和 TTT-Discover,它們遵循非常不同的進化策略,但都可以在 Reef 中實現。

GIF
該視覺化展示了 OpenClaw-RL 在 Reef 中的整合。使用者與一個 Agent 互動,該 Agent 的模型由 Reef 非同步地持續進化,而不會中斷使用者。隨著越來越多的回合累積,Agent 逐漸學會正確解讀使用者的偏好,並給出令人滿意的答案。

GIF
該視覺化展示了 TTT 如何迭代地改進 Packing 32 解決方案。隨著最佳化的進行,越來越有效的解決方案被發現並保留,從而導致包裝分數逐步提高。
5. 結論
Reef 是我們將持續自我改進這個廣泛想法轉化為具體系統問題的一次嘗試。透過開源 Reef,我們希望讓這個問題更容易被研究,並為社群提供一個實用的基礎,用於構建不僅僅提供服務,而是能從經驗中持續學習和進化的 Agent。
我們邀請您試用 Reef,建立您自己的學習配方,並將其與您的 Agent 整合。在 https://github.com/Human-Agent-Society/reef 探索程式碼、文件和範例配方。如果您覺得 Reef 有用,我們將不勝感激您在儲存庫上給我們一顆星。如果您想與我們一起構建,或更廣泛地討論持續自我改進,我們非常歡迎您加入我們的 Discord:https://discord.gg/5y8e5f937k。
- 我們使用持續自我改進作為比 RSI 更廣泛且更實用的框架。它涵蓋了那些反覆從經驗中改進的系統,而不需要 RSI 通常所關聯的完全封閉循環——即 AI 本身參與構建和改進產生其下一個版本的系統。Reef 是為這個更廣泛的問題而設計的,同時也為在其之上出現更遞迴形式的自我改進留下了空間。
不斷增長的貢獻者名單(按字母順序排列): Chai Wenhao (@wenhaocha1), Ding Shuangrui (@ShuangruiDing), He Hao, He Haoze, Jiang Chonhe (@JiangChonghe), Jiang Nan (@nanjiangwill), Jiang Xuan, Li Xiaochen (@jacobli99), Liang Paul (@pliang279), Liu Bo (@Benjamin_eecs), Long Boyuan, Mang Qiuyang (@MangQiuyang), Qi Zhenting (@ZhentingQi), Qu Ao (@ao_qu18465), Qu Mingruo, Wang Zhaokai, Yan Xuezhi, Yu Hanfei (@yhfchitanda), Yu Haofei (@haofeiyu44), Yu Simon (@simon_ycl), Zheng Han (@hanzheng_7), Zhou Kaichen (@alex_kai2020), Zhou Zijian (@BobbyZhouZijian), Zhu Jiacheng (@JiachengZhu_ML), Zhuang Dingyi





