Replies: 3 comments 2 replies
|
支持把运行经验作为 Memory 和 Skill 共用的证据来源,并把学习策略放在独立插件里。手动生成候选、通过插件页面审查的原型也适合作为起点。我建议先把下面几处边界说清楚,再推进实现:
这样原型既能检验现有扩展点是否够用,也能回答最关键的问题:同一份经验经由这层机制,是否确实改善了之后的任务。 |
|
方向我支持:把运行证据做成 Memory/Skill 共用的一层、学习策略放独立插件、默认关闭并要求人工审批。我在 main(8a3a309d)上核对到的几处事实,供你改稿时参考:
第一期可以考虑压到一个只读、用户手动触发的"纠正归因视图":对自己的一个会话展示纠正消息、用到的 skill、是否注入过 memory,给出归因并让用户标注同意/不同意。不写任何数据,先检验"一次纠正是否同时牵涉 memory 和 skill"这个核心假设;Skill 闭环等 #5645,Memory 变更契约另起 RFC。 |
RFC: RSIBridge — Unified Evolution Data Layer for Memory & Skills(v0.2 修订版)状态:Draft(根据 @AnnaSuSu 审阅意见修订,见文末修订记录) 1. 动机与缺口(v0.2 修正后的准确陈述)DeerFlow 在「从运行经验中改进系统」这条线上存在三个结构性缺口: 缺口 1:信号源碎片化且互不相通。 缺口 2(修正):记忆的内部修改能力已存在,缺的是反馈闭环与公共受控接口。 DeerMem 已具备事实更新、删除、过期审查与合并( 缺口 3(修正):受控变更接口只覆盖 Skill。 #5645 为 Skill 文档定义了 guarded mutation,但没有对应的记忆公共接口。此缺口按实际接入需要单独开 RFC 讨论,不并入 #5645,也不阻塞本 RFC 的 Skill 侧推进。 2. 核心主张「运行经验」是中立资产:一份带证据链的结构化经验,记忆侧与 Skill 侧以各自视角消费。RSIBridge 提供共享的信号聚合、归因调查、候选管理、验证与治理基础设施;学习策略、补丁内容与发布决策留在插件与人工。 3. 架构(v0.2:三段式管线)flowchart TB
subgraph Host["DeerFlow 宿主"]
TL["task_lifecycle<br/>(第一期唯一信号源)"]
SO["system_model_observer 等其它信号源<br/>(第一期不接入,结构预留)"]
ER["RunEvidenceReader"]
MUT["#5645 mutation API<br/>(合并前仅候选+评估)"]
end
subgraph RSI["RSIBridge"]
T["① Triage 规则初筛<br/>只判定「值得调查」,不产出补丁"]
INV["② Investigation 调查<br/>定位实际使用的 Memory/Skill 版本<br/>收集行为证据<br/>确定正确内容来源(user_explicit 优先)"]
CG["③ Candidate 生成<br/>人工触发,附验证计划"]
VP["验证协议<br/>事实纠正: 来源/范围/冲突核对<br/>策略与 Skill 修改: 同任务同预算新旧对照+回归"]
PG["审批与发布治理"]
end
TL --> T --> INV --> CG --> VP --> PG
ER -.供调查与复核.-> INV
PG -- "Skill: 持久发布" --> MUT
PG -- "Memory: 运行时叠加<br/>(独立 RFC 讨论公共接口)" --> O["hints/overlay"]
SO -.-> T
三段式的关键约束(对应审阅意见 2):
4. 叠加与持久发布:两种消费形态(v0.2 新增,替代原「零残留」表述)原 v0.1 「经验永不改写目标本体、禁用后零残留」的表述与 #5645 的持久发布语义矛盾,撤回。明确二分:
5. 验证协议(v0.2 新增)
6. 状态机(v0.2 修订)stateDiagram-v2
[*] --> triaged: 规则初筛命中
triaged --> investigated: 调查完成(版本/证据/来源)
triaged --> rejected: 调查结论为环境变化等非候选
investigated --> validated: 验证通过(对照/核对)
investigated --> rejected: 验证不通过
validated --> approved: 人工批准
approved --> applied: 发布成功(#5645)
applied --> retired: 撤回(一次新的受控变更)
rejected --> [*]
每条经验携带验证记录(版本、遵循情况、对照结果)与全程审计轨迹。 7. 第一期验收:单个 Skill 闭环(v0.2 收窄)第一期范围压到一个具体闭环,全部人工触发:
边界:信号源第一期只接 第一期的判定标准(回答「这层机制是否值得存在」):同一份经验经由 RSIBridge,在对照条件下是否确实改善了之后的同类任务。 8. 现状M0 原型骨架已就绪( 修订记录
|
Uh oh!
There was an error while loading. Please reload this page.
RFC: RSIBridge — Unified Evolution Data Layer for Memory & Skills / 记忆与技能共享演化数据层
状态:Draft(讨论中)
Related: #5645 #5646 #5539 #3888 #5906 #5333
实现形态:独立可信扩展包(全栈插件 + 扩展槽位),零宿主核心改动
版本:v0.1
背景:当前架构的不足
DeerFlow 的 Harness 定位(v2.x)强调 long-horizon 能力,但在「从运行经验中自我改进」这条线上,现有架构存在四个结构性缺口:
缺口 1:Skill 自演进与记忆演进是两条互不相通的平行线。 #5645 为 Skill 文档定义了受控变更通道(guarded mutation、崩溃恢复、与人工编辑协调),但学习策略外置、尚无认领者;记忆侧 #5906 的
signal_classification只能在批次层面打 reinforcement / correction 标签并影响下一次提取提示词——没有独立经验存储、没有修正回路。同一个用户纠正事件,可能同时证明记忆有错和 Skill 指导有缺陷,但两套系统各看各的,数据互不可见,甚至可能得出矛盾的改进结论。缺口 2:记忆只有「生长」,没有「演化」。 记忆提取的所有决策权在宿主(prescreen / signal_classification 三态由部署配置控制且默认关闭),提取产出只有「关于世界的事实」,不产生「关于提取策略该如何改进的经验」。已存记忆写错了无法被使用反馈回溯修正——没有遗忘与改写机制。用五阶段框架衡量(信号采集→归因→经验生成→审批→固化),记忆系统完成度约 45-50%:信号采集较好,归因只到标签级,审批与元层完全缺失。
缺口 3:受控变更接口只覆盖 Skill,没有 memory mutation API。 #5645 是当前唯一受控变更通道。没有对应记忆接口,记忆自演进只能停留在「提示词注入」级别,永远无法形成修正闭环。
缺口 4:信号源碎片化。
SystemModelCallObserver、TaskLifecycleContributor、循环检测、#5906 的批次标签——宿主其实已经在产生丰富的演化信号原料,但没有统一聚合层,无法以「证据链」的形式被任何改进策略消费。我们要做的方向:RSIBridge(共享演化数据层)
核心主张:「运行经验」是中立资产,不应归属任何单一子系统。同一份结构化经验,记忆侧可用它修正事实与提取策略,Skill 侧可用它修订工作流指导——一份经验、多个消费者视图。
flowchart TB subgraph Host["DeerFlow 宿主(零核心改动)"] SO["system_model_observer"]:::have TL["task_lifecycle"]:::have ER["RunEvidenceReader(#5645)"]:::have MUT["evolution mutation API"]:::gap end subgraph RSI["RSIBridge 扩展包"] SH["SignalHub 统一信号枢纽<br/>采集·去重·证据链"] AE["AttributionEngine 归因引擎<br/>信号→改进目标路由"] XS["ExperienceStore 经验存储<br/>版本化·可回滚·多消费者视图"] PG["PolicyGate 三态门控+人工审批"]:::have end SO & TL & ER --> SH --> AE --> XS --> PG PG -- "memory 视图" --> MEM["记忆修正/提取策略改进"] PG -- "skill 视图" --> SK["经 #5645 受控变更"] PG -- "meta 视图" --> META["归因策略自身的改进数据(L2 预留)"] classDef have stroke:#4a4 classDef gap stroke:#e33,stroke-dasharray: 5 5四个组件一句话定义
user_correction/outcome_failure/loop_detected/extraction_anomaly等),复用宿主全部已有观察面,信号带EvidenceRef(引用 + 内容摘要,防证据漂移),不复制证据本体;memory/skill/meta目标,默认纯规则引擎(零 LLM、低延迟),产出可解释的ProposedChange增量补丁;off → shadow → enforce三态门(语义对齐 feat(memory): add Jev pre-screening and signal classification over a shared TypeSafe client #5906),第一期所有 enforce 动作人工触发,审查界面走 feat(plugins): full-stack plugin APIs and bookmarks #5647/feat(plugins): support manifests and static asset directories #5685 的全栈插件页面能力。信号模型(Signal Model)
归因引擎(AttributionEngine)
归因路由规则(第一期为纯规则引擎 + 可选 LLM 辅助,默认纯规则):
user_correction+ 矛盾指向已存记忆 →memory(事实修正)user_correction+ 矛盾指向 Skill 指导出的行为 →skill(工作流修正)outcome_failure反复 + 同类tool_misuse→skill(技能缺陷)extraction_anomaly聚类上升 →meta(提取策略问题,不修数据修策略)none,仅入统计经验存储(ExperienceStore)
存储约定(对齐 bookmarks 先例):插件自管 SQLite +
table_prefix: "rsibridge_"注册到 alembic 排除清单;经验永不直接改写目标本体,消费侧按需合并,RSIBridge 可整体禁用/回滚零残留。三态门控与治理(PolicyGate)
三态语义对齐 #5906:
shadow记录「若 enforce 会做什么」并对照实际后续运行验证;enforce才真正进入消费者合并。第一期所有 enforce 动作人工触发(审查页面按钮)。关键设计决策
signal_classification已有标签作为信号源之一,避免两套归因打架(见开放问题 1);对接矩阵
system_model_observer()/task_lifecycle()RunEvidenceReaderservice()+table_prefixplugin()页面/操作/工具开放问题(本 RFC 希望与社区讨论的核心)
第一个集成原型(Proposal)
以一个最小可用的 RSIBridge 插件作为 bookmarks 之后的第二个全栈插件集成:manually triggered candidate proposal + 插件自有审查页面(提案、验证结果、证据链可视化),学习策略完全留在插件内。这同时验证:全栈插件扩展点是否足够、#5645 契约是否够用、以及暴露记忆侧缺失的公共接口。
RSI 三层路线图
ProposedChange.generated_by策略版本号 +meta目标域All reactions