一、函数调用能不能用,取决于描述写得好不好

模型不读你的代码,它读你给的工具描述。

描述含糊,它就会乱选工具、乱填参数。问题通常不在模型,在文档。

函数调用成功率低,八成不是模型笨,是描述没写清。

模型不知道你的函数干什么,它只能读描述。描述写得含糊,它就会乱猜参数,或者该调不调。

我改过一组工具描述,成功率从六成上到九成,没换模型,只改了文字。

二、描述要写四件事

一、这个工具做什么,一句话说清。

二、什么时候该用,什么时候不该用。这一条大部分人都漏了。

三、参数含义与格式,包括取值范围和单位。

四、返回什么,成功与失败分别长什么样。

第三、四项最影响成功率。

资产按三类准备:地形、物件、以及装饰。三类分开,排图时才好调比例。

地形决定骨架,物件决定玩法,装饰决定氛围。

很多人的问题是装饰给太多,地形给太少,排出来像贴纸拼的。

三、参数设计的三条原则

原则一,必填参数越少越好。每多一个必填项,多一次填错机会。

原则二,用枚举代替自由文本。能列出来的,就给固定选项。

原则三,日期、金额这类,明确写格式。别让模型去猜是毫秒还是秒。

描述要写四件事:这个工具干什么、什么时候该用、参数是什么意思、返回什么。

四件事里最关键的是第二件。只写功能不写时机,模型就会在不该用的时候用。

比如「查询订单状态」这种描述不够,要补一句「当用户询问物流进度或订单是否发货时使用」。这一句能挡掉大量误调用。

参数描述要带例子。写「date: 日期」不如写「date: 格式 YYYY-MM-DD,例如 2026-11-14」。模型对例子的敏感度远高于对说明的敏感度。

还有一条容易忘:把参数的取值范围写出来。枚举值写全,模型就不会编一个不存在的值。

四、工具太多怎么办

给模型三十个工具,它会挑花眼。

三个处理办法:

一、按场景分组,每次只暴露相关工具箱。

二、提供一层路由,先判断意图再决定暴露哪些工具。

三、合并相似工具,把三个只差一个参数的接口合成一个。

两阶段来做:先灰度排版,再加细节。

灰度阶段只关心层次和可玩性,不关心好看。这一步做完,地图好不好玩基本就定了。

加细节阶段最容易推翻前面的判断。所以要先把灰度版本存档,改坏了能回去。

五、出错之后怎么修

一、把失败原因结构化返回,不要只给"失败"两个字。

二、允许重试,但限制次数,通常两次就够。

三、记录每次调用的参数,出问题时能复盘。

工具太多怎么办?我的做法是分两批:常用工具常驻,冷门工具按需加载。

一次给模型二三十个工具,它会开始挑错。控制在十个以内,准确率明显上升。

另一个办法是给工具分组,先让模型判断属于哪一组,再只给那一组工具。多一步,但错得少。

分组还有个副作用:描述会被逼着写清楚,因为同组内必须能区分。这对整体质量是好事。

六、一个自测清单

拿十个真实请求跑一遍,问自己三句:

工具选对了吗?

参数填全了吗?

不该调用的时候,它停住了吗?

第三句最能暴露问题。很多系统会滥用工具,明明问一句话就能答,非要调三个接口。

出错之后怎么修,别看整体成功率,看失败样本。

把失败案例按类型分:参数错、时机错、该调不调、不该调乱调。四类各有各的改法。

参数错改描述,时机错补触发条件,该调不调加示例,乱调就收窄适用范围。分类之后,修改就有针对性了。

我一般会留一个自测清单:十个典型问法,每次改完跑一遍。清单不长,但能挡住改一处坏一处的情况。

排图避坑的三条:别让可走区域和装饰混在一起、别让高低差超过三格、别让视线被完全遮挡。

第一条影响操作,第二条影响体验,第三条影响节奏。

第三条尤其重要。全遮挡的地图,玩家会迷路,然后就不玩了。

延伸参考

推理和模型相关的名词,前端 Wiki 里的解释短而准。

前端 Wiki

留一句:函数调用的上限,是你把接口文档写到多清楚。