🐳 第七章 从Tool Call到Agent Runtime
📄 一句话概括

普通对话一轮就结束;目标+跨轮驱动+后台任务三件,让一件干不完的活能一轮一轮接着做。

📝 本节和前面几节的关系

能力、委派、环境都讲完了。这一节讲时间:一件干不完的活,怎么跨越多个 Turn。

一、跨轮要解决什么

一轮结束时,模型没有【下次继续】的记忆——除非有人把【要达成什么】存下来。

二、后台任务

前台对话 + 后台任务,是【长任务】最基本的两条腿。

三、计划模式也是同一族

四、算例

目标【给 30 个文件加注释】:一轮改 8 个,共四轮收口。

中途可以关掉界面再回来——目标存在会话账上,不靠人记着。 这就是 6.4 那句【会话是事实库】在时间维度上的用处。

五、动手 Demo:让工作跨越多个 Turn

跨轮靠三件,各管一段:

mech = [("目标", "dsh-goal", "存下【要达成什么】"),
        ("跨轮驱动", "dsh-goal-round-driver", "一轮没完接着下一轮"),
        ("后台任务", "dsh-jobs-local", "跑起来不占会话"),
        ("计划模式", "dsh-plan-mode", "先出计划再动手")]
for a, b, c in mech:
    print("  %-10s %-24s %s" % (a, b, c))
print()
print("  算例: 30 个文件加注释, 一轮 8 个, 四轮收口")

实跑输出:

--------------------------------------------------------------------
让工作跨越多个 Turn
--------------------------------------------------------------------
  普通对话一轮就结束;持续任务要能跨轮、能在后台:

  机制         包                        干什么
  ------------------------------------------------------------------
  目标         dsh-goal                  把【要达成什么】存成目标
  跨轮驱动     dsh-goal-round-driver     一轮没干完,接着驱动下一轮
  后台任务     dsh-jobs-local            跑起来不用占着会话
  命令入口     dsh-command-goal          手动起目标(默认停用)
  计划模式     dsh-plan-mode             先出计划,批准了再动手
  ------------------------------------------------------------------

  算例:目标【把 30 个文件全部加注释】——一轮改 8 个,
  跨轮驱动接着起第二轮……第四轮收口。

跨轮不是靠人记着——靠目标存成状态、由驱动接着推。 前台对话与后台任务是长任务的两条腿。 计划与进度分开放(plan-mode 与 tool-todo)——各管一段。

30 秒实验

  1. 给你的一个长任务写出目标一句话。
  2. 估一下它要几轮、每轮做多少。
  3. 说说后台任务为什么不能靠【让会话一直开着】代替。

常见误区

  1. 错误:Agent 会自己记住没干完的活。——纠正:目标要先存下来——靠 goal 与跨轮驱动,不靠记性。
  2. 错误:长任务就是让会话一直开着。——纠正:后台任务不占会话——两条腿分工不同。
  3. 错误:计划和进度是一回事。——纠正:plan-mode 与 tool-todo 分开放——计划归计划,进度归进度。
自测三问(点开对答案) 1. 跨轮靠哪三件? —— 目标(`dsh-goal`)、跨轮驱动(`dsh-goal-round-driver`)、后台任务(`dsh-jobs-local`)。 2. 一轮结束时模型缺什么? —— 缺【下次继续】的记忆——**所以目标要存成状态**。 3. 计划和进度为什么分开? —— 计划在动手之前(plan-mode),进度在动手之后(tool-todo)——**各管一段**。

相关笔记