跳到主要内容
版本:2.0.x

按需向大模型暴露工具函数

数据模型、服务函数、页面、知识库、联网搜索和文件空间都可能为 Agent 提供工具。开发者可以根据实际需求选择性暴露需要的能力,让大模型在系统提示词中只看到当前任务需要的候选工具。

工具函数管理的目标不是做权限控制,而是管理大模型的可见工具面:减少不必要的 Token 消耗,降低模型误选工具的概率,让 Agent 更容易在当前任务中选择正确动作。

注意

启用或关闭工具函数不是安全边界。即使某个函数没有暴露在系统提示词中,如果用户直接发送明确的调用指令,仍可能触发调用。真正的权限控制必须在角色权限中配置,运行时会按当前用户角色自动阻止越权调用。

控制提示词中暴露哪些函数

在 Agent 编辑器中,工具相关配置主要分布在:

配置入口用途
能力编排 -> 数据模型控制模型信息、查询、新增、修改、删除和附件相关能力
能力编排 -> Functions控制服务函数信息查看和运行能力
能力编排 -> 知识库控制 Agent 可查询哪些知识库,以及是否预检索
运行与安全 -> 工作页面控制页面函数是否暴露给 Agent
运行与安全 -> 联网搜索控制公开网页搜索和网页读取能力
运行与安全 -> 文件空间控制 Agent 可访问哪些文件空间及读写边界

数据模型、服务函数、Skill、知识库和子 Agent 通常支持三种模式:

  • 智能模式:系统收集可用候选项,由 Agent 根据任务选择。
  • 自定义模式:开发者手动选择当前 Agent 可使用的候选项。
  • 禁用:不向 Agent 暴露该类能力。

自定义模式下,还可以继续按函数或工具项控制暴露范围。启用后,对应函数或工具会作为候选能力进入模型上下文;关闭后,可减少上下文干扰和 Token 消耗。

建议按下面顺序处理:

  1. 先确定 Agent 的核心任务。
  2. 只添加完成任务必须使用的模型、服务函数或页面函数。
  3. 关闭无关的增删改查、调试函数、联网搜索和高风险函数,避免它们干扰模型判断。
  4. 用真实任务测试 Agent 是否能选择正确函数。

哪些函数不建议暴露给大模型

以下函数不建议默认暴露给大模型:

  • 与当前 Agent 任务无关的函数。
  • 删除、批量修改、退款、审批通过等高风险函数。
  • 不需要公开网页资料时的联网搜索和网页读取工具。
  • 参数含义不清、缺少描述、容易误用的函数。
  • 仅供开发调试使用的内部函数。

如果确实需要让大模型看到高风险函数,需要同时做好两件事:一是给函数写清晰的名称、描述和参数说明,降低误调用概率;二是在角色权限中配置数据模型权限或服务函数权限,确保未授权用户无法真正执行。

函数描述决定模型是否会正确调用

Agent 看到的不只是函数名称,还包括函数描述和参数信息。名称、描述和参数越清晰,模型越容易判断什么时候调用。

建议:

  • 函数名称体现业务动作,例如 cancelOrderqueryCustomerRisk
  • 描述说明适用场景、执行结果和限制。
  • 参数标题和说明要让非开发者也能理解。

服务函数的描述写法可参考让 Agent 调用服务函数

注意

不要简单粗暴地启用全部函数,要根据实际需要针对性启用函数,否则会增加不必要的 Token 消耗、给大模型带来理解负担、引入不必要的误调用风险。需要安全控制时,请配置角色权限。