内网环境下的本地 AI Agent 实践
上半年的一些反思
今年面试了一圈,最大的体会有两点:英语 和 AI 越来越重要。
业余时间自己在学英语,春节那会也搭了自己的 QwenPaw(OpenClaw)Agent,确实用到了个人生活中——帮自己处理邮件、追踪加密货币价格、定期发送系统心跳报告。
但说实话,这些能力一直没法应用到工作中,挺可惜的。
工作中的局限
仔细想想,主要卡在两个地方:
一、工厂环境没有外网
作为制造业的测试开发/DevOps,产线环境完全隔离,api.openai.com 都连不上,更别说用 QwenPaw 或者任何云端 AI 服务。
二、今年的工作内容偏基础架构 25 年主要精力在架线、服务器高可用、监控部署这些 DevOps 基建活。虽然扎实,但缺少一些能把 AI 结合进去的跨领域应用场景。
没有场景,就没有动力去深入折腾。
转机:新的工作调动
最近工作调动,新的岗位终于有了一些应用机会。
加上自己之前对 QwenPaw Agent 的搭建经验,这次想认真搞一搞——在自己的工作环境里跑一个能用的 AI Agent。
选型:两台闲置服务器
手头正好有两台闲置的服务器,配置还不错:
| 配置项 | 参数 |
|---|---|
| CPU | 双路 Intel Gold 5317(共 24 核 48 线程) |
| 内存 | 256 GB DDR4 |
| 系统 | Windows Server 2022 Standard |
| 显卡 | 无独显(纯 CPU 推理) |
和 AI 沟通后,推荐的部署方案是:
- Qwen3.5-122B-A10B —— 负责复杂深度推理任务
- Qwen3.6-35B-A3B —— 负责日常高频对话 + Agent 任务
没有 GPU,纯用 CPU 和 256GB 内存硬扛。
第一轮尝试:Ollama
先用 Ollama 部署,结果——
太慢了。
122B 模型跑起来基本不可用,一个字要等好几秒。35B 模型稍微好一点,但交互体验依然无法接受。CPU 推理和 GPU 推理的差距在这种大参数模型上体现得淋漓尽致。
第二轮尝试:Llama.cpp
换用 Llama.cpp 试了一下,速度比 Ollama 快了不少,勉强能用。
但遇到了新问题:
1. stop 参数无法全局配置
QwenPaw Agent 需要配置 {"stop":["<|im_start|>","<|im_end|>","<|tool_end|>"]} 来控制对话停止标记,但在 Llama.cpp 的服务端似乎没法全局设定这个参数,每次请求都需要传,而 Agent 框架不一定支持这么细的透传。
2. 无法连续思考
QwenPaw 客户端在和本地模型交互时,只能单句对话。一个问题推理完就挂了,没法连续思考——换句话说,Agent 的 Tool Calling、多轮交互这些核心能力,在本地模型上等于废了。
接下来的方向
折腾了一圈,总结了几条路可以继续走:
1. 记录 Ollama 和 Llama.cpp 的配置参数
把目前的配置文件、模型参数、性能数据都记下来,方便后续对比优化。
2. 尝试基于 WSL 部署 Ollama
Windows Server 上的 Ollama 是原生 Windows 版本,不确定性能是否受影响。试试在 WSL 2 里跑 Linux 版 Ollama,说不定速度能快一点。
3. 实在不行就接外网
如果本地部署始终达不到可用水平,那就只能想办法让工作环境能连外网,继续用 QwenPaw 的云端模型。
一些思考
这次折腾最大的收获倒不是成功部署了模型,而是对 AI Agent 在离线环境下的工作边界 有了更清晰的认识:
- 纯 CPU 推理大模型(>30B)目前还不太现实,尤其需要实时交互的场景
- Agent 对模型的能力要求比想象中高——不仅要会对话,还要能 Tool Calling、能连续多轮推理
- 如果你的工作环境能连外网,直接用 QwenPaw + 云端模型是最省心的方案
但也别灰心。随着模型量化技术的发展、硬件成本的下降,本地部署会越来越可行。先把基建搭好、参数记好,等技术成熟了随时可以切回来。
共勉。