-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
每章核心问题驱动写作方案
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 的设计
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels