05Bread Multi-Agent · 第 5 章
总进度 32 / 33

把研究、提纲、写作和编辑接起来

写一篇博客时,可以把准备素材、列提纲、写初稿和编辑分开。这样终稿出问题时,更容易找到是哪一步开始偏离要求。

2026-09-28约 50 分钟390 行代码难度 ★★★

如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。

1. 长内容分阶段完成

写一篇博客时,可以把准备素材、列提纲、写初稿和编辑分开。这样终稿出问题时,更容易找到是哪一步开始偏离要求。

例如,事实不准确要回查素材,结构不清楚要看提纲,句子重复则可以集中在编辑环节处理。

先看这几个阶段之间怎样交接:

找资料 → 列大纲 → 写初稿 → 改稿 → 终稿

本课用四个角色分别处理。这样做增加了模型调用和交接成本,是否值得,需要通过产物比较。

先给每个角色一项明确任务:

topic ─→ Researcher(找事实)
            │
            ▼
       Outliner(拉大纲)
            │
            ▼
       Writer(扩写文章)
            │
            ▼
       Editor(润色)─→ 终稿

每阶段:

  • 输入 是上一阶段的输出
  • 输出 是下一阶段的输入
  • 每个阶段围绕自己的职责编写提示词

运行后保留各阶段产物,与一次生成的稿件对照。检查事实、结构和表达是否改善,也记录交接中丢失的信息。

<!-- bread-visual:start -->

文章流水线:上一棒交给下一棒

图解: 每个阶段有明确输入、输出与落盘产物。 本章 Researcher 由模型生成资料,不等于已联网核实;中间产物可逐段检查。

<!-- bread-visual:end -->

2. 跑起来

cd ch04_pipeline
python main.py

预期输出

=== 博客主题 ===
Python 的 GIL:它是什么,为什么有人想去掉,2026 年的进展

=== Stage: researcher ===
[researcher 输出 412 字]
- GIL 是 Global Interpreter Lock,CPython 实现中保护内存的互斥锁
- 只允许同一时间一个线程执行 Python 字节码
- 设计于 1992 年,简化了 CPython 的内存管理
- ...

=== Stage: outliner ===
[outliner 输出 380 字]
# Python 的 GIL:从必要之恶到可选项

## 1. GIL 是什么
- 全局解释锁的定义
- 在 CPython 解释器中的作用
...

=== Stage: writer ===
[writer 输出 850 字]
# Python 的 GIL:从必要之恶到可选项

Python 的并发设计里藏着一道 30 年的"禁忌"——全局解释锁(Global Interpreter Lock,简称 GIL)...

=== Stage: editor ===
[editor 输出 820 字]
# 30 年的 GIL:Python 的最大遗憾,正在被 2026 年解决

...

=== 全部完成 ===
完整文章存到 output/final.md
中间产物在 output/。

打开 output/final.md,先通读,再对照各阶段文件,看看最终稿是怎样一步步形成的。

每个阶段都存了一份产物(output/researcher.md / outliner.md / writer.md / editor.md),可以一一对照看演化过程。


3. 对照代码看实现

Stage:每次根据明确输入运行

class Stage:
    NAME = "stage"
    SYSTEM = ""
    
    def run(self, prev_output: str, topic: str) -> str:
        resp = self.client.chat.completions.create(
            messages=[
                {"role": "system", "content": self.SYSTEM},
                {"role": "user", "content": self._build_user_msg(prev_output, topic)},
            ],
        )
        return resp.choices[0].message.content

试读到这里 · 后续内容已封存

关注公众号,继续把这章学完

在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。