02任务如何被安排 · 第 6 章
总进度 6 / 15

05|上一个助手做完了,怎样交给下一个

资料助手输出一大段文字,不等于写作助手就能正确接住。双方还得约定资料放在哪里、用什么编号领取、怎样保留出处。这一节先按串行顺序跑四个任务,再追踪一份资料从产生到写作输入的过程。

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

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

资料助手输出一大段文字,不等于写作助手就能正确接住。双方还得约定资料放在哪里、用什么编号领取、怎样保留出处。这一节先按串行顺序跑四个任务,再追踪一份资料从产生到写作输入的过程。

本节的重点是 artifacts,也就是任务的产物集合。学完后,你应该能从一个任务编号找到它交付的内容,并解释写作为什么只接收自己的依赖产物。

1. 先让任务一个接一个执行

在项目根目录运行:

.\.venv\Scripts\python.exe labs.py 5

实验设置了 parallel=False,所以即使两项资料互不依赖,也先后执行。观察四个编号都变为 completed,随后总任务进入 review。子任务全部完成后仍需人工审核,不要把两层状态混在一起。

串行实验显示资料、写作、审校逐项完成

图中内容来自课程实验的实际输出,按阅读宽度排成终端记录;任务编号和耗时会随每次运行变化。

用接力做饭理解“交接物”

一个人洗菜,一个人炒菜。洗菜的人说“我已经很认真地完成任务了”,后面的人仍然不能下锅;他需要实际拿到洗好的菜,还要知道菜是什么、有没有处理过。协作程序也是如此:状态 completed 是完成标记,artifact 才是后续真正用到的东西。

在文章任务里,资料助手不能只交一句“查完了”。至少要给来源编号、标题和内容,写作才有事实依据。审校也不能只接收“初稿已经完成”这个状态,它需要稿件本身。

这就是为什么项目把状态与产物分开保存。页面上的绿勾负责告诉你流程进度,展开产物才能检查工作内容。只确认绿勾,不读交接内容,很容易把“程序执行完了”误当成“任务做好了”。

2. 读懂一份资料产物

资料助手返回的字典形状如下。这里只展示一张资料卡,实际可能有多张:

{
    'kind': 'research',
    'sources': [{'id': 'S01', 'title': '课程定位', 'content': '教学资料内容'}],
    'text': '[S01] 课程定位:教学资料内容'
}

kind 告诉后续程序这是什么产物;sources 保留可进一步处理的原始资料;text 方便直接展示或放进模型上下文。字典键名是双方的约定,随意把 sources 改成 references,下游就可能拿不到来源。

在 engine.py 的 one_step 中,成功后会执行这句:

j['artifacts'][sid]=result

这里 sid 是步骤编号。例如资料整理结果放进 artifacts['research-product']。产物归属于明确的步骤,比“把所有输出追加到一个聊天记录”更容易查找和重跑。

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

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

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