Skip to content

feat: 每章核心问题驱动写作(55号方案) #82

@lailoo

Description

@lailoo

每章核心问题驱动写作方案

55号方案 | 状态:✅ 已实现


核心理念

问题:Writer 在"展开要点",而不是"回答问题"

当前 Planner 为每个章节输出 content_outline(要点列表),Writer 的写作模式是"把要点展开"。结果是三段独立的内容堆砌在一起,缺乏连贯叙述。

解决方案:为每个章节设置核心问题

每个章节增加一个 core_question 字段,Writer 的任务从"展开要点"变为"回答问题"。要点变成了回答问题的论据和素材,而不是需要逐个展开的列表。

core_question 把 Writer 从"要点展开器"变成"问题回答者",content_outline 从"需要展开的列表"变成"回答问题的论据"。


设计目标

目标 说明
写作有方向 Writer 知道这个章节要"回答什么",而不只是"写什么"
内容连贯 围绕一个问题组织论述,避免要点堆砌
章节间递进 每章的 core_question 形成逻辑链,读者跟着问题走
零额外成本 在 Planner 同一次 LLM 调用中生成

core_question 设计规范

什么是好的 core_question

特征 好的 坏的
具体 "没有 Skill 的开发者日常有多痛苦?" "为什么需要 Skill?"
可回答 "具体怎么创建一个 Skill 文件?" "Skill 的各种用法"
有读者视角 "读者看完这节能自己动手创建 Skill 吗?" "介绍 Skill 的创建方法"
暗示写作方向 "LangGraph 和 AutoGen 在哪些维度上有本质区别?" "对比 LangGraph 和 AutoGen"

narrative_role → core_question 推荐模板

narrative_role 推荐的 core_question 模板
hook "读者为什么应该关心这个话题?这和他的日常有什么关系?"
what "X 到底是什么?它和 Y 有什么本质区别?"
why "没有 X 会怎样?有了 X 能改善多少?有数据吗?"
how "具体怎么做?最少需要哪些步骤?读者能跟着做吗?"
compare "A 和 B 在哪些维度上有差异?什么场景该选哪个?"
deep_dive "底层到底是怎么工作的?为什么要这样设计而不是那样?"
verify "怎么证明这个方案有效?有没有测试数据或真实案例?"
summary "读者读完整篇文章后,应该记住哪 3 个核心要点?"

core_question 与 content_outline 的关系

core_question = 写作目标(回答什么)
content_outline = 写作素材(用什么回答)

类比:
  core_question = 考试题目
  content_outline = 答题要点
  Writer = 考生(用要点组织答案,而不是逐个抄要点)

改动文件

文件 改动类型 说明
prompts/blog/planner.j2 修改 新增 core_question 设计指导和自检清单
agents/planner.py 修改 大纲输出新增 core_question 字段
prompts/blog/writer.j2 修改 新增 core_question 展示和写作目标指导
agents/writer.py 修改 从大纲中读取 core_question,传递给 writer.j2
schemas/state.py 修改 大纲 JSON schema 新增 core_question 字段

效果预期

指标 改造前 改造后
写作方向感 Writer 只知道"写什么" Writer 知道"回答什么"
内容连贯性 要点堆砌,像文档 围绕问题论述,像文章
章节递进 各章节独立 问题之间有逻辑递进
额外耗时 0 ~0(同一次调用中生成)

兼容性设计

  • planner.py 解析大纲时 section.setdefault('core_question', '')
  • writer.j2 中用 {% if core_question %} 包裹,无 core_question 时行为与改造前一致
  • 建议与 54 号方案(素材预分配)合并实现

关联方案

  • 54号方案(素材预分配):协同 — core_question 是写作目标,assigned_materials 是写作证据
  • Step 1.1(叙事流设计):上游 — 叙事模式决定 narrative_role,narrative_role 推荐 core_question 模板
  • 52号方案(搜索结果提炼):间接 — 缺口分析可能影响 core_question 的设计

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions