第一次部署 Qwen-Agent?把 llm_cfg 里 5 个字段逐项讲清,让本地模型跑起来
第一次部署 Qwen-Agent把 llm_cfg 里 5 个字段逐项讲清让本地模型跑起来【免费下载链接】Qwen-AgentAgent framework and applications built upon Qwen3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen-Agent刚跑完 examples/assistant_qwen3.py终端吐出一串 ValueError。别慌Qwen-Agent 里这类报错九成是 llm_cfg 少填一个字段。这篇把模型部署配置拆成 5 个字段读完能自己在本地与远程接口间切换。 先跑通再讲道理Qwen-Agent 的 llm_cfg 配置字段逐项说明最快的路子是先接远程接口不吃显卡。下面这段贴进去就能启动import os from qwen_agent.agents import Assistant llm_cfg { model: qwen-plus, model_type: qwen_dashscope, api_key: os.getenv(DASHSCOPE_API_KEY), } bot Assistant(llmllm_cfg) print(list(bot.run(messages[{role: user, content: 一句话介绍自己}]))[-1])所有后端的统一入口是get_chat_model它按model_type查 LLM_REGISTRY 注册表qwen_agent/llm/init.py 第 61 行。model_type相当于接口的门牌号决定这份配置被派给哪个后端类。上面 5 个字段逐个看字段是什么这样填的原因漏填的后果model要调用的模型名必须与服务端一致transformers 后端里它直接当本地目录用transformers 后端第 43-44 行直接抛 ValueErrormodel_type后端路由键对应 qwen_agent/llm/ 下注册的后端走推断规则推断失败报 Invalid model cfgllm/init.py 第 100 行api_key接口凭证显式传入最稳dashscope 后端也会回退读环境变量qwen_dashscope.py 第 170 行以 EMPTY 身份请求首次调用即鉴权失败device推理设备仅 transformers 用有卡填cuda没卡填cpu默认cputransformers_llm.py 第 71 行generate_cfg生成参数用max_new_tokens控制生成长度默认 2048transformers_llm.py 第 148 行再补一句推断规则。model_type缺省时由 llm/init.py 兜底模型名含-vl走视觉后端第 85 行含qwen走 DashScope第 95-98 行。兜底归兜底生产配置还是建议显式写model_type别让请求靠字符串匹配被派路。换个场景配置怎么动本地模型路径 vs 远程 API 接口场景 A本地跑模型。只动 3 个字段- model: qwen-plus, - model_type: qwen_dashscope, - api_key: os.getenv(DASHSCOPE_API_KEY), model: ./models/Qwen3-4B, model_type: transformers, device: cuda,model变成本地目录后transformers 后端用AutoConfig.from_pretrained从该目录加载transformers_llm.py 第 54 行。这里有个坑切到本地模型时api_key那行记得删掉本地加载用不上这个字段。跑之前先验证目录能打印出 architectures 列表说明目录可用python -c from transformers import AutoConfig; print(AutoConfig.from_pretrained(./models/Qwen3-4B).architectures)还有一处联动transformers 后端读device用的是cfg.get(device, cpu)第 71 行不写就落在 CPU 上。4B 的模型在 CPU 上慢但至少不会炸。场景 B自部署 vLLM走 OAI 兼容接口。这个场景下model_type可以省- model_type: qwen_dashscope, - api_key: os.getenv(DASHSCOPE_API_KEY), model: Qwen3-32B, model_server: http://localhost:8000/v1, api_key: EMPTY,model_server以 http 开头时llm/init.py 第 77-81 行会自动派给 oai 后端路由字段不用手写。先验证服务curl http://localhost:8000/v1/models能列出模型再接线。服务若要鉴权把EMPTY换成真实 key不写api_key时 oai 后端会回退读OPENAI_API_KEY环境变量oai.py 第 50 行。 报错了按这个顺序查别急着改先看这一行错误从哪一层抛出来再定位对应字段。下面 3 行按出现频率排从上往下查症状可能原因修复动作ValueError: Please set model_type from [...]model_type不在注册表或拼写错误对照 llm/init.py 的注册列表改成qwen_dashscope、transformers等有效名第 68 行改了model_server为本地 vLLM 地址请求却仍发往 DashScope显式写的model_type优先生效推断逻辑被跳过删掉model_type字段交给第 77-81 行推断注意api_key的读取源同步变成OPENAI_API_KEYoai.py 第 50 行两处要一起改本地模型配device: cuda加载时 OutOfMemoryError模型规模超出显存先把device改cpu验证链路通再换更小的模型transformers_llm.py 第 71 行实在对不上号就从model_type和model_server这一对查起。这俩是联动关系改一不改正请求就会走到错误的门。跑通之后Qwen-Agent 的进阶路径裸聊跑通后剩下的都是配置的变体。已经跑通的话可以试试给助手挂上工具看 examples/assistant_qwen3.py 第 64-78 行的tools列表MCP 服务与 code_interpreter 的写法都在里面。摸清全部模型后端qwen_agent/llm/ 目录下每个文件一个后端看register_llm的装饰器名就是可用的model_type。验证 API 连通性直接运行 tests/llm/ 下的 test_dashscope.py、test_oai.py比手写脚本快。【免费下载链接】Qwen-AgentAgent framework and applications built upon Qwen3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen-Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考