接了新能力,别只测工具返回值
【摘要】 给 read 加图片能力时只验证了工具返回值,模型却一张图都没收到:中间 beforeRequest 钩子把图片块全剥掉,还不报错。把断言从工具返回挪到模型请求,数 content blocks 里的图片个数,任何一层吞掉能力都会当场暴露。
工具层全绿,用户那边没图
给 read 加图片处理能力时,我只验证了工具层返回的图片块,就认为功能上线。两个月后实测,模型只看到一行诊断信息。原因是中间 image-gen 扩展有个 beforeRequest 钩子,把非 view_image 来源的 toolResult 图片全剥掉了。工具返回值和模型实际收到的消息之间隔着好几层钩子,任何一层都能静默改写,而且不报错。
断言要打在消费方
改法是把验证点从「工具返回什么」挪到「模型收到什么」。直接打印模型请求里的 content blocks,数图片块个数,期望 1。这条断言跨过所有中间层,谁吞了能力都当场暴露。工具层断言只能证明处理器写得对,证明不了链路通。
把路径画出来再写用例
接处理器、适配器、钩子这类上游能力,我先画出从生产端到消费端的传递路径,逐层标注可能丢数据的地方,然后在末端写一条端到端用例。跑完再翻日志,看有没有被静默降级的痕迹。
一个钩子能废掉两个月
功能不是坏了,是从来没通。链路终点那个断言,成本只有几十行代码。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)