deepseek-v3.2工具调用需显式传入tools和tool_choice参数,否则不启用;tools须为含type、name、description及严格json schema parameters的数组,tool_choice可选"auto"、"none"或指定函数,且不支持并行调用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

DeepSeek-V3.2 的 tool_choice 和 tools 参数必须显式传入
DeepSeek-V3.2 是目前唯一原生支持自主工具调用的开源模型,但它的工具能力不会默认启用。如果你没在请求体里带 tools 和 tool_choice,模型会直接忽略工具存在,哪怕你提示词里写了“请查天气”或“执行SQL”。
常见错误现象:提示词明确要求调用 Bash 或 SQL,但返回结果全是自然语言解释,没有 tool_calls 字段。
-
tools必须是数组,每个元素包含type(如"function")、function.name、function.description和function.parameters(JSON Schema 格式) -
tool_choice可选值为"auto"(默认)、"none"或{"type": "function", "function": {"name": "xxx"}} - 不支持 OpenAI 的
parallel_tool_calls: true,一次只触发一个工具调用
工具函数的 parameters 必须严格匹配 JSON Schema 规范
DeepSeek-V3.2 对 parameters 的校验比 OpenAI 更严格。如果字段类型写成 "string" 但实际传了数字,或者漏掉 "required" 数组,API 会直接返回 400 错误,而不是静默忽略。
使用场景:你想让模型调用一个查询数据库的函数,参数是 table_name(字符串)和 limit(整数)。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
- 错误写法:
"parameters": {"table_name": {"type": "string"}, "limit": {"type": "number"}}(缺required,且number不被识别) - 正确写法:
"parameters": {"type": "object", "properties": {"table_name": {"type": "string"}, "limit": {"type": "integer"}}, "required": ["table_name"]} - 注意:
"integer"才是合法类型,"number"会导致解析失败
外部数据接入需走 /v1/data/upload 接口,不能塞进 messages
DeepSeek 不允许把大段外部数据(比如 CSV 内容、PDF 文本、日志片段)直接拼进 messages 发送。这类数据必须先调用 /v1/data/upload 接口上传,拿到 dataset_id 后,再在 chat 请求中通过 context 字段引用。
性能影响:直接往 messages 塞 50KB 文本,会导致 token 计算膨胀、响应延迟翻倍,还可能触发长度截断。
- 上传接口地址:
POST https://api.deepseek.com/v1/data/upload - 上传后返回的
dataset_id需在 chat 请求中作为context.dataset_id传入 - 单次上传最大支持 10MB,但建议控制在 2MB 以内以保证解析稳定性
- 上传后的数据默认保留 7 天,过期自动清理
enable_thinking 参数仅对 deepseek-v4-pro 生效,且需配合 reasoning_effort
如果你在调用 deepseek-v4-pro 时想开启深度推理链(比如多步工具调用+中间验证),光传 enable_thinking: true 不够,必须同时指定 reasoning_effort 级别。
容易踩的坑:在 deepseek-chat 或 deepseek-v3.2 上强行加 enable_thinking,API 会忽略该字段,但不会报错——你根本意识不到它没生效。
-
reasoning_effort可选"low"、"medium"、"high";"high"模式下工具调用更激进,但也更耗 token - 该参数是 OpenAI 标准字段,应放在请求体顶层,不是
extra_body里 - 实测发现:
"high"下平均多产生 2~3 轮工具交互,但首 token 延迟增加约 400ms
tool_choice 强制指定 fallback 函数,而不是等它自己“想明白”。









