千问系列模型原生支持工具调用,可通过openai兼容接口、langchain框架、dashscope原生接口、ollama本地部署及context cache优化五种方式实现。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

千问系列模型原生支持工具调用(Tool Use)能力,可依据用户指令自动识别意图、生成结构化函数调用请求,并协同外部工具完成真实世界操作。以下是实现该能力的具体方式:
一、通过OpenAI兼容接口启用tools参数
该方式适用于使用openai兼容-chat或openai兼容-responses接口的场景,模型将根据提供的tools定义自动决定是否调用及调用哪个工具。
1、在API请求体中传入包含name、description、parameters字段的tools数组;
2、确保model参数指定为支持tool calling的千问版本,例如qwen3.5-instruct或qwen2.5-7b-instruct;
3、发送请求后,模型可能返回function_call字段,其中含name与arguments;
4、服务端需解析该字段,执行对应工具逻辑,并将结果以tool_message格式重新提交至对话上下文。
二、基于LangChain框架集成自定义工具
LangChain提供标准化tool抽象,可将任意Python函数封装为模型可调用的工具,适用于需要灵活扩展技能生态的本地部署场景。
1、定义工具函数,例如调用language_tool_python进行语法纠错;
2、使用@tool装饰器或继承BaseTool类完成工具注册;
3、将工具列表传入AgentExecutor初始化参数;
4、启动Agent时,千问模型将根据用户输入动态选择并调用已注册工具。
三、使用DashScope原生接口配置function calling
DashScope是阿里云百炼平台提供的原生接口,对千问模型的工具调用支持最完整,包括显式缓存、结构化输出强制约束等高级特性。
1、调用dashscope.chat.completions.create方法;
2、在messages中嵌入system角色说明可用工具及其用途;
3、在request参数中设置enable_function_calling=True;
4、响应中若含function_call内容,需按规范构造tool_output并发起下一轮调用。
四、通过Ollama本地运行千问模型并启用工具调用
在离线环境中使用Ollama部署qwen3.5系列GGUF量化模型时,可通过Modelfile声明tools schema,使模型具备本地工具调度能力。
1、下载qwen3.5:latest或qwen2.5-7b-instruct-q4_k_m模型;
2、编写Modelfile,使用PARAMETER tools定义JSON Schema格式的工具描述;
3、运行ollama create命令构建支持tool calling的自定义模型;
4、使用ollama run调用该模型,输入含工具触发意图的提示词。
五、利用Context Cache优化多轮工具调用性能
当连续多次调用同一工具链或重复加载相同上下文时,启用上下文缓存可显著降低token消耗与延迟。
1、在DashScope请求中设置context_cache={'enable': True, 'type': 'explicit'};
2、首次请求后获取cache_id并记录有效期(默认5分钟);
3、后续请求携带cache_id与相同前缀输入,系统将复用缓存计算结果;
4、命中隐式缓存时,输入token费用按标准价20%计费;显式缓存命中则仅收取10%费用。











