news 2026/9/16 19:54:47

AutoAgent 本地 LLM 接入实战:使用 Ollama 与 LM Studio 搭建零成本私有模型后端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AutoAgent 本地 LLM 接入实战:使用 Ollama 与 LM Studio 搭建零成本私有模型后端

AutoAgent 本地 LLM 接入实战:使用 Ollama 与 LM Studio 搭建零成本私有模型后端

【免费下载链接】AutoAgent"AutoAgent: Fully-Automated and Zero-Code LLM Agent Framework"项目地址: https://gitcode.com/GitHub_Trending/au/AutoAgent

本文以 AutoAgent(一个 Fully-Automated、Zero-Code 的 LLM Agent 框架)为对象,系统讲解如何将本地推理引擎 Ollama 与 LM Studio 接入框架,作为对话与任务执行的后端模型。读完本文,你将掌握本地模型拉取、环境变量配置、Docker 容器内联调,以及 WSL 网络穿透等一整套可落地的私有化部署方案,在完全本地、无需任何 API Key 的前提下跑通 AutoAgent 的完整能力。

AutoAgent 的模型接入机制:基于 LiteLLM 的统一抽象

在进入 Ollama / LM Studio 的具体配置之前,有必要先理解 AutoAgent 是如何消费"模型"的。与直接绑定某一家云厂商 SDK 不同,AutoAgent 通过LiteLLM对底层模型做统一抽象:无论模型来自 OpenAI、Anthropic、Gemini、Groq、DeepSeek,还是本地 Ollama、LM Studio,框架只认一套模型命名规范与两个核心环境变量。

  • COMPLETION_MODEL:指定要使用的 LLM 模型,模型名需遵循 Litellm 与 constant.py)。
  • API_BASE_URL:LLM Provider 的接口地址,默认None(即使用各厂商官方端点),本地模型场景下需显式指向http://localhost:11434(Ollama)或http://localhost:1234/v1(LM Studio)。

从源码看,这两个变量最终汇入 autoagent/core.py 的对话执行函数:create_params中同时携带"model": create_model"base_url": API_BASE_URL,然后交给litellm.completion完成真实请求(见 autoagent/core.py 与 autoagent/core.py)。也就是说,只要本地服务暴露了与 LiteLLM 兼容的 OpenAI 风格接口,AutoAgent 无需修改任何业务代码即可切换后端

此外 constant.py 中维护了三组模型兼容性名单,决定框架自动启用的工作模式:

  • NOT_SUPPORT_FN_CALL:包含o1-minideepseek-reasonerdeepseek-r1llamagrok-2,命中的模型默认关闭函数调用;
  • NOT_SUPPORT_SENDER:包含mistralgroq,命中的模型在消息中剔除sender字段;
  • MUST_ADD_USER:包含deepseek-reasonero1-minideepseek-r1,命中的模型会在对话中强制穿插 user 角色消息。

当本地模型(尤其带llama字样的模型)命中上述名单时,AutoAgent 会自动切换为非函数调用(non-function-calling)模式,将工具描述拼入提示词、用特定格式约束模型输出(见 autoagent/core.py),这正是本地小模型也能驱动 Agent 工具链的关键机制。

使用 Ollama 的本地 LLM

⚠️ 使用本地 LLM 时,AutoAgent 的功能表现可能受模型能力限制(例如弱模型对函数调用、多步骤推理的支持度有限)。

启动 Ollama 服务并拉取模型

首先确保本机已安装并运行 Ollama 服务。本指南默认你已通过ollama serve启动 Ollama;若以其他方式运行(例如 Docker 内),说明需相应调整。

模型名可以在 Ollama 的模型库中检索。以一个轻量示例模型为例:

ollama pull codellama:7b

更大的模型通常表现更好,但也会占用更多显存与内存。拉取完成后,可像这样检查已下载的模型:

~$ ollama list NAME ID SIZE MODIFIED codellama:7b 8fdf8f752f6e 3.8 GB 6 weeks ago mistral:7b-instruct-v0.2-q4_K_M eb14864c7427 4.4 GB 2 weeks ago starcoder2:latest f67ae0f64584 1.7 GB 19 hours ago

ollama list输出的NAME列是后续配置COMPLETION_MODEL时的模型标识依据。

在 AutoAgent 中配置 Ollama(CLI / 环境变量方式)

AutoAgent 的配置入口是.env环境变量文件(模板见 .env.template)或命令行前缀变量。要切换为本地 Ollama 模型,只需设置以下内容:

# .env 或命令行环境变量 COMPLETION_MODEL=ollama/codellama:7b # 注意 LiteLLM 前缀 "ollama/" API_BASE_URL=http://localhost:11434 # Ollama 默认端口

其中API_BASE_URL是可选的——设置后它还会用于在界面中展示可用的已安装模型列表;OPENAI_API_KEY等云厂商 Key 均不需要填写(可留空),因为请求不会离开本机。

随后按 README.md 的 CLI 模式说明启动即可:

COMPLETION_MODEL=ollama/codellama:7b API_BASE_URL=http://localhost:11434 auto main

auto main会启动包含 user mode、agent editor 与 workflow editor 的完整版 AutoAgent。如果你的模型命中 constant.py 中不支持函数调用的名单(如llama),框架会自动降级到非函数调用模式,无需手动干预;若确需手动控制,可通过FN_CALL环境变量显式开关(默认依据模型名自动判定,见 README.md)。

使用 Docker 运行(容器内访问宿主机 Ollama)

当 AutoAgent 以 Docker 容器方式运行时,容器内访问宿主机上的 Ollama 需要做一次网络桥接。参考 README.md 的 Docker 化思路,在docker run时添加额外参数:

docker run # ... --add-host host.docker.internal:host-gateway \ -e COMPLETION_MODEL=ollama/codellama:7b \ -e API_BASE_URL="http://host.docker.internal:11434" \ # ...

--add-host host.docker.internal:host-gatewayhost.docker.internal解析到宿主机网关,容器内的 AutoAgent 即可通过该地址访问宿主机 11434 端口上的 Ollama 服务。

从源码构建的开发模式

如果你在开发模式下运行 AutoAgent(不使用 Docker),配置方式更加直接。先按项目说明准备好环境(含 Python 依赖与.env文件,参考 .env.template),然后在.env中写入:

COMPLETION_MODEL=ollama/codellama:7b API_BASE_URL=http://localhost:11434

若 Agent 流程中还涉及向量检索等能力,可同步指定嵌入模型(AutoAgent 通过EMBEDDING_MODEL环境变量配置,默认text-embedding-3-small,见 constant.py):

EMBEDDING_MODEL=local

保存后启动 CLI 模式即可,前端默认监听本地端口。界面中的模型选择框应填写ollama list中列出的模型名并加上ollama/前缀;API Key 字段可以填任意占位字符串(如ollama),因为本地服务不校验密钥;Base URL 填写http://localhost:11434

使用 LM Studio 的本地 LLM

LM Studio 是另一款流行的本地推理工具,暴露 OpenAI 兼容的/v1接口,AutoAgent 可通过CUSTOM_LLM_PROVIDER=openai无缝接入。

启动本地服务器

设置步骤如下:

  1. 打开 LM Studio;
  2. 进入Local Server选项卡;
  3. 点击Start Server按钮;
  4. 从下拉列表中选择要使用的模型。

随后在 AutoAgent 的.env中设置以下配置:

COMPLETION_MODEL=openai/lmstudio API_BASE_URL=http://localhost:1234/v1 CUSTOM_LLM_PROVIDER=openai

Docker 部署

容器化运行时,将 Base URL 指向宿主机(LM Studio 默认监听 1234 端口):

docker run # ... -e COMPLETION_MODEL="openai/lmstudio" \ -e API_BASE_URL="http://host.docker.internal:1234/v1" \ -e CUSTOM_LLM_PROVIDER="openai" \ # ...

开发环境配置

非 Docker 开发模式下,直接在.env中写入:

COMPLETION_MODEL=openai/lmstudio API_BASE_URL=http://localhost:1234/v1 CUSTOM_LLM_PROVIDER=openai

完成后启动 AutoAgent 即可连接http://localhost:3000/使用,全程无需任何云端 API Key。

配置 Ollama 服务(WSL) {#configuring-ollama-service-wsl-zh}

在 WSL 环境中,Ollama 的默认配置只监听 localhost,这会导致 Docker 容器内的 AutoAgent 无法访问它。先验证 Ollama 是否正常运行:

ollama list # 获取已安装模型的列表 curl http://localhost:11434/api/generate -d '{"model":"[NAME]","prompt":"hi"}' # 例如 curl http://localhost:11434/api/generate -d '{"model":"codellama:7b","prompt":"hi"}' # 例如 curl http://localhost:11434/api/generate -d '{"model":"codellama","prompt":"hi"}' # 若只有一个标签,标签可省略

再测试是否允许"外部"(例如来自 Docker 容器内部)请求:

docker ps # 获取运行中的容器列表,为获得最准确的测试结果,选择 AutoAgent 沙盒容器 docker exec [CONTAINER ID] curl http://host.docker.internal:11434/api/generate -d '{"model":"[NAME]","prompt":"hi"}' # 例如 docker exec cd9cc82f7a11 curl http://host.docker.internal:11434/api/generate -d '{"model":"codellama","prompt":"hi"}'

如果容器内请求失败,说明 Ollama 仍只绑定在 localhost,需要修改服务配置。使用 sudo 权限编辑/etc/systemd/system/ollama.service(路径可能因 Linux 发行版而异):

sudo vi /etc/systemd/system/ollama.service

sudo nano /etc/systemd/system/ollama.service

[Service]段落中添加以下行:

Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_ORIGINS=*"

保存后重新加载配置并重启服务:

sudo systemctl daemon-reload sudo systemctl restart ollama

最后再次从容器内验证连通性:

ollama list # 获取已安装模型的列表 docker ps # 获取运行中的容器列表,为获得最准确的测试结果,选择 AutoAgent 沙盒容器 docker exec [CONTAINER ID] curl http://host.docker.internal:11434/api/generate -d '{"model":"[NAME]","prompt":"hi"}'

兼容性与注意事项

  • WSL 镜像网络模式:对于 WSL,可在 Windows 的 cmd 中运行以下命令将网络模式设置为 mirrored,然后重启 WSL:

    python -c "print('[wsl2]\nnetworkingMode=mirrored',file=open(r'%UserProfile%\.wslconfig','w'))" wsl --shutdown
  • 函数调用支持:本地模型是否启用函数调用由模型名自动判定。以llama等为后缀或前缀的本地模型会命中 constant.py 的NOT_SUPPORT_FN_CALL名单,AutoAgent 自动切换为非函数调用模式(见 autoagent/core.py);即便如此,也应优先选择对工具调用支持较好的模型(如较新的 instruct 系列),否则 Agent 的多步骤任务效果可能受限。

  • 消息格式兼容mistralgroq系模型不识别消息中的sender字段,框架会自动剔除(见 constant.py);本地拉取的 Mistral 模型若出现异常响应,可留意该机制是否被触发。

  • 配置持久化:CLI 方式的环境变量可通过.env文件固化(constant.py 会在启动时自动加载.env),避免每次启动重复书写;.env.template中列出的云端 API Key 在纯本地部署下均可留空。

  • 端口冲突与防火墙:Ollama 默认11434、LM Studio 默认1234,若本地端口被占用或宿主机防火墙拦截容器访问,需先排查端口监听与放行规则,再按上文 WSL 一节的方法验证连通性。

通过以上配置,AutoAgent 可以在完全离线、零 API Key 的环境下运行:本地推理引擎负责模型加载与生成,LiteLLM 抽象层负责协议适配,COMPLETION_MODEL/API_BASE_URL/FN_CALL三组变量即可完成全部接入工作。这套方案既适合个人开发者验证 Agent 框架,也可作为数据敏感场景下私有化部署的起点。

【免费下载链接】AutoAgent"AutoAgent: Fully-Automated and Zero-Code LLM Agent Framework"项目地址: https://gitcode.com/GitHub_Trending/au/AutoAgent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 19:53:59

GET请求URL编码问题解析与解决方案

1. 问题背景:GET请求中的URL编码陷阱上周排查一个线上故障时,遇到个典型的编码问题:前端通过GET请求传递包含特殊字符的参数时,服务端解析出现乱码。比如请求/search?q咖啡&size10,后端收到的q参数值变成了乱码。…

作者头像 李华
网站建设 2026/9/16 19:53:20

2026赤峰电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐

赤峰街头巷尾的电气防爆检测机构看似琳琅满目,实则鱼龙混杂。化工园区、油库加油站、矿山厂区、制药企业、危化品仓储场所开展防爆电气安全排查与生产验收时,大量无资质机构出具的检测报告往往被应急管理部门直接驳回,不仅延误工期&#xff0…

作者头像 李华
网站建设 2026/9/16 19:51:40

DeepSeek Harness插件全解析:8款必装工具与配置避坑指南

先把结论撂这儿:现在圈子里说的“DeepSeek Harness”,并不是某个官方套件,而是把DeepSeek的能力“接进”各种常见工具的一整套插件和配置方案。VSCode里写代码要接DeepSeek,浏览器看外文要翻译,Zotero里读PDF要总结&am…

作者头像 李华
网站建设 2026/9/16 19:49:56

VidBee 便携版使用指南:免安装下载视频,3 分钟跑起来

VidBee 便携版使用指南:免安装下载视频,3 分钟跑起来 【免费下载链接】VidBee Download video and audio from YouTube , TikTok , Twitter , Instagram , Facebook , Twitch , Bilibili , and 1000 sites—or import local media. Create searchable tr…

作者头像 李华