4.5 设定目标
本节目标
学会用目标功能让 agent 聚焦一件事,不被中途的枝节带偏。
为什么需要目标
agent 干活时,经常会出现一种情况:你让它"修登录页 bug",它修着修着开始优化布局、整理代码风格,最后方向跑偏了。
目标就是用来治这个的。你先把"这次会话要完成什么"明确告诉 agent,它就会在每轮决策时对照目标,跑偏了就拉回来。
怎么设定目标
设定目标不需要找特殊的界面按钮,直接在对话里告诉 agent 就行。有两种说法:
方式一:和任务一起说
本次会话的目标是:修复登录页在手机端显示错乱的问题。现在开始排查。
方式二:任务中途补设
设定目标:先把登录页 bug 修完,其他优化都先不做。
说完之后,dsh 会把目标记下来,界面上会出现当前的目标状态,让你随时看到这次会话在朝哪个方向走。agent 的每一步都会对照这个目标。
目标有哪些状态
一个目标不是"设了就完",它有生命周期,界面上会显示当前处于哪个阶段:
| 状态 | 含义 |
|---|---|
| 进行中 | 正在朝目标推进 |
| 已暂停 | 暂时搁置,可能被其他事打断 |
| 受阻 | 卡住了,需要你介入(比如缺权限、缺信息) |
| 已完成 | 目标达成 |
卡住的时候,agent 会说明原因并等你处理。这也是它主动"求助"的机制:干不动就告诉你,而不是硬编。
一个完整例子
看这个会话怎么靠目标保持专注:
- 你发:设定目标:把这个项目的 README 补全,只做这个,然后开始
- agent 确认目标,开始读现有 README 和代码
- 中间 agent 想"顺手修一下排版",对照目标发现和 README 无关,跳过
- README 补全后,agent 汇报并标记目标已完成
全程没跑偏,因为每一步都有目标对照。
目标写得越收敛越好
"把 README 补全"比"把这个项目完善一下"管用得多。目标模糊,agent 就没法判断什么算跑偏。
常见问题
问:目标设了之后想改?
直接说"更新目标:改成 X"。目标是会话内的,随时可以更新。
问:目标会影响下一个会话吗?
不会。目标是同会话的,新会话从零开始。每个会话独立设定。
小结
- 目标是会话级的方向锚点,直接对话里说"设定目标:X"即可
- 目标有进行中、暂停、受阻、完成等状态,受阻时会向你求助
- 目标越具体越收敛,agent 越不容易跑偏
目标锚定了,下一节上更硬核的:计划模式,让 agent 先计划后执行。