ASTER CODE / 设计原理
RSI 与 Meta Harness
候选执行策略的替换、评估、采纳和回滚。
RSI 的改进对象
RSI 是 Recursive Self-Improvement,即递归自我改进。Aster 讨论执行程序的递归改进。智能体提出工作方式的修改,宿主评估并采纳有依据的候选,再用新方式组织后续改进。修改对象包括提示、上下文策略、工具使用程序和调度组件。
这类改进发生在模型外部的执行程序上,不涉及模型权重训练,也不证明能力可以无限增长。STOP 研究改进程序对自身代码的修改。DGM 生成并评估经过自修改的编码智能体。STOP 论文、DGM 论文。
普通任务与改进任务
普通编码任务的目标是改好一个项目。改进任务还要修改“怎样完成任务”的执行程序,然后证明新方法在相同约束下更好。
假设候选 B 提议“先检索调用方再编辑”,基线 A 直接开始修改。要比较二者,需要固定任务集合、模型设置、预算和验收条件,并分别运行。某一次任务碰巧通过,或模型自称“现在更擅长了”,都不足以决定替换基线。
候选管理、实验调度、评分、采纳与回滚由宿主实现。Meta Harness 提供可组合和替换的执行过程,以及它与原有会话的接入边界。
Meta Harness 在改进实验中的职责
| 实验需求 | Meta Harness / Core 的职责 | 宿主的职责 |
|---|---|---|
| 描述一个候选策略 | 组合配方、提示槽、host 组件或完整组件树 | 保存候选内容、版本与准确来源 |
| 替换执行方式 | 在原有会话执行路径中装配组件 | 构建、检查并明确选择要接纳的实现 |
| 使用相同约束运行 | 工具权限、调用限制、工作策略和验证入口 | 固定实验配置、数据集与资源预算 |
| 核对实际结果 | 事实日志、修改回执、验证报告和准确 Run 状态 | 定义分数,比较基线,保留失败证据 |
| 停止失败候选 | 原运行的取消与资源收尾 | 等待退出,核实外部操作,恢复已知基线 |
Aster 将执行过程作为实验对象。Meta Harness 提供组合和替换执行策略的边界。宿主负责保存结果、比较候选并决定采纳。
候选可修改的范围
先选择容易比较和回退的修改,例如提示槽、检索资料、工具调用程序、调用预算或默认组件组合。需要更大改变时,再评估宿主组件或 Assembler。
原生 Rust 实现必须经过宿主的构建、测试和接纳流程。host:<id> 只查宿主已有注册表,模型不能用这个字符串下载或装入任意代码。候选需要编译执行时,还要给它独立的工作区和受控运行环境。
验证要求、权限决定、评估集合及采纳规则也需要版本与所有者。候选可以提出修改建议,是否采用由宿主记录。否则“删除一项失败检查”就可能被误算成能力提高。
版本与摘要的身份
| 标识 | 含义 | 用途 |
|---|---|---|
| 候选版本 | 本次测试选择了哪份配方、代码和模型设置 | 由宿主保存,实验结果关联同一份内容 |
| 动作 key 与 Run ID | 哪次运行中的哪个动作已经执行 | 用于恢复和控制,换 key 前检查旧日志 |
| effect_digest | 本次任务修改的工作区内容摘要 | 让验证报告对应当前修改,不代替候选版本 |
| 文档版本 | 某个产品版本的接口和用法说明 | 便于接入者查阅,不是某次实验的执行身份 |
一次 Run 验证通过,只能支持它检查过的任务。证明候选更好,还需要宿主比较一组任务的表现。除成功率外,还要比较工具调用量、使用量、耗时、失败模式和收尾结果。实验前应明确权衡规则。
改进实验步骤
- 保存基线配置、模型设置和实现来源,固定训练任务与独立留出任务。
- 提出范围明确的候选,例如只改变“编辑前检查调用方”的步骤。
- 检查候选差异。原生代码先通过小型无网络测试,再决定是否装入实验宿主。
- 为基线与候选分别创建隔离工作区和新会话,固定任务、权限、预算与验证要求。
- 等待原运行和资源收尾,保存回执、报告、停止原因及原始结果。先核实未知外部操作。
- 按预定规则比较结果。必要时重复试验,并记录采纳或拒绝理由。
- 采纳后保留可恢复的基线。下一轮使用新的候选身份,单独处理旧会话的动作 key 和恢复记录。
宿主负责组织实验流程。调用 with_harness 不会启动自动实验服务。长期目标接口可以帮助有界推进工作,但候选搜索和实验评分仍由应用实现。
评估标准的保护
候选可能改变评估自身的标准,例如放宽测试、扩大权限或少报失败。候选也可能把取消和清理异常排除在统计之外。每轮必须固定评估依据并保存可回查的结果。
增加记忆、延长任务计划或重复同一段提示,都需要各自的对照实验。接入 Meta Harness 只建立运行条件,效果仍需测量。
先用终端教程的 Harness 章节创建一个配方,再用验证与收尾章节建立失败场景。确认实验流程可核对后,再扩大候选的修改范围。