一次工具调用的四步与三方分工
第一步宿主把工具声明放进请求;第二步模型生成工具名与参数;第三步运行时校验权限后执行;第四步结果回填上下文,模型继续。每一步的失败方式不同。
ONE CALL, FOUR STEPS
STEP 1
声明进请求
名称、说明、参数结构
STEP 2
模型选工具填参数
返回工具名与一组键值
STEP 3
运行时校验后执行
结构、权限、副作用
STEP 4
结果回填
模型据此决定下一步
WHO ACTS
宿主组装请求 · 模型做选择 · 运行时持执行权 · 环境返回真实状态 · 宿主再把它放回上下文
WHERE EACH STEP BREAKS
选错
声明里没说清什么时候用,
或与别的工具区分不开。
填错
结构不合法,或语义填偏:
查询词太宽、路径指错文件。
被静默改掉
工具悄悄修正了参数,
模型看到的世界与执行的世界不一致。
读错
返回是一段长文本,
或截断了但没说。
四步里只有第三步与第四步是工具自己的责任;前两步的问题出在声明与描述上,改执行代码解决不了。
模型看不到函数体,它看到的是第一步那份声明。设计的对象就是这份声明与第四步那份返回。