代理停下来的时候,如果记录里只有一句已完成,第二天没人知道它是真做完了,还是步数到了,或是工具报了错。这份教程教你给每一次工具调用留下停止原因,并且只用固定的几个词。
先放在手边的材料
- 先定五个停止词:做完、需要人看、工具报错、步数到顶、拒绝执行。不要让模型现编一个理由。
- 每一次调用至少留下工具名、参数摘要、返回摘要、停止词。缺一栏就还不能复盘。
- 停止词由你的程序写入,不从模型的散文里摘。模型说做完了,但程序没有写入做完,这条就不算做完。
这三条里最容易漏的是:停止词由你的程序写入,不从模型的散文里摘。模型说做完了,但程序没有写入做完,这条就不算做完。
做之前把这三句留在手边:先定五个停止词:做完、需要人看、工具报错、步数到顶、拒绝执行。不要让模型现编一个理由。每一次调用至少留下工具名、参数摘要、返回摘要、停止词。缺一栏就还不能复盘。停止词由你的程序写入,不从模型的散文里摘。模型说做完了,但程序没有写入做完,这条就不算做完。
操作就这四步
列停止词。在记录表的表头写下五个词,旁边各给一句人话解释,避免两个人理解不一样。这一步要留下的是:五个词和解释。这一项没写上,先不要做下一步。
包住调用。工具返回之后,程序立刻写停止词。报错就写工具报错,不要先让模型把错润色掉。这一步要留下的是:停止词来自程序。这一项没写上,先不要做下一步。
截断摘要。参数和返回各留短摘要,长文另存。摘要里保留能对上的编号,不保留整段闲聊。这一步要留下的是:参数摘要和返回摘要。这一项没写上,先不要做下一步。
对一下。抽三条看:模型口头说的状态,和程序写的停止词是不是同一个。不是就以程序为准。这一步要留下的是:口头和程序不一致的例子。这一项没写上,先不要做下一步。
四步都做完时,记录里应同时有:五个词和解释、停止词来自程序、参数摘要和返回摘要、口头和程序不一致的例子。少任何一项,先补记,再往下对照。
记录表怎么填
| 这一步的情况 | 说明什么 | 要改的地方 |
|---|---|---|
| 只写了已完成 | 看不出是做完还是步数到顶 | 改成五个停止词之一 |
| 理由是模型编的 | 复盘时无法和日志对上 | 改为程序写入 |
| 返回全文塞进格子 | 后面的人读不到重点 | 格子里留摘要,全文另存 |
| 报错被写成暂时没有 | 下次会当成没这回事 | 停止词写工具报错,原文另附 |
表里这四种情况,要改的地方依次是:改成五个停止词之一、改为程序写入、格子里留摘要,全文另存、停止词写工具报错,原文另附。
做歪时先看这两处
五个词后来又加了同义词,统计时同一件事被拆成两行。
只在最后写一个停止词,中间几次调用没有自己的词。
收工前对一下
任意一次调用都能看到工具名、两句摘要,以及五个停止词里的一个,并且这个词是程序写的。
这篇只做这一件:Agent教程:一次工具调用记下停止原因。顺序是列停止词、包住调用、截断摘要、对一下。题、口径和工具不要在同一次里一起改。
留下的记录要让另一个人打得开。打不开,就不算已经留下,这次也不能当成做完。
你下次看一条代理记录,先找停止词;找不到五个词之一,就先把这次补记完再谈效果。
常见问题 FAQ
为什么不用模型自己说的完成?
模型常在工具没返回时也说完成。停止词要和程序实际看到的返回绑在一起。
步数到顶算失败吗?
它是一种停止,不是自动等于失败。失败要另看这道题的验收,不要混在一个词里。
摘要留多长?
留得住编号和结果方向即可。全文放在附件,格子里不要贴整段返回。
同义词能不能用?
不能。需要人确认和需要人工复核如果同时存在,统计就会拆开。先合并成一个词。
中间步骤也要写吗?
要。只在结尾写一个词,就看不到是哪一次调用把路带走的。