实测可靠性
哪些能用,哪些还不能
函数调用由 genmux 模拟实现——工具被渲染进 system prompt,回复再解析回 OpenAI 的 tool_calls——所以一份诚实的清单比一个打勾更有意义。
| 特性 | 状态 | |
|---|---|---|
| tools、tool_choice、tool_calls、role: tool | 可用 | 在标记 tools: true 的模型上可用(见上方表格);最多 128 个工具、定义总量 ≤ 64 KiB。其他模型返回 400 tools_unsupported。 |
| 流式工具调用 | 可用 | delta.tool_calls 分块与 OpenAI 完全一致,finish_reason 为 tool_calls。 |
| JSON 模式 | 可用 | response_format 的 json_object 和 json_schema,在非流式回复上校验并自动重试一次;不能与 tools 同时使用。 |
| OpenAI 错误结构 | 可用 | 对话路由返回 {"error": {message, type, code, param, request_id}},客户端的重试逻辑能识别限流和额度不足。 |
| 较大的 max_tokens | 可用 | 超过模型 max_output_tokens 的值会被收敛而不是拒绝。工具模型的默认回复预算是 8192 token。 |
| tool_choice: required / 指定函数 | 部分可用 | 这是一条模型通常会遵守的指令;小模型偶尔会改用自然语言作答。智能体会重试,实际中很少见。 |
| 并行工具调用 | 部分可用 | 模型通常每轮只发一个调用;parallel_tool_calls 会被接受但忽略。智能体是循环工作的,任务依然能完成。 |
| n > 1、logprobs、旧版 functions | 暂不支持 | 以 400 unsupported_parameter 拒绝。stream_options、seed、user、metadata、store 和 logit_bias 会被接受但忽略。 |
| Claude Code、Codex CLI | 暂不支持 | 它们使用 Anthropic Messages 和 OpenAI Responses API,本接口尚未提供——即将支持。 |
实测可靠性
2026年9月7日 通过真实 API 对每个模型跑了 20 个智能体风格的任务:写入含多行代码和 Unicode 的文件、带引号的 shell 命令、嵌套参数、强制与禁止的工具选择、一次完整的工具往返,以及一次流式写入。
每个模型都能跑通基本循环——调用、结果、作答,流式与否都一样。失败都出在模型行为上,多数是忽略 tool_choice: required,而不是解析问题。我们每次发布前都会重跑这套用例,只有通过率高于 90% 的模型才会留在列表里。