Agent工具调用Tool Use

入门·10 分钟·通过可运行代码讲解「Agent工具调用Tool Use」,覆盖环境准备、核心代码、参数说明、异常处理、工程化改造和练习任务,适合 AI 编程入门。

Agent工具调用Tool Use

Tool Use 指让 AI 根据任务调用外部工具。它是 Agent 能真正执行任务的关键。没有工具,模型只能生成文本;有了工具,模型可以查询、计算、检索和操作系统。

工具是什么

工具本质上是程序函数。例如:

  • 查询天气;
  • 搜索文档;
  • 查询订单;
  • 执行计算;
  • 读取文件;
  • 创建日程。

模型不直接执行这些函数,而是提出调用请求,由你的程序执行。

工具设计原则

一个好工具应该:

  1. 名称清楚;
  2. 描述明确;
  3. 参数少而准确;
  4. 返回结构稳定;
  5. 错误信息可理解;
  6. 权限边界明确。

例如 search_policy(keyword)do_something(input) 好得多。

参数schema

如果工具需要参数,必须定义清楚类型和含义:

{
  "city": "城市名称",
  "date": "查询日期,格式YYYY-MM-DD"
}

参数越模糊,模型越容易传错。

工具返回值

返回值尽量结构化:

{
    'status': 'ok',
    'data': {...},
    'source': 'weather_api',
    'error': None
}

不要只返回一大段无结构文本,否则模型和程序都不好处理。

只读工具和写操作工具

只读工具风险较低,例如搜索、查询、读取。写操作工具风险高,例如发送邮件、删除文件、提交订单、修改数据库。

高风险工具必须满足:权限校验、人工确认、日志记录、可回滚或可补救。

调试工具调用

调试时要记录:

  • 模型为什么选择这个工具;
  • 工具参数是什么;
  • 执行耗时;
  • 返回结果;
  • 是否继续调用下一工具。

这些日志能帮你判断问题出在模型理解、参数生成还是工具本身。

小结

Tool Use 的重点不是让模型能调用越多工具越好,而是让每个工具清晰、安全、可控。工具设计得越好,Agent 越稳定。