)
前言最近在做一个内部运维助手项目需要让AI真正调用外部工具干活而不只是聊天。最终选了Qwen3.7-Max原因很直接国内访问稳定、数据不出境、工具调用能力比上一代强不少。下面是完整搭建笔记代码全部可直接运行。一、环境配置安装依赖pip install openai httpx配置客户端from openai import OpenAI client OpenAI( api_keysk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 )二、定义工具以“查天气”和“发邮件”两个工具为例tools [ { type: function, function: { name: get_weather, description: 获取指定城市的实时天气, parameters: { type: object, properties: { city: {type: string, description: 城市名如北京} }, required: [city] } } }, { type: function, function: { name: send_email, description: 发送邮件, parameters: { type: object, properties: { to: {type: string, description: 收件人邮箱}, body: {type: string, description: 邮件正文} }, required: [to, body] } } } ]三、发起调用response client.chat.completions.create( modelqwen-max, messages[ {role: system, content: 你是一个运维助手可以查询天气和发送邮件。}, {role: user, content: 查一下北京今天的天气然后把结果发给 adminexample.com} ], toolstools, tool_choiceauto )四、处理返回结果模型只负责决定调用哪个工具真正执行必须由你的代码完成import json tool_calls response.choices[0].message.tool_calls for tool_call in tool_calls: name tool_call.function.name args json.loads(tool_call.function.arguments) if name get_weather: result f北京今天晴天25度 # 实际替换为API调用 elif name send_email: result f邮件已发送至{args[to]} # 实际替换为邮件发送逻辑 final client.chat.completions.create( modelqwen-max, messagesmessages [response.choices[0].message] [ {role: tool, tool_call_id: tool_call.id, content: json.dumps(result)} ] ) print(final.choices[0].message.content)五、Max与Plus选型对比对比项Qwen3.7 MaxQwen3.7 Plus模态纯文本文本图像视频上下文100万Token100万Token速度中等快3倍输入价格2.4元/百万Token0.4元/百万Token输出价格7.6元/百万Token1.6元/百万Token选型结论需处理图片/视频 → 选Plus纯文本高精度推理 → 选Max通用业务场景 → Plus性价比完胜六、踩坑提醒坑一工具定义中 parameters 必须同时包含 type、properties、required 三个字段。坑二多工具并行时用 tool_call.id 匹配结果不要依赖返回顺序。坑三长对话场景建议定期做摘要压缩否则Token消耗很快。写在最后AI大模型落地没有标准答案关键是从自身场景出发。“智能体来了” 团队专注大模型落地不生产模型而是做优质模型的“架构师”——复杂任务用旗舰模型简单任务用小模型实现成本与速度最优解。从Prompt工程到智能体工作流设计他们的实战经验或许能帮你少走弯路。FAQQ有免费额度吗A首次开通百炼可领取超7000万免费Tokens。QAPI兼容OpenAI吗A兼容将base_url改为百炼地址即可。QMax和Plus选哪个A有图片需求选Plus纯文本高精度选Max一般业务选Plus。