news 2026/6/15 7:08:52

工具调用老是参数不对?我把工具描述当 API 文档来写就好了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
工具调用老是参数不对?我把工具描述当 API 文档来写就好了

做带工具调用(function calling / tool use)的 Agent,十有八九都卡在同一个地方:模型该调工具的时候不调,该传参的时候传歪。我自己折腾了一阵,最后悟出来一句话——工具描述写得烂,模型就调得烂。下面是我把工具描述当成给同事看的 API 文档来打磨之后,踩坑率明显下降的几条经验。

现象:模型为啥不听话

我最早挂了个"查物流"的工具,描述就写了俩字"查快递"。结果:

  • 用户问"我的单子到哪了",模型经常自己瞎编一段物流;

  • 偶尔调了,参数order_id传成了用户随口说的昵称;

  • 还有一次把日期当单号传进去了。

根因不是模型笨,是我给的信息太少,它只能猜。

我后来怎么写工具描述

把每个工具当一个对外接口,描述里至少讲清四件事:

  1. 这工具干啥、什么时候该用——"当用户询问订单的配送进度、是否签收时调用",把触发场景写死,别让模型去悟;

  2. 每个参数是什么、什么格式——order_id:订单编号,纯数字字符串,从用户消息里提取,提取不到就反问,别瞎填;

  3. 不该用的时候明说——"用户只是咨询退换货政策时不要调用本工具";

  4. 返回长啥样——让模型知道拿回来能怎么用。

光把这四条补全,我那个物流 Agent 的乱调率就降了一大半。

还有两个细节坑

一是参数枚举值要写全。我有个工具status参数只接受paid/unpaid/refunding,一开始没在描述里列,模型动不动传个已付款,接口直接报错。把可选值显式列进描述后就稳了。

二是工具别给太多。我贪心一次挂了十几个工具,模型选择困难,经常调错那个最像的。后来按场景拆,一个 Agent 只留它真用得上的三五个,准确率立马上来。工具多到一定程度,该考虑拆成多个 Agent 或者分层路由了。

我现在的工作台

我搭 Agent 用的是个能可视化挂工具、还能直接接现成 MCP Server 的平台,挂工具基本是填表式的,参数 schema 它有结构化的填法,比我手写 JSON schema 省心。要说缺点:它自带能搜到的 MCP 工具是不少,但质量参差,有几个第三方的 server 我连上去超时,最后还是自己包了个接口挂上去。别指望挂上就万事大吉,每个工具我都单独压测了几轮才敢上。

模型这块我用的讯飞MaaS,直接调它的 API,function calling 现成支持,省了我自己适配各家模型工具协议的功夫。

你们调工具调用时,是描述写得细才稳,还是另有招?评论区说说。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 7:07:51

Linux fsverity_file_open fs-verity Merkle树校验

Linux fsverity_file_open fs-verity Merkle树校验fs-verity是Linux内核的只读文件完整性保护机制,基于Merkle树实现逐块哈希验证。核心入口是fsverity_file_open,在文件打开时验证完整性元数据并初始化验证上下文。整体框架位于fs/verity/目录&#xff…

作者头像 李华
网站建设 2026/6/15 7:07:50

Linux futex快速用户态互斥futex_wait与futex_wake

Linux futex快速用户态互斥futex_wait与futex_wakefutex(Fast Userspace muTEX)是Linux中用户态同步的核心机制,其设计思想是将同步操作尽量保持在用户态完成,仅在需要时才通过系统调用进入内核.这种设计避免了绝大多数场景下的系统调用开销.一、futex核心设计futex基于一个用户…

作者头像 李华
网站建设 2026/6/15 7:05:55

多维聚合不是GROUP BY:数据立方体操作实战指南

1. 这不是简单的“加总求平均”——多维聚合中的数据操作到底在解决什么问题?你有没有遇到过这样的场景:销售部门要按“地区产品线季度”三个维度看营收,同时还要计算每个组合的同比变化、环比变化、占区域总销售额的比重,以及剔除…

作者头像 李华
网站建设 2026/6/15 7:03:53

Qt5.15 + QWebEngine网页加载慢到超时?一个抓包对比Chrome的实战排查记录

Qt5.15 QWebEngine网页加载超时问题深度排查指南现象描述与初步分析最近在项目中使用Qt5.15的QWebEngine组件时,遇到了一个令人困扰的问题:网页加载速度异常缓慢,最终甚至出现超时错误。相同网页在Chrome浏览器中却能瞬间加载完成&#xff0…

作者头像 李华