learn_edits.py: patterns now have type/key/description/rule fields, confidence auto-computed from occurrences + recency with 30-day decay. --summarize --json outputs aggregated patterns sorted by confidence. learn-edits.md: playbook.md format changed from free text to structured YAML rules with confidence levels. Rules with confidence ≥ 5 become hard constraints in Step 4, < 5 are soft references, < 2 get pruned. SKILL.md Step 4: playbook priority now confidence-gated. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.6 KiB
3.6 KiB
学习人工修改(核心飞轮)
这是 WeWrite 最重要的长期价值。每次用户编辑文章后让系统学习,下一<E4B88B><E4B880><EFBFBD>的初稿就会更接近用户的风<E79A84><E9A38E>,需要的编辑量越来越少。
飞轮效应:初稿需要改 30% → 学习 5 次<><E6ACA1>只需改 15% → 学习 20 次后只需改 5%
触发:用户说"我改了,学习一下"、"学习我的修改"
1. 获取 draft 和 final
- draft:
output/下最新的 .md 文件(按修改时间排序<E68E92><E5BA8F><EFBFBD>ls -t output/*.md | head -1) - final:用户提供修改后的版本。主动引<EFBFBD><EFBFBD>用<EFBFBD><EFBFBD>:"请把你改好的文章全文粘贴给我,或<EFBC8C><E68896>告诉我文件路径。如果你是在微信后台编辑器里改的,可以全选复制后直接粘贴到这里。"
2. 运行 diff 分析
python3 {skill_dir}/scripts/learn_edits.py --draft {draft_path} --final {final_path}
3. 分析并记<E5B9B6><E8AEB0> pattern
读取脚本输<EFBFBD><EFBFBD><EFBFBD>的 diff 数据和 INSTRUCTIONS FOR AGENT,对每个有意义的修改写入 pattern。
每个 pattern 必须包含:
type<EFBFBD><EFBFBD>word_sub/para_delete/para_add/structure/title/tone/expressionkey:短唯一标识(英文,如avoid_jiangzhen、shorter_paragraphs、more_negative_emotion)description:这次修改是什么(如"把'讲真'替换为'坦白说'")rule:可执行的写作指令<EFBFBD><EFBFBD><EFBFBD>必须是祈使句,不是描述句)
key 的复用:如果这次的修改和之前某个 lesson 里的 pattern 是同一种偏好(比如又一次把段落改短了),使用相同的 key。这样 --summarize 时 occurrences 会累加<E7B4AF><E58AA0><EFBFBD>confidence 自动提升。
编辑 lesson YAML 文件中的 patterns 列表,写入分<E585A5><E58886><EFBFBD>结果。
4. Playbook 更新
每积累 5 次 lessons,触发 playbook 更新:
python3 {skill_dir}/scripts/learn_edits.py --summarize --json
读取 JSON 输出,按以下规则更新 {skill_dir}/playbook.md:
playbook.md 格式
playbook.md 是 YAML 格式,每条规则带 confidence 和元数据:
# WeWrite Playbook — 从用户<E794A8><E688B7><EFBFBD>辑中学习的写作规则
# 由 Agent 自动<E887AA><E58AA8><EFBFBD>护,不要手动编辑
# confidence ≥ 5 的规则在 Step 4 写作时作为硬性约束<E7BAA6><E69D9F>行
# confidence < 5 的规则作为软性参考
rules:
- key: "shorter_paragraphs"
type: "expression"
rule: "段落不超过 80 字,长段必须在 3 句内换行"
confidence: 7.0
occurrences: 4
last_seen: "2026-03-28"
- key: "avoid_jiangzhen"
type: "word_sub"
rule: "不要使用'讲真',用'坦白说'代替"
confidence: 5.0
occurrences: 2
last_seen: "2026-03-30"
更新规则
- 新增:summarize 中出<E4B8AD><E587BA>了 playbook 里没有的 key → 直接添加
- 更新:summarize 中的 confidence/occurrences/rule 比 playbook 里的新 → 用新值覆盖
- 保留:playbook 中有但 summarize 中没有的规则 → 保留不动(可能是早期学到的,仍然<E4BB8D><E784B6>效)
- 衰减淘汰:confidence < 2 的规则 → 删除(太旧或不再相关)
5. Step 4 如何使用 playbook
Step 4 写作时读取 playbook.md:
- confidence ≥ 5 的规则:作为硬性约束执行(和 persona 同级)
- confidence 3-5 的规则:作为软性参考(倾向遵循但不强制)
- confidence < 3 的规则:忽略(可能已过时)
这确保:
- 用户反复确认的偏好(高 confidence)被严格执行
- 只出现过一次的偏好(低 confidence)不<EFBC89><E4B88D>过度影响
- 用户风格变化时,旧规则自然衰减退出