在本地跑通 Qwen-Agent:从安装到第一次 Function Calling 的完整路径

发布时间:2026/8/24 18:08:03
在本地跑通 Qwen-Agent:从安装到第一次 Function Calling 的完整路径 在本地跑通 Qwen-Agent从安装到第一次 Function Calling 的完整路径【免费下载链接】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场景切入想让大模型读文档、跑代码、调用你自己的内部接口Qwen-Agent 帮你省掉手动拼装模型、解析和工具调用的活。它是基于 Qwen 模型构建的 Agent 框架Function Calling、代码解释器、RAG 文档问答都开箱可用也可以整体对接你自己部署的本地模型服务。能力速览能力模块一句话说明典型使用场景Function Calling模型自己决定调哪个工具支持并行调用接天气、股票、内部 API 等业务接口Code Interpreter自主写 Python 并在 Docker 沙箱里执行数据分析、画图表RAG 文档问答直接读 PDF/Word/PPT也支持长文档检索技术文档、合同问答MCP通过配置接入外部 MCP 工具服务器文件系统、SQLite 等通用工具环境搭建三件事装框架、起本地模型服务、验证连通。GUI 版要求 Python 3.10 以上环境是 3.9 的话要么去掉 [gui]要么换 3.10。# 安装框架含 GUI、RAG、代码解释器、MCP 依赖 pip install -U qwen-agent[gui,rag,code_interpreter,mcp] # 想改源码的话从源码装 git clone https://gitcode.com/GitHub_Trending/qw/Qwen-Agent cd Qwen-Agent pip install -e . # 用 vLLM 起本地模型服务Ollama 也行改下基础地址即可 pip install vllm vllm serve Qwen/Qwen2.5-7B-Instruct --host 0.0.0.0 --port 8000 # 验证服务响应 curl http://localhost:8000/v1/models不想自己部署模型的话可以改用 DashScope 云服务设好 DASHSCOPE_API_KEY 环境变量后面步骤全不变只是 llm_cfg 里的模型配置换成云端那套。核心功能实战让模型调用你的工具它解决什么你不用写死什么时候调哪个工具的逻辑模型看你写的工具描述自己决定。注册一个自定义工具就两步写 description 和 parameters实现 call。内置工具代码解释器、文档解析等都是同一套写法实现在 qwen_agent/tools/可以照着抄。import json5 from qwen_agent.agents import Assistant from qwen_agent.tools.base import BaseTool, register_tool register_tool(get_price) class GetPrice(BaseTool): description 查询某只股票的当前价格 parameters [{name: symbol, type: string, description: 股票代码, required: True}] def call(self, params: str, **kwargs) - str: symbol json5.loads(params)[symbol] return json5.dumps({symbol: symbol, price: 12.5}, ensure_asciiFalse) llm_cfg { model: Qwen/Qwen2.5-7B-Instruct, model_server: http://localhost:8000/v1, api_key: EMPTY, } bot Assistant(llmllm_cfg, system_message用户问股价时用工具查询后再回答。, function_list[get_price]) for rsp in bot.run([{role: user, content: AAPL 现在多少钱}]): print(rsp)跑起来后模型会先发起一次 get_price 调用框架执行完把结果回填再输出最终答案。如果模型不调工具或者调错先确认模型本身支持函数调用——太小的模型容易把模板格式搞挂这种情况先换 Qwen3 或更大的模型跑通再回头调自己的工具。工具跑通之后下一步是把你的文件递给它看它能不能真回答问题。让它读 PDF 并回答Assistant 可以直接在消息里带文件短文档不用单独建向量库它现场解析。超长的文档上百页那种建议看 examples/ 目录里的 parallel_doc_qa 示例多路并行检索再汇总。from qwen_agent.agents import Assistant bot Assistant(llmllm_cfg) messages [{role: user, content: [{text: 用三句话总结这份 PDF 的核心要点}, {file: ./doc/quarterly_report.pdf}]}] for rsp in bot.run(messages): print(rsp)光读文档还不够很多时候还要让它真算一下。这里还有个现成的工具代码解释器。执行代码并产出图表这个工具在 Docker 沙箱里执行代码。这步别跳过——前提是你本机装好了 Docker 并且正在运行否则工具会超时首次调用要现场构建镜像耐心等一会儿。from qwen_agent.agents import ReActChat bot ReActChat(llmllm_cfg, function_list[code_interpreter]) messages [{role: user, content: [{text: 先 pd.head 看看这个文件再画折线图展示价格变化}, {file: ./data/stock_prices.csv}]}] for rsp in bot.run(messages): print(rsp)ReActChat 会先想要算什么再生成代码、执行、看输出决定要不要继续补一段。配置与调优可调参数基本都集中在 llm_cfg 里对照场景挑就行场景推荐模型服务说明个人开发机8GB 显存Qwen2.5-7B-Instruct 4-bit 量化单步工具调用和文档问答够用小团队服务器24GB 显存Qwen2.5-32B 或 Qwen3-30B-A3B多步工具调用成功率更高工具调用优先Qwen3-CodervLLM --enable-auto-tool-choice配合 use_raw_api: True不想部署模型DashScope 云服务只需 DASHSCOPE_API_KEY本地服务常用参数llm_cfg { model: Qwen/Qwen2.5-7B-Instruct, model_server: http://localhost:8000/v1, api_key: EMPTY, generate_cfg: { top_p: 0.8, # 采样参数常用 0.7~0.9 max_input_tokens: 8000, # 超了会截断历史别超过模型上下文 fncall_prompt_type: nous, # 工具调用模板默认 nous use_raw_api: False, # 改为 True 则让模型服务原生解析工具调用 } }踩坑记录1. 本地模型服务连不上现象一 run 就 Connection refused 或 404根因model_server 漏写了 /v1或者服务根本没起来解法改成 http://localhost:8000/v1先 curl 确认能通2. 工具调用解析失败现象模型回复里有工具调用块框架却当乱码处理根因vLLM 开了 --enable-auto-tool-choice两边都解析打架了解法Qwen3/QwQ 去掉该参数只有 Qwen3-Coder 才保留3. 代码解释器转半天没反应现象调用 code_interpreter 工具一直超时根因Docker 没启动或首次构建镜像慢解法确认 Docker 在运行首次就等构建完成之后复用容器4. GUI 装不上现象装 [gui] 时报 pydantic 版本冲突根因gradio 5 锁死了 pydantic2.9.2和主环境打架解法给 GUI 单独建 venv 装Python 3.10 以上写在最后Qwen-Agent 把模型、工具、Agent 三层拆开接上模型服务就能开始搭。更多可直接运行的样例看 examples/ 目录想自己写 Agent 就从 qwen_agent/agents/fncall_agent.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),仅供参考