智能体调用工具:把边界画在哪里

让模型去调接口是智能体的核心能力,也是风险最集中的地方。本文说明工具该怎么定义、权限怎么收、以及失败和重复执行怎么处理。

要点速览
  • 智能体的错误从说错话变成做错事,而后者往往不可撤销。
  • 工具粒度要细、职责单一,这样权限才好分、出错范围才小。
  • 模型生成的参数等同于用户可控输入,必须同强度校验,不能因来自模型而跳过。
  • 涉及资金与不可逆变更的动作不应做成工具,改为模型给建议、人执行。
  • 错误信息要写成模型能据以决策的内容,只返回错误码会导致盲目重试。

智能体与普通问答的区别在于它会执行动作:查订单、改状态、发消息。能力变强的同时,错误的后果也从「说错一句话」变成了「做错一件事」,而后者往往不可撤销。

工具定义要具体

给模型的工具描述应当写清楚:这个工具做什么、每个参数是什么含义与取值范围、什么情况下不该用它。描述含糊时模型会在不合适的场景调用它,或者把参数填错。

一个实用的原则是:工具粒度不要太大。「处理订单」这种包含多种动作的工具,不如拆成「查询订单」「取消订单」「修改收货地址」几个单一职责的工具 —— 粒度细了,权限才好分,出错范围也小。

参数不能直接信

模型生成的参数要经过与处理用户输入同等强度的校验:类型、范围、格式、以及业务合法性。不能因为参数来自模型就跳过校验 —— 模型会把用户输入里的内容带进参数,这条路径等同于用户可控。

读写分离,写操作收紧

  • 只读工具可以放开让模型自由调用,错了重来即可;
  • 写操作需要额外条件:要么人工确认,要么限定在很窄的范围内(例如只能修改自己创建的、只能在某状态下执行);
  • 涉及资金、对外通知、不可逆变更的,不要做成工具交给模型调用,改为由模型生成建议、人执行;
  • 每个写操作都要有幂等键,模型重试或链路重放时不会执行两次。

失败要能被模型理解

工具返回错误时,错误信息要写成模型能据以决策的内容:是参数不对需要重填、是条件不满足需要换方案、还是系统故障应当放弃并转人工。只返回一个错误码,模型通常会盲目重试。

同时要在系统侧限制单次会话内的工具调用次数,避免模型陷入反复重试的循环 —— 这既消耗成本,也会让用户等待很久却没有结果。

全链路都要留痕

记录模型决定调用哪个工具、传了什么参数、返回了什么、以及最终呈现给用户什么。出问题时这条链是唯一能还原现场的东西。只记录最终回答,等于放弃了排查能力。相关设计见AI 智能体解决方案与平台与系统开发。

常见问题

AI 智能体可以直接操作业务系统吗?

只读操作可以放开,写操作需要收紧:要么人工确认,要么限定在很窄的条件范围内,并且每个写操作都要有幂等键。涉及资金、对外通知或不可逆变更的动作不应做成工具,改为由模型提供建议、人来执行。

模型传来的参数需要校验吗?

需要,强度应与处理用户输入相同。模型会把用户输入的内容带入参数,这条路径等同于用户可控。类型、范围、格式与业务合法性都要校验,不能因为参数由模型生成就跳过。

工具调用失败后模型会怎么做?

取决于错误信息的写法。只返回错误码时模型通常会盲目重试;把错误写成可据以决策的说明 —— 参数需重填、条件不满足需换方案、系统故障应转人工 —— 模型才能做出合理处理。同时应在系统侧限制单次会话的调用次数上限。

参考资料

  1. AI Risk Management Framework · NIST
  2. 大模型服务平台百炼文档 · 阿里云
# AI 智能体# 工具调用# 接口设计# 风险控制
免费咨询

聊聊你的项目

留下联系方式,我们一个工作日内联系你。先沟通需求和现状,再给方案;报价当面沟通。

  • 一个工作日内回复
  • 需求沟通免费,不强推方案
  • 交付管理后台与文档,可自行维护
仅用于本次咨询联系,不会用于其他用途。