原始文档的离线阅读副本 · 原始文件

RSIAgent 工程分析与 RSI Memory 设计更新

事实截止:2026-10-14。本文是本地源码审查与选定测试的分析,不是完整安全审计、 官方测评复现或对论文结果的独立审计。

1. 来源与复验范围

使用现有 STATE-Bench Python 环境,不安装新依赖、不调用模型、不启动 VM:

cd references/RSIAgent
/Users/tjzhong/.qbot-dsh/tmp/state-bench/STATE-Bench/.venv/bin/python -m pytest -q \
  tests/test_self_evolving_loop.py tests/test_self_evolving_charters.py \
  tests/test_target_isolation.py tests/test_memory_retrieval_lifecycle.py
/Users/tjzhong/.qbot-dsh/tmp/state-bench/STATE-Bench/.venv/bin/python -m pytest -q \
  tests/test_recursive_improvement_framework.py tests/test_phase2_stop_policy.py \
  tests/test_verifier_isolation.py tests/test_phase1_wave_recovery.py \
  tests/test_unified_evolution.py tests/test_no_leakage.py

结果:第一批 74 通过;第二批 109 通过、4 失败,共 183 通过、4 失败。 失败均为 test_model_stdout_truncation_cannot_erase_trusted_readiness 参数实例: 本机 macOS 无 /proc/self/fd/1,生成日志为 chown: /proc/self/fd/1: No such file or directory,实际退出码 125。 这暴露了选定测试的 Linux 环境依赖;不能据此判断 Linux 隔离有缺陷, 也不能宣称完整测试通过。没有在 Linux 复验,没有运行官方 benchmark。

2. 真正值得参考的架构

模型权重固定,改进载体是跨任务持续存在的经验文件和练习过程。 它不是简单的“会话总结 + 向量召回”。

角色 / 阶段 实际职责 对我们的启示
Actor 执行任务,在可信 PASS/FAIL 后提炼并协调记忆 经验需要修订与消歧,不只追加
Verifier 检查任务产物,不依赖 Actor 的私有记忆和对话历史 执行者不能给自己的任务结果背书
Curriculum 选择下一项练习、判断继续或停止 从被动等待失败转向主动补足能力缺口
Host 隔离、边界审计、日志、提交与恢复 控制面必须在模型外维护不变量
Phase 1 / Broad 并行探索,共同父记忆,波次屏障后有序合并 并行学习必须处理冲突与部分提交
Phase 2 / Deep 目标尝试、学习、相关练习、新 Actor 重测 练习应针对可证伪的能力假设
Phase 3 冻结记忆,禁写回与课程学习,封闭正式评分 确认评测不再为学习提供反馈

主要实现入口: core/self_evolving_loop.py、explore/unified_evolution.py、 explore/target_learning.py、explore/commit.py、explore/phase1_wave.py、 explore/charter.py、benchmarks/osworld/pipeline.py。

记忆使用文件清单和按需搜索/读取,也会在重复低信息动作、验证失败、 上下文折叠时提醒检索。是否优于我们的 prompt 注入需要实验,不能直接推定。 成功与失败都允许学习;READY/STALLED 是课程状态,不是正确性评分。 验证不确定或基础设施错误不计为 PASS。

Verifier 的私有视图、回滚镜像与挂载隔离值得参考,但本地 VM 回滚并不撤销 远程共享服务上的副作用。我们仍须禁止对生产连接器重复执行不可逆动作。

3. 不能照搬的证据结论

该仓库区分 held-out generalization 与 target-conditioned adaptation; 公开示例采用后者。对同一目标练习后重测不等于未见任务泛化。

根据 docs/PAPER.md 的自述,OSWorld 部分得分从 71.97 到 78.98, ALE 从 83.75 到 84.82。但 OSWorld 82 题中的 RSI 行只有 41 个 RSI 结果, 另 41 题保留基线;ALE 67 题中有 19 个 RSI 结果、48 个保留基线。 记录包含选定重试、checkpoint、预算或协议差异与本地重评分。 四题阶段消融也选择了已有提升的探索性子集。 这些是作者报告的聚合结果,不是同协议配对重复实验的独立审计。

更关键的是 explore/target_learning.py::_promote_learning 的提交路径: 可信任务结果 → distillation → reconciliation → diagnosis → memory audit → journal → install。这里审计任务边界与记忆合法性, 没有在每次安装前执行无记忆/候选记忆的独立收益配对门禁。 不能把该函数名称中的 promote 等同于我们定义的生产收益准入。

我们必须分清三件事:

  1. 任务正确性:该次任务是否真的完成。
  2. 经验来源与条件:建议是否来自可信轨迹,条件、排除范围是否清楚。
  3. 经验正向效果:在冻结的新任务上,它相对对照救回了什么、损失了什么。

前两层不能替代第三层;即便练习题全通过,生产记忆仍可保持未发布。 也没有足够证据把上游课程自主选择等同于运行时自动重写 Host 算法。

4. 对我们设计的调整

双轨学习,而不是只等线上失败

保留真实用户任务的被动影子采集,新增主动、可回滚沙箱练习。 线上轨迹提出能力缺口;练习验证失败机制、尝试修订并生成反例。 不在用户工作区后台改代码,不导入私有日常会话。

最小 CurriculumController

先用确定性策略验证闭环,再增加模型课程提议。 动作可为 ABSTAIN / PROPOSE / PRACTICE / RECONCILE / REQUEST_EVALUATION。 Controller 可以安排练习,不能修改评分、绕过门禁或开启未经授权的工具。 执行沿用原生 DSH Session、默认 system prompt 和模型参数,不另建直接 LLM 链路。 Host 控制每日费用、并发、尝试次数、停止与取消,不让模型无限决定“再练一次”。

三层验证与三层记忆

OutcomeVerifier 判断任务;ExperienceGrounding 校验来源与适用边界; BenefitEvaluator 判断冻结候选的独立配对收益。 学习层可以使用未证实假设,不表示生产可以使用它。

明确 draft -> practiceSnapshot -> confirmedRelease: 草稿和练习版本不可变、可追溯;线上召回只读取已确认的 release。 修订用 supersedes / contradicts 与版本 lineage 表达, 不覆盖原始证据,也不让 Actor 随意改生产目录。

有选择地学习成功

当前 0.1.10 的成功安全轨迹直接跳过抽取;这是现状,不在本轮悄悄改动。 目标应允许从信息量高的成功中学习,如可信失败后的有效修复或可复现高质量路径。 是否触发由可审计信号、预算和收益决定,不对每条成功都调用学习模型。

把召回策略纳入评测

保留无记忆、直接注入、实际召回诊断;另比较关键词、语义与 Agent 按需读取。 按需读取仅暴露确认版本的只读视图,保留读取内容、版本和请求级 receipt。 不允许标为“无记忆”的 Agent 通过文件或工具拿到经验。 触发式检索是否有效需要对照,不能凭检索发生次数判断收益。

自动化先解决边界与恢复

区分 unknown、verifier-unresolved、stalled、budget-exhausted、 infra-error、quarantined,不把基础设施错误写成失败经验。 确定可恢复的任务边界、独占锁与 checkpoint,记录学习和验证全成本。 沙箱练习、数据保留、生产灰度与自动回滚是目标模块,尚未实现。

5. 落地顺序

  1. 选一个可复现任务域,实现任务级边界、可信 OutcomeVerifier 和可回滚沙箱。
  2. 通过原生 DSH owned Session 跑最小课程:一次假设、有限练习、可定位验证、 修订或停止;未知不得制造候选,所有来源和费用可审计。
  3. 比较被动学习与主动练习,在同预算下做 A/B/C/D 和静态提示等简单替代对照。
  4. 冻结候选、检索与环境;独立留出确认,禁止课程访问确认题或评分反馈。
  5. 证据达标后机器准入、限定发布、灰度、退化回滚;人不逐条批准。
  6. 再扩展并行波次、选择性成功学习、按需检索与学习策略自演进。

第一轮不复刻 Python Harness、不引入整套 QEMU/Windows 部署、 不允许自由写生产 memory,不照抄上游大输出/长 watchdog 参数。 当前交付仍是 DSH 插件 0.1.10;本轮交付是源码分析与目标设计更新, 不改变安装包、不新增正向效果声明。