59API

← Retour aux guides

GPT与Claude函数调用实战:工具编排、容错与低成本部署

API · ZH · 2026-09-08

先理解函数调用的真实工作流

函数调用并不是让模型直接执行代码,而是让模型输出结构化的工具请求,由你的服务端完成校验、执行,再把结果传回模型。一个稳定的循环通常包含四步:发送用户消息和工具定义,解析模型返回的工具调用,执行对应函数,将结果以正确格式回传,最后再次请求模型生成自然语言答案。

工具定义至少应包含名称、用途描述和参数Schema。例如天气工具的参数应明确为城市名字符串,并通过required限制必填字段。不要把一整个内部API文档原样塞进description;模型更需要知道何时调用、参数代表什么,以及失败时可以如何重试。

GPT与Claude的接口差异

在OpenAI兼容接口中,工具通常放在tools数组内,每个工具类型为function,并通过tool_choice控制自动选择、强制选择或禁止调用。模型请求工具后,你需要保存tool_call_id,并使用tool角色回传结果。Claude则会在内容块中返回tool_use,执行结果应以tool_result内容块放回后续用户消息。两者的核心思想相同,但消息角色、ID字段和内容结构不能混用。

建议在业务层定义统一的内部格式,例如统一成name、arguments、call_id三项,再分别写GPT适配器和Claude适配器。这样切换Opus、Sonnet、Haiku或GPT模型时,订单系统、数据库工具和权限逻辑无需重写。对Claude Fable等可用模型也可以复用同一套工具注册与审计机制。

高级Schema技巧:减少错误调用

Schema只是第一道防线。服务端仍要进行身份授权、租户隔离、参数清洗和数据库权限检查,绝不能因为请求来自模型就信任它。

构建可靠的工具执行循环

执行器应设置最大轮数,例如8轮,防止模型在工具失败时无限循环。每次调用生成唯一幂等键;支付、发货和写入类操作先检查该键是否已经成功,避免重试造成重复副作用。工具返回结果时,给模型简洁、可读且不泄露密钥的内容,例如订单状态、错误类别和下一步建议,不要直接返回完整数据库记录。

错误最好分成三类:参数错误让模型修正参数,临时错误允许有限重试,权限或业务拒绝则立即停止并向用户解释。并行读取工具可以缩短延迟,但涉及写操作时应按依赖关系串行执行。日志至少记录模型、工具名、耗时、token、结果类别和trace ID,同时对手机号、邮箱、密钥等字段脱敏。

用59API降低多模型工具调用成本

函数调用通常会增加工具Schema和多轮结果的输入token,因此成本控制不能只看单次输出价格。59API提供按量付费的GPT与Claude模型访问,使用原生官方质量模型,不做降级;在支持OpenAI SDK的项目中,将base_url设置为https://api.59api.com,并保留原有模型、tools和tool_choice配置即可迁移。它兼容Claude Code、Codex及各类OpenAI SDK,适合先用Haiku或GPT小模型做路由,再把复杂推理交给Sonnet、Opus或更高能力的GPT模型。

上线前记录每轮token和工具命中率,用短Schema、结果摘要和缓存策略减少无效上下文。若你希望以较低的按量成本测试这套多模型工具架构,可以注册59API开始调用;推荐返利也能进一步降低长期实验和生产成本。

Prêt à commencer ?

Connectez Claude et GPT en quelques minutes aux prix les plus bas, sans bridage. Inscrivez-vous pour votre clé API.

Inscription gratuite