按需向大模型暴露工具函数
每个数据模型、服务函数、页面元素都包含多个函数。开发者可以根据实际需求选择性启用需要的函数,让大模型在系统提示词中只看到当前任务需要的工具。
工具函数管理的目标不是做权限控制,而是管理大模型的可见工具面:减少不必要的 Token 消耗,降低模型误选工具的概率,让 Agent 更容易在当前任务中选择正确动作。
注意
启用或关闭工具函数不是安全边界。即使某个函数没有暴露在系统提示词中,如果用户直接发送明确的调用指令,仍可能触发调用。真正的权限控制必须在角色权限中配置,运行时会按当前用户角色自动阻止越权调用。
控制提示词中暴露哪些函数
在 Agent 编辑器的Models、Functions或工作页面中,每个函数右侧都有启用开关:
- 启用后:函数会作为候选工具暴露给大模型,模型更容易主动选择它。
- 关闭后:函数不会作为候选工具暴露给大模型,可减少上下文干扰和 Token 消耗。
建议按下面顺序处理:
- 先确定 Agent 的核心任务。
- 只添加完成任务必须使用的模型、服务函数或页面函数。
- 关闭无关的增删改查、调试函数和高风险函数,避免它们干扰模型判断。
- 用真实任务测试 Agent 是否能选择正确函数。
哪些函数不建议暴露给大模型
以下函数不建议默认暴露给大模型:
- 与当前 Agent 任务无关的函数。
- 删除、批量修改、退款、审批通过等高风险函数。
- 参数含义不清、缺少描述、容易误用的函数。
- 仅供开发调试使用的内部函数。
如果确实需要让大模型看到高风险函数,需要同时做好两件事:一是给函数写清晰的名称、描述和参数说明,降低误调用概率;二是在角色权限中配置数据模型权限或服务函数权限,确保未授权用户无法真正执行。
函数描述决定模型是否会正确调用
Agent 看到的不只是函数名称,还包括函数描述和参数信息。名称、描述和参数越清晰,模型越容易判断什么时候调用。
建议:
- 函数名称体现业务动作,例如
cancelOrder、queryCustomerRisk。 - 描述说明适用场景、执行结果和限制。
- 参数标题和说明要让非开发者也能理解。
服务函数的描述写法可参考让 Agent 调用服务函数。
注意
不要简单粗暴地启用全部函数,要根据实际需要针对性启用函数,否则会增加不必要的 Token 消耗、给大模型带来理解负担、引入不必要的误调用风险。需要安全控制时,请配置角色权限。