Skip to content

4.5 设定目标

本节目标

学会用目标功能让 agent 聚焦一件事,不被中途的枝节带偏。

为什么需要目标

agent 干活时,经常会出现一种情况:你让它"修登录页 bug",它修着修着开始优化布局、整理代码风格,最后方向跑偏了。

目标就是用来治这个的。你先把"这次会话要完成什么"明确告诉 agent,它就会在每轮决策时对照目标,跑偏了就拉回来

怎么设定目标

设定目标不需要找特殊的界面按钮,直接在对话里告诉 agent 就行。有两种说法:

方式一:和任务一起说

本次会话的目标是:修复登录页在手机端显示错乱的问题。现在开始排查。

方式二:任务中途补设

设定目标:先把登录页 bug 修完,其他优化都先不做。

说完之后,dsh 会把目标记下来,界面上会出现当前的目标状态,让你随时看到这次会话在朝哪个方向走。agent 的每一步都会对照这个目标。

目标有哪些状态

一个目标不是"设了就完",它有生命周期,界面上会显示当前处于哪个阶段:

状态含义
进行中正在朝目标推进
已暂停暂时搁置,可能被其他事打断
受阻卡住了,需要你介入(比如缺权限、缺信息)
已完成目标达成

卡住的时候,agent 会说明原因并等你处理。这也是它主动"求助"的机制:干不动就告诉你,而不是硬编。

一个完整例子

看这个会话怎么靠目标保持专注:

  1. 你发:设定目标:把这个项目的 README 补全,只做这个,然后开始
  2. agent 确认目标,开始读现有 README 和代码
  3. 中间 agent 想"顺手修一下排版",对照目标发现和 README 无关,跳过
  4. README 补全后,agent 汇报并标记目标已完成

全程没跑偏,因为每一步都有目标对照。

目标写得越收敛越好

"把 README 补全"比"把这个项目完善一下"管用得多。目标模糊,agent 就没法判断什么算跑偏。

常见问题

问:目标设了之后想改?

直接说"更新目标:改成 X"。目标是会话内的,随时可以更新。

问:目标会影响下一个会话吗?

不会。目标是同会话的,新会话从零开始。每个会话独立设定。

小结

  • 目标是会话级的方向锚点,直接对话里说"设定目标:X"即可
  • 目标有进行中、暂停、受阻、完成等状态,受阻时会向你求助
  • 目标越具体越收敛,agent 越不容易跑偏

目标锚定了,下一节上更硬核的:计划模式,让 agent 先计划后执行。

发现错误?提交反馈 · 欢迎 提 PR 改进本书