基于 Qwen-Agent 与 OpenVINO™ 构建本地 AI 智能体
Qwen2 是阿里 Qwen 团队打造的大语言模型和大型多模态模型系列。说实话,这不仅仅是一个普通的文本模型——它具备了自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演,甚至能作为 AI Agent 进行互动。能力覆盖面相当广。

图:智能体中工具使用执行逻辑
这时候,Qwen-Agent 就登场了。它是一个专门用来构建 AI 智能体的开发框架。你可以基于它来开发 Agent 应用,充分利用通义千问(Qwen)在指令遵循、工具使用、规划、记忆这些方面的能力。而且,框架里已经内置了浏览器助手、代码解释器、自定义助手这些现成的示例应用。值得一提的是,OpenVINO™ 工具套件最近也作为 Qwen-Agent 的 LLM 推理后端,被集成到了 llm 组件中。那么,问题来了:既然 OpenVINO™ 已经入了局,在 Intel 硬件平台上,怎么用 OpenVINO™ 和 Qwen2 搭一个纯本地运行的 AI 智能体?下面就来拆解整个过程。
转化压缩 Qwen2 模型
模型转化是第一步。怎么操作?你需要先安装 Optimum-intel 组件,然后用它来导出并量化原始的 Qwen2 模型。具体的命令参考下面这个示例:
pip install optimum[openvino]optimum-cli export openvino --model Qwen/Qwen2-7B-Instruct--task text-generation-with-past --trust-remote-code --weight-format int4 {model_path}这步做完,模型就被压缩成了适合本地部署的格式,接下来的工作才有基础。
构建工具
Qwen-Agent 提供了一个很方便的注册工具机制。打个比方,如果你想自己加一个图片生成工具,可以按下面这个路子来:
- 先指定工具的
name、description和parameters。这里有个小细节需要注意:@register_tool('my_image_gen')中的 'my_image_gen' 会自动被添加为这个类的 .name 属性,成为工具的唯一标识。 - 然后实现
call(...)函数就行。
举个例子,下面这段代码定义了一个调用云端 API 的工具,用来根据输入请求生成图片:
@register_tool("image_generation")class ImageGeneration(BaseTool):description = "AI painting (image generation) service, input text description, and return the image URL drawn based on text information."parameters = [{"name": "prompt", "type": "string", "description": "Detailed description of the desired image content, in English", "required": True}]def call(self, params: str, **kwargs) -> str:prompt = json5.loads(params)["prompt"]prompt = urllib.parse.quote(prompt)return json5.dumps({"image_url": f"https://image.pollinations.ai/prompt/{prompt}"}, ensure_ascii=False)
工具注册好,接下来就是把它挂到 Agent 上了。
创建基于 OpenVINO™ 的 AI 智能体
Qwen-Agent 里所有的 LLM 都通过统一的接口 get_chat_model(cfg: Optional[Dict] = None) -> BaseChatModel 来调用。传入一个 LLM 配置文件就行。目前 OpenVINO™ 的 LLM 配置文件格式长这样:
llm_cfg = { "ov_model_dir": model_path, "model_type": "openvino", "device": device.value, "ov_config": ov_config, "generate_cfg": {"top_p": 0.8},}参数含义很明确:
- :就是第一步转化出来的 OpenVINO™ 模型路径。
ov_model_dir
- :指定为 "openvino"。
model_type
- :Intel 设备名称,目前支持 "cpu" 或 "gpu"。
device
- :OpenVINO infer request 里的可配置项。
ov_config
- :模型生成时的参数。
generate_cfg
框架已经提供了现成的智能体实现,比如 class Assistant。开发者只需要把定义好的 OpenVINO™ LLM 配置文件传进去,就能快速构建一个智能体应用:
bot = Assistant(llm=llm_cfg, function_list=tools, name="OpenVINO Agent")
代码量不大,但效果很关键。
完整示例和实现效果
基于上面这套流程,OpenVINO Notebook 仓库里备了完整示例,可以直接拿来测试。这个示例会理解用户意图,并调用多种预定义工具来完成任务——包括 Wikipedia 查询工具、天气查询工具、绘图工具。下面的截图就是在 Intel AIPC 上本地部署时的效果:

图:Qwen-Agent 与 OpenVINO™ 智能体示例
可以看到,在这个例子中,智能体首先会把用户的请求按任务拆解开,然后分别调用不同的工具来获取输出结果,最后把这些结果合并,作为最终答案反馈给用户。整个过程很清晰,也很符合人类的思维逻辑。
总结
AI 智能体作为通用人工智能的核心载体,本质上是模仿人类的思维逻辑,把复杂任务拆解,再借助外部工具逐个解决。通过 OpenVINO™ 和 Qwen-Agent,我们可以非常快捷地在本地构建一个 AI 智能体应用。这么做的好处很直接:一方面保护了用户数据隐私,另一方面响应速度更快。简单任务可以调本地工具处理,复杂任务则可以灵活调用云端资源处理。本地与云端的配合,让整套方案既有实用性,也有扩展性。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名