需明确定义工具结构化描述以支持千问模型自主调用:一、用json schema定义含name、description、parameters的工具元数据;二、通过dashscope sdk注册python函数;三、web前端桥接封装工具调用;四、用langchain统一管理多源工具;五、在百炼平台可视化配置http api工具。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望千问模型在响应中自主调用外部工具执行具体操作,则需先明确定义工具的结构化描述,使模型能准确理解其用途、输入参数和调用时机。以下是实现该目标的具体方法:
一、使用 JSON Schema 定义工具元数据
工具定义必须包含名称、描述、参数结构三要素,模型依据 description 判断是否调用,依据 parameters 确认输入格式。description 必须采用自然语言、具象化表达真实用途,避免抽象空泛表述。
1、编写符合 OpenAI Function Calling 格式的 JSON 对象,包含 name、description 和 parameters 字段。
2、parameters 字段需为 JSON Schema object 类型,明确每个参数的类型、是否必需、示例值及语义说明。
3、将工具定义列表作为 tools 参数传入千问 API 请求体,确保 model 支持 tool use 能力(如 qwen-plus 或 qwen-max)。
4、在 system prompt 中提示模型:“你可调用以下工具完成任务;若用户需求涉及实时数据、计算、系统操作等,请主动选择并填写参数。”
二、通过 DashScope SDK 注册自定义工具函数
DashScope Python SDK 提供 tool_config 与 function_calling 接口,支持将本地 Python 函数注册为可被模型识别并触发的工具。注册过程将函数签名自动映射为标准工具描述,降低手动编写 schema 的出错率。
1、编写具备明确输入输出的 Python 函数,例如 def get_weather(city: str) -> dict: ...。
2、使用 dashscope.Tool.register() 将该函数注册为工具,SDK 自动提取函数名、文档字符串和类型注解生成 description 与 parameters。
3、调用 dashscope.Generation.call() 时传入 tools=[get_weather],启用 tool_choice="auto" 模式。
4、模型返回 tool_calls 字段后,调用 dashscope.Tool.execute() 执行对应函数,并将结果注入 messages 继续推理。
三、在 Web 应用中通过前端桥接封装工具调用逻辑
当千问部署于浏览器或客户端环境时,可通过 JavaScript 注入方式预置工具能力,使模型输出的工具调用指令被前端拦截并转换为实际 API 请求,再将响应回传给模型上下文。
1、在网页全局作用域定义 window.qwenTools = { searchWeb: async (query) => { ... } } 对象,封装 fetch 或其他异步操作。
2、初始化千问 SDK 实例时配置 tool_mapping,将模型请求的 tool_name 映射至 window.qwenTools 中对应函数。
3、监听模型响应流,识别含 tool_calls 的 chunk,提取 name 与 arguments 后调用对应前端工具函数。
4、将工具执行结果以 message 角色为 tool 的格式追加至对话 history,触发模型生成最终回答。
四、利用 LangChain 工具链统一管理多源工具
LangChain 提供 Tool 抽象类与 AgentExecutor,可将 HTTP API、数据库查询、本地脚本等异构能力统一封装为标准工具对象,并交由千问驱动的 Agent 进行规划与调度。
1、继承 langchain_core.tools.BaseTool 类,重写 _run 方法实现具体逻辑,设置 name 和 description 属性。
2、将多个 Tool 实例组成 list,传入 create_tool_calling_agent(),指定 llm=dashscope.QwenLLM(...)。
3、调用 AgentExecutor.invoke({"input": "查一下北京今天气温"}),框架自动完成工具选择、参数解析、执行与结果注入。
4、所有工具调用日志与中间状态可通过 callbacks 参数捕获,便于调试 description 表述模糊导致误调用 或参数缺失问题。
五、在百炼平台通过可视化界面配置工具服务
阿里云百炼控制台提供图形化工具注册入口,无需编写代码即可完成外部 API 的接入、测试与发布,生成标准化工具描述供千问模型直接消费。
1、登录百炼控制台,进入「工具中心」→「创建工具」,选择「HTTP API」类型。
2、填写工具名称、面向模型理解的自然语言描述(非技术文档)、请求方法、URL 及 Header 配置。
3、在「参数定义」区域逐项添加 query、path、body 类型参数,标注必填项并填写示例值与语义说明。
4、点击「测试调用」验证连通性,成功后发布工具,复制工具 ID 并在千问应用配置中启用该工具。











