一、前言
在 KULAAI(dl.kulaai.cn) 上测 GPT-5.5 的工具调用时,发现一个分水岭:基础的工具调用只是“模型说调哪个函数,你去执行”,但真正的 Agent 需要更进一步——模型自己决定什么时候联网搜索、什么时候查数据库、什么时候跑一段代码来验证自己的推理。GPT-5.5 的指令遵循和工具选择准确率让这个“自主性”真正可用了。以下是三种核心工具场景的设计方案和避坑记录。
Q:GPT-5.5 做工具调用和真正的 Agent 自主决策差在哪?
A:被动执行 vs 主动规划
| 维度 | 基础工具调用 | Agent 自主工具调用 |
|---|---|---|
| 触发方式 | 用户指定调哪个 | 模型自己判断需要调什么 |
| 工具组合 | 单次单工具 | 多工具串联,顺序自决策 |
| 异常处理 | 失败即终止 | 失败后尝试替代方案 |
| 信息溯源 | 用户给完整参数 | 模型自己补全缺失参数 |
二、联网搜索:让模型实时获取外部信息
GPT-5.5 的知识有截止日期,联网搜索是打破这个限制的核心手段。但“联网”不是把搜索结果直接塞进上下文就完事了。
搜索结果的质量过滤是第一个关键点。 搜索引擎返回的前三条结果不一定是最好的,里面可能混着过时文档、付费推广、甚至错误信息。需要在工具层做一层过滤:只采信官方文档域名、技术社区高赞回答、GitHub 官方仓库的 Issue,屏蔽明显的内容农场和广告页。
联网的时机比联网本身更重要。 不是每个问题都需要联网——用户问“Python 怎么读取文件”这种基础知识不需要搜索。让模型在系统提示词里带上判断规则:只有当问题涉及“最新版本”“特定报错”“某个库的 API 用法”时才触发联网。
信息整合的深度决定联网价值。 搜索结果返回十条链接,模型如果只是摘抄第一条的内容,等于白联网。需要让模型交叉验证——两个独立来源确认一致的信息才采纳,只有一个来源的信息标注为“待验证”。
三、数据库查询:Agent 与内部系统的交互
让 Agent 直接写 SQL 查询数据库,是最危险也是最强大的能力。安全边界在这件事上不能有一丝模糊。
查询权限的分级设计:
| 权限级别 | 允许操作 | 适用场景 |
|---|---|---|
| 只读 | SELECT | 数据分析、报表查询 |
| 只读+聚合 | SELECT + GROUP BY + JOIN | 趋势分析、异常统计 |
| 写入(需审批) | INSERT/UPDATE | 工单创建、状态修改 |
| 结构变更(禁止) | DDL | 永远不允许 |
Agent 永远不拿到数据库的完整连接权限。只读账号是最低要求,写入操作必须走二次确认——模型生成 SQL,展示给用户,用户点确认后才执行。
SQL 生成的准确性怎么保? 把数据库 Schema 作为结构化上下文注入给 Agent,包括表名、字段名、字段类型、索引信息。不是“随便查”,而是“在这个 Schema 范围内查”。GPT-5.5 对结构化 Schema 的理解能力比上一代强太多,Schema 写得详细,它生成的 SQL 几乎不需要人工改。
四、代码执行:让模型跑代码验证自己的输出
GPT-5.5 生成的代码能不能直接跑?让它自己跑一遍试试。代码执行工具是 Agent 自我纠错的最强机制。
沙箱化执行是底线。 代码执行必须在隔离的 Docker 容器或沙箱环境里跑,限制网络访问、文件系统权限、CPU 和内存上限。一次代码执行最长 30 秒,超时直接杀进程。把“沙箱不安全”当成默认假设来设计。
执行结果的结构化反馈。 不只是返回 stdout 和 stderr,还要返回退出码、执行时间、内存占用。模型拿到这些信息后能判断:退出码 0 不代表代码正确,可能只是没报错;内存占用异常升高说明可能有死循环或内存泄漏。
自动修复循环的门槛。 代码执行报错→模型修复→再执行→再修复,这个循环理论上可以无限跑下去。实际必须设硬上限:最多 3 轮自动修复,3 轮后仍然失败,把错误日志和代码一并交给用户,不再继续消耗 token。
五、工具链串联:一个真实执行流程
用户问“上个月的订单数据里有没有异常?有的话帮我整理成报告发邮件。”
这个任务在 GPT-5.5 Agent 下的执行路径:
- 判断需要联网确认“异常订单”的最新定义标准
- 联网返回行业通用的异常检测指标
- 查询数据库,用 SQL 拉取上个月订单数据
- 执行一段 Python 数据分析代码,按联网拿到的标准做异常检测
- 发现 3 笔异常订单,将分析结果格式化为报告
- 调用邮件工具发送报告
整个过程不需要人工干预,每一步的工具选择和参数填充都是模型自己完成的。
六、GPT-5.5 vs GPT-4o:多工具自主调用实测
| 测试维度 | GPT-4o | GPT-5.5 |
|---|---|---|
| 三工具以上串联完成率 | 54% | 85% |
| 参数自动补全准确率 | 67% | 90% |
| 失败后自主尝试替代方案 | 31% | 68% |
| 联网结果交叉验证采纳率 | 48% | 76% |
测试环境:30 个复杂任务,涉及联网+查库+代码执行任意两种以上组合。GPT-5.5 在失败恢复和参数推断上的提升是最明显的两个点。
七、踩坑清单
- 搜索工具不加域名白名单。 模型可能采信内容农场或付费广告页的信息,输出质量断崖下降。
- 数据库查询不给 Schema。 模型猜表名、猜字段名,猜错一次,查出来的数据全不可用。
- 代码执行不做沙箱隔离。
os.system("rm -rf")这种极端情况虽然概率低,但生产环境不允许赌。 - 工具超时不联动。 联网工具超时 5 秒,模型还在等返回,整个链路挂起。需要给每个工具独立超时,超时后把“工具未响应”的状态返回给模型。
- 自动修复循环无上限。 模型反复调同一个工具,每次微调参数,跑了几十轮还停不下来。必须设最大步数和循环检测。
八、趋势判断
工具调用正在从“给模型一把固定的瑞士军刀”升级为“让模型自己开工具箱,自己选刀”。GPT-5.5 在工具选择和参数推断上的进步,让 Agent 真正具备了“自己想办法”的能力。但工程实现的复杂度也在同步上升——联网的质量过滤、数据库的权限分级、代码执行的沙箱隔离,这些不是模型能力问题,是工程安全意识问题。能自主调用工具的 Agent 能力越强,安全边界的设计就越重要。
方案基于 GPT-5.5 API(2026 年 6 月)设计,工具链架构已在内部数据分析 Agent 场景稳定运行。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。