每章核心问题驱动写作方案
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 的设计
每章核心问题驱动写作方案
核心理念
问题:Writer 在"展开要点",而不是"回答问题"
当前 Planner 为每个章节输出
content_outline(要点列表),Writer 的写作模式是"把要点展开"。结果是三段独立的内容堆砌在一起,缺乏连贯叙述。解决方案:为每个章节设置核心问题
每个章节增加一个
core_question字段,Writer 的任务从"展开要点"变为"回答问题"。要点变成了回答问题的论据和素材,而不是需要逐个展开的列表。设计目标
core_question 设计规范
什么是好的 core_question
narrative_role → core_question 推荐模板
core_question 与 content_outline 的关系
改动文件
prompts/blog/planner.j2agents/planner.pyprompts/blog/writer.j2agents/writer.pyschemas/state.py效果预期
兼容性设计
planner.py解析大纲时section.setdefault('core_question', '')writer.j2中用{% if core_question %}包裹,无 core_question 时行为与改造前一致关联方案