• ## 前置:存量记忆的搬家(19 文件 / 269 行)
    
    写入侧上一轮改了,但**存量不会自己搬家**。实查现有 `## 关键事实` 里
    **没有一条真事实** —— 全是重复心跳行、工具调用 id、和以 `...` 开头的半句。
    而 memory.md 会被注入**每一轮**提示词,这些东西一直在冒充事实。
    
    scripts/migrate-memory-raw-section.js 把它们搬进「原始记录(未提炼)」。
    先 dry-run 再 --apply,改前逐个 .bak(这些是 gitignore 的运行态,没有 git 历史兜底)。
    
    判据刻意窄:只搬 `- [YYYY-MM-DD] … → …` 这一种形状(旧自动追加的唯一形状)。
    **搬错比留错更坏** —— 留下最多多一条噪声,搬错是把人写的东西降级成日志。
    
    ## 真跑:innovator-evolver,40 条原料
    
        { "distilled": 4, "accepted": 4, "rejected": [] }   耗时 114s
    
    四条产出都做到了抽象:yt-dlp / Invidious → 「本地下载工具 → 备用镜像源」;
    scorer.js / SKILL_v1.md / system/templates/... 一个都没出现。
    
    **顺着 sources 抽查过**(可追溯的第一次实际用途):4 条引用全部对得上原料。
    「按关键词覆盖率打分会被刷到虚高分」那条引了 #21/#22/#27/#28,而 #27 原文正是
    「从零重写,采用 expected_output 逐 case rubric + dimCeil 上限机制,杜绝 coverage-based」。
    **它是跨 4 条记录归纳出来的**,不是逐条改写 —— 正是「一次调用吃掉全部原料」
    那个选择要换来的东西。
    
    ## 闸门单独验过:零拒绝 ≠ 闸门有效
    
    真跑里 4 条全过,说明去敏闸门**一次都没触发**。所以单独喂了三条给 dream-screener 真跑:
    · 含公司名+域名+绝对路径 → false,理由点名「域名 lemonai.ai 和绝对路径 /Users/…」
    · 心跳日志原文摘录 → false,理由点名「原文搬运」「工具调用 ID 可关联到具体运行实例」
    · 干净的抽象经验 → true
    
    三条判据都按 agent.md 写的那样生效,**且拒绝理由都点到了具体是哪几个字** ——
    那是 agent.md 里明确要求的。
    
    ## 空转保护实跑
    
    第二次调用(原料没变):{"skipped":"no-new-material"},一次 agent 调用都没起。
    
    ## 还没做的
    
    定时挂载(决策 C)、写定义文件(SKILL.md / soul.md / agent.md)、
    决策 D(质量怎么评 —— §5.5 那次抽查是**人工**顺着 sources 回查的,不是自动的)。
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    yibo authored
     
    Browse File »