Skip to content

bug: 兴趣图谱进化链路断裂——#176 校验器全量拒绝游荡回灌 + 反思稳定零产出,图谱冻结在 09-08 #422

Closed

Description

@Zewang0217

现象

admin 租户(ff225058)兴趣图谱自 2026-09-08 12:20 起再无任何持久化:

  • interests.json 停在 09-04;interest-history.jsonl 最后快照 09-08 12:20
  • 此后游荡 / 反思 / 日记每天照常运行(worker 日志、usage 账本均在)

图谱的两条进化路径在同一发布窗口(#236,2026-09-08 11:27 合并)先后断裂。

根因 A1:游荡回灌被 #176 话题校验器 100% 拒绝(静默)

根因 A2:反思稳定产出 0 洞察

  • 反思每次真实执行(10-14 四次 tick,LLM 调用 15–17s),但 insightsProduced=0 / discardedByValidation=0 / discardedByGrounding=0——LLM 每次主动返回空数组(system prompt 明确允许「素材不够→返回空数组」)
  • 洞察为空 → updateInterestGraph 不可达 → graph.persist() 永不执行 → 无快照
  • 素材侧:observation(observe_user 工具写)自 09-07 起断流,5 周仅 2 条;memory 中 self:reflection 洞察 0 条
  • 待深挖:① 反思为何稳定空产出(素材窗口 / 构成、prompt 的空数组分支);② observe_user 为何不再被模型调用

影响(主轴级)

  • 兴趣不进化:游荡 focusTopics 整个 10 月仍在用 9 月兴趣(query 里还在搜 "September 2026")
  • 日记表情包步骤被「当天无兴趣快照」gate 饿死(另见表情包触发机制改造票)
  • 推送选题相关性随图谱陈旧持续退化

验收标准

  • 游荡回灌对搜索 query 不再全量静默拒绝(归一化 / 放宽准入),拒绝时留 warn 或计数
  • 反思恢复非零洞察产出(生产观察 ≥1 条/天量级),图谱恢复 persist、interest-history.jsonl 出现新快照
  • observe_user 断流根因有结论并处置
  • 回归:pnpm --filter agent test / lint / typecheck

Activity

  1. Zewang0217 commented on Oct 14, 2026

    @Zewang0217
    OwnerAuthor

    深挖完成——根因链完整闭环(2026-10-14)

    容器内探针(同一素材 + 同一 prompt + 生产模型 deepseek-v4-flash)复现结果 + 生产 usage 实锤:

    A2 反思零产出的确切机制(三层叠加)

    1. 输出截断(直接死因):maxOutputTokens: 3000 对推理模型不够——reasoning tokens 计入同一上限(实测单次 reasoning ~1.7k + 正文 ~1.5k)。生产 10-14 四次反思的 outputTokens 全部恰好 = 3000,JSON 全部截断、JSON.parse 全部失败,被当「零洞察」静默吞掉(0/0/0 签名与 parse-fail 分支完全吻合)。
    2. 字段名错位(隐藏地雷):探针显示模型稳定产出 4+ 条洞察,但字段名是 name/interest/reason,Zod schema 要 topic/reasoning——system prompt 从未规定字段名。即使不截断也会全量丢弃。
    3. 观测黑洞(为什么一个月没人发现):run-one-wander 不初始化文件 logger,consola 的 stdout/stderr 是 nullStream——「反思 LLM 输出不是合法 JSON」的 error 从未落盘。

    A1 游荡回灌(已在 issue 正文)

    补充:record_knowledge 的 title(模型自己概括的干净话题,如「蜜蜂螫针是一台双活塞微型泵」)天然通过 #176 准入——是关掉长 query/域名污染后一直在缺的干净喂料源。

    observe_user 断流定性

    非代码 bug:工具已注册(9/9)、prompt 引导存在(react.ts:333 + 工具描述),但其「使用时机」全部锚定「主人互动之后」——worker 模式下主人反馈素材本身稀疏(当天 read_feedback 仅 2 次),模型自然少调。反思素材侧 knowledge 是新鲜且足够的(探针证明可产出洞察),故本票不强行改 prompt,观察修复后的反思产出再定。

    修复

    → PR #425:输出上限 8000 + prompt 写死精确 JSON 结构 + 注入已有兴趣清单 + record_knowledge 标题喂料 + 拒绝留痕 + worker 文件日志。

  2. added
    待验收实现/修复已合入或已部署,待人工验收后关闭
    and removed on Oct 14, 2026
  3. moved this from Backlog to Done in cyber-strayon Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working待验收实现/修复已合入或已部署,待人工验收后关闭高优先级

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions