示例使用 gpt-5.5-2026-04-23 固定快照,只构造请求和 mock 工具,不发送付费 API 调用。目标不是让模型直接“执行任何工具”,而是建立一个受控循环:模型提出结构化调用,应用验证与执行,结果回传,任务按 checkpoint 继续。

第一层:固定模型与推理强度

密钥来自环境变量,模型快照与配置由应用保存:

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
MODEL = "gpt-5.5-2026-04-23"

response = client.responses.create(
    model=MODEL,
    reasoning={"effort": "medium"},
    instructions=(
        "Use only the provided tools. Never invent tool results. "
        "Ask for clarification when an order id is missing."
    ),
    input="Check whether order A1B2C3D4E5F6 has shipped.",
)

生产路径先用离线评测选择 effort。简单读取可能使用 low,跨多个结果综合可使用 medium/high;xhigh 只在困难异步任务中验证。配置改变要版本化,不能把 reasoning 当 prompt 内随用户操控的自由文字。

第二层:声明窄工具

工具 schema 只包含业务所需字段:

ORDER_TOOL = {
    "type": "function",
    "name": "lookup_order",
    "description": "Read the shipping state for one authorized order id.",
    "parameters": {
        "type": "object",
        "properties": {
            "order_id": {"type": "string", "pattern": "^[A-Z0-9]{12}$"}
        },
        "required": ["order_id"],
        "additionalProperties": False,
    },
    "strict": True,
}

调用 responses.create 时传入 tools=[ORDER_TOOL]。严格 schema 降低格式错误,却不完成授权。执行器再次验证 ID、当前用户是否拥有订单、调用频率和读取范围。模型看不到数据库凭据,只能把提案交给工具网关。

工具结果使用最小 JSON,例如状态与更新时间,不返回整份客户记录。网页或工单文字是可能含提示注入的数据,放进明确字段,并提醒模型不能从结果获得新权限。

第三层:解析与执行

遍历 response.output,按 item 类型处理函数调用,不用固定下标。未知 item 保留或安全忽略。每个调用有 call id,执行前写入 proposed 状态;参数和授权通过后写 approved,mock 或真实工具完成写 succeeded/failed。工具输出与对应 call id 一起提交给下一次 Response。

真实执行代码不接受模型提供的 URL、SQL 或 shell。工具名映射到本地函数表;参数经过 Pydantic/JSON Schema 与领域规则;超时和错误转换成短结构化结果。写操作还需 idempotency key,高风险动作在执行前请求人类批准。

长任务用 checkpoint 而不是无限上下文

任务状态保存 product task id、response id、模型快照、prompt/tool 版本、已完成步骤、工具调用和外部产物。previous_response_id 可续接模型状态,但产品数据库仍是任务真相。进程重启后先核对工具结果是否已经提交,再决定继续,避免重复副作用。

每 N 步或重要阶段创建 checkpoint,限制最大工具调用、总 token、墙钟时间与重复失败。模型连续两次以相同参数调用失败工具时停止并报告。长任务可以异步运行,但必须支持取消;取消后关闭未完成资源,不能留下无人拥有的后台任务。

观测和评测

日志记录 task/call id、模型、effort、工具名、验证结果、延迟和 token,不记录密钥与完整敏感参数。指标包括任务成功、无效调用、工具错误、重复调用、人工批准、总成本和恢复成功。保留 mock 集成测试,覆盖错误参数、权限不足、超时、提示注入和进程重启。

不要只测模型最终回答。断言工具确实被调用或正确未调用、参数符合账户、checkpoint 可恢复、最终状态与真实数据一致。模型叙述“订单已发货”不能覆盖工具返回的未发货状态。

结论

GPT-5.5 工具教程的核心不是一个 API 参数,而是权限分层。固定快照和 effort,工具 schema 保持窄,应用验证并持有凭据,调用使用幂等与审批,长任务由数据库 checkpoint 管理。Responses API 连接模型状态,业务系统仍负责事实、授权和恢复。