Skip to content

视频 04 来源笔记:Agent 的任务规划

来源元信息

  • 讲者:小单说AI
  • Bilibili:BV13R9aB5EeL
  • 本地字幕:从零实现自己的agent第四期:agent的任务规划.ai-zh.srt
  • 字幕覆盖:00:00:00–00:09:28
  • 对照材料:bilibili-transcripts/04-Agent的任务规划.txtppt/第四期-agent任务规划.html
  • 对应代码:step08_plan_todolist.py

按时间顺序的主题窗口

[00:00:00–00:00:44] 为什么已有 Agent 仍做不好复杂任务

前几步已经有循环、工具、Skill 和记忆,但复杂任务仍会漏步骤、重复步骤或中途停止。问题不在“模型不会列计划”,而在计划只存在于模型短暂的脑内文本。

[00:00:44–00:01:42] 仅靠系统提示不够

强制模型“先规划再执行”在简单任务中显得冗余,在复杂任务中又缺少可检查的强约束。提示词能建议行为,却不能充当可靠状态机。

[00:01:42–00:02:17] 可写入状态模型

每个计划项至少有 idcontentstatus。顺序、任务定义和执行状态被外置后,用户与 Agent 都能知道当前进度和未完成项。

[00:02:17–00:02:57] 用工具维护计划

Agent 在复杂任务中调用计划工具,创建步骤并将状态从等待更新为进行中、已完成。简单问答可以不启用计划,避免流程过重。

[00:02:57–00:03:39] Completion Guard

模型说“完成了”时,运行时检查是否仍有未完成项。有则把任务退回循环继续执行;全部完成后清空计划,防止污染下一轮。

[00:03:39–00:04:37] 代码的三处改动

新增 Todo 状态与更新函数、注册 update_todo 工具、在系统提示中加入使用规则。工具定义负责“怎么写状态”,提示负责“什么时候用”。

[00:04:37–00:05:18] 最终核验与状态重置

运行结束前读取 Todo 列表,未完成则反馈差距,完成则输出最终计划状态并清空。这个节点是规划与目标驱动之间的桥梁。

[00:05:18–00:06:11] 多步骤演示的计划生成

任务要求整理深度学习知识、生成 Markdown、再制作并保存 HTML。Agent 将目标拆为可观察的多个步骤,并显示当前执行项。

[00:06:11–00:07:19] 按状态推进

搜索、整理文档和生成网页依序进行,每完成一项立刻更新状态。日志让学习者能看到“计划现在在哪一步”,而不只看到最后答案。

[00:07:19–00:08:10] 产物验收

演示不仅查看模型总结,还回到桌面确认 Markdown 与 HTML 文件存在并打开网页。虽然验证仍偏人工,但已经体现“产物比自述可靠”。

[00:08:10–00:09:28] 教学仓库结构

视频说明 build-agent-example/codedoc 一一对应,累计 Step 让学习者比较新增能力。PPT、模块化工程和下一期 Subagent 形成进一步阅读入口。

主教学论点

规划的关键不是让模型多写一段计划,而是把计划变成可写、可读、可核验的外部状态。状态让复杂任务具备进度、恢复点和结束条件。

状态与流程

text
empty
  → create(todo[])
  → pending
  → in_progress
  → completed
  → completion guard
      ├─ incomplete: feed remaining items back
      └─ all complete: emit result and clear

需要额外设计的非法转换包括:跳过 in_progress、同时有多个互斥任务执行、完成后被无理由改回等待、重复 ID 和空内容。

演示序列

  1. 输入同时要求知识搜集、Markdown 和 HTML 的任务。
  2. 观察计划列表是否覆盖所有产物。
  3. 每次工具调用后检查 Todo 状态。
  4. 模型准备回答时触发未完成项检查。
  5. 在文件系统中验证两个产物。
  6. 确认下一轮开始时旧计划已清空。

术语与纠正

  • 自动字幕中的 station 应为 status
  • 文本稿一处将 update_todo 写成 update_tool_use,固定代码与文档以 update_todo 为准。
  • “计划完成”与“目标完成”不同:Todo 全绿只能证明模型更新了状态,除非每项状态由确定性证据支持。

需要工程限定的说法

  • TodoList 不会自动保证“不遗漏”,拆分本身仍可能错误。
  • 状态更新由同一个模型发起时,模型可能过早标完成;关键步骤应由测试或 Verifier 决定。
  • 无上限地把未完成项退回会造成死循环,应设置迭代、成本和时间预算。
  • 清空状态前应保存运行轨迹,方便审计、评估和恢复。
  • 并行任务不能只用顺序 ID 表达,需要依赖图、资源锁或显式前置条件。

来源映射

  • CAE:step08_plan_todolist.pydoc/step08_plan_todolist.md
  • 《深入理解 AI Agent》:第 1 章“工作流与自主”;第 2 章核心循环的最大迭代限制;第 6 章可验证任务;第 8 章轨迹闭环。
  • Mini Emperor:goals.py 的目标状态,agent.py 的最大迭代与事件;完整 Todo 状态机是正文实验。
  • 进入正文:book/04-任务规划.mdreference/state-and-events.md

内容差异与待核对

  • PPT 用“PLAN STATE / OPERATING RULES / COMPLETION GUARD”三页压缩主线,与本笔记的状态、提示规则、结束核验对应。
  • 视频说“通过 TodoList 完美完成、没有遗漏”是演示结论,不应推广为可靠性保证。
  • 本地字幕与仓库文本的时间点有少量毫秒差,本笔记采用本地 SRT 可定位的整秒窗口。

Markdown 是唯一内容源,HTML 由构建流程生成。