在 Docker 中运行自托管 AI 智能体:2026 年实践指南
如何在不耗费整个周末的情况下,在 Docker 中运行自托管 AI 智能体。架构详解、利弊权衡,以及 2026 年真正可用的方案。

为什么 Docker 是运行自托管 AI 智能体的首选方式
如果你决定在自己的基础设施上运行 AI 智能体,而不是按月支付 SaaS 费用,那么 Docker 几乎肯定是你的最终选择。2026 年,每个主流开源智能体运行时都会在仓库中附带 Dockerfile 或 docker-compose.yml。这一模式之所以成为行业共识,是因为容器同时解决了自托管智能体时面临的四个核心问题:Python 或 Node 的运行时版本、音频或视觉功能所需的系统依赖、向 Telegram 或 Slack Webhook 暴露的网络接口,以及智能体在重启后需要的持久化状态(数据库和向量存储)。
本文将介绍 2026 年在 Docker 中运行自托管 AI 智能体的实际情况:架构设计、值得关注的平台、你需要接受的权衡,以及能够在重启后存活的最低成本方案。本文面向有 Docker 使用经验、但尚未选定智能体技术栈的读者。
"自托管 AI 智能体"在实践中意味着什么
这个词涵盖的产品范围很广。在选择 Docker 镜像之前,先把它们分成三类。
工作流智能体是可视化或低代码平台,通过连接模块来组合智能体。n8n、Dify 和 Flowise 是典型代表。它们以 Web 应用的形式运行,你登录后在界面中编排并触发工作流。如果你需要图形界面和 400 多个预置集成,这类平台是不错的选择。
代码优先智能体框架是你用 Python 或 TypeScript 编写代码的库。LangChain/LangGraph、AutoGen、CrewAI 以及 OpenAI Agents SDK 都属于这一类。你将自己的代码打包为 Docker 镜像。如果你是开发者,希望完全掌控提示词、工具和状态机,这类框架更适合你。
运行时智能体是预构建好的智能体,你将其自托管后连接到自己的即时通讯应用(Telegram、Slack、WhatsApp、Signal、邮件)。Hermes Agent、OpenHands 和 Agent Zero 都属于这一类。你不需要自己编写智能体循环——它已经内置其中。你只需提供 API 密钥、一台服务器,然后从手机上与它对话。
三类产品的 Docker 配置方式大同小异,差异在于容器周边的配套设施:用于持久化记忆的数据库、用于语义搜索的向量存储,以及你所接入的即时通讯应用的 Webhook 接收器。

参考架构
几乎所有在 Docker 中运行的自托管 AI 智能体最终都长成这个样子:
| 组件 | 典型镜像 | 用途 |
|---|---|---|
| 智能体运行时 | 自定义镜像或 ghcr.io/<project>/<agent> |
智能体循环:接收输入、调用大语言模型、执行工具 |
| LLM 网关 | 本地用 ollama/ollama,或外部 API |
模型本体,或指向 OpenAI / Anthropic / OpenRouter 的代理 |
| 关系型数据库 | postgres:16 |
对话记录、用户状态、定时任务 |
| 向量存储 | qdrant/qdrant 或 Postgres 内置的 pgvector |
长期记忆、语义搜索、RAG |
| 反向代理 | traefik 或 caddy |
TLS 终止、Webhook 路由 |
| 消息适配器 | 内置于智能体镜像中 | Telegram、Slack、Discord、WhatsApp、Signal 连接器 |
你不必用到每一层。如果智能体只处理文本且使用外部 LLM API,可以跳过 Ollama。如果你的即时通讯应用支持长轮询而非 Webhook(Telegram 两者都支持),可以跳过反向代理。在单台 $5 VPS 上,最小可用技术栈是智能体运行时加上 Postgres,模型通过外部 API 调用——大约三到四个容器,放在一个 docker-compose.yml 里即可。
最简 docker-compose.yml
对于大多数个人或小团队的智能体,compose 文件大致是这个结构。将 your-agent-image 替换为你选择的运行时镜像。
services:
agent:
image: your-agent-image:latest
restart: unless-stopped
environment:
DATABASE_URL: postgres://agent:agent@db:5432/agent
MODEL_PROVIDER: openai
OPENAI_API_KEY: ${OPENAI_API_KEY}
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
depends_on:
- db
ports:
- "127.0.0.1:8080:8080"
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: agent
POSTGRES_PASSWORD: agent
POSTGRES_DB: agent
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
有三点需要特别说明。智能体端口绑定到 127.0.0.1 而非 0.0.0.0,因为来自公网的消息 Webhook 应该经过反向代理完成 TLS 终止,而不是直接打到裸容器端口。密钥存放在 compose 文件同级目录下的 .env 文件中(绝对不要提交到 git)。Postgres 数据卷使用具名卷,这样 docker compose 在重启时会保留数据;一旦该卷丢失,你的智能体记忆也会随之消失。
2026 年值得关注的方案
以下是 2026 年提供 Docker 镜像且具有持续发展势头的开源智能体技术栈简表。
| 项目 | 类型 | 许可证 | 消息集成 | 备注 |
|---|---|---|---|---|
| Hermes Agent | 运行时 | MIT | Telegram、Slack、Discord、WhatsApp、Signal、邮件 | 持久化记忆、BYOK 模型服务商、自主技能创建 |
| n8n | 工作流 | Sustainable Use | 400 多个节点 | 可视化工作流构建器,集成目录丰富 |
| Dify | 工作流 | Apache 2.0 | Web 界面、可嵌入组件 | RAG 优先,提示词编排,内置监控 |
| Flowise | 工作流 | Apache 2.0 | Web 界面、REST/Slack/Telegram 节点 | 拖拽式 LangChain |
| LangGraph | 框架 | MIT | 自行接入 | 代码优先,深度状态图 |
| AutoGen | 框架 | CC-BY 4.0(微软) | 自行接入 | 多智能体对话 |
| OpenHands | 运行时 | MIT | Web 界面、IDE | 在沙箱化 Docker 中运行的软件工程智能体 |
| Agent Zero | 运行时 | MIT | Web 界面、终端 | 自主计算机操控智能体 |
这种分类很重要,因为正确的选择取决于你使用智能体的目的。如果你想用 14 个步骤和 5 个外部 API 自动化某个业务流程,工作流平台是正确选择。如果你在构建自定义产品,框架更合适。如果你想要一个通过即时通讯应用住在你手机里、并且记住你的个人智能体,运行时才是正确答案。
对于以消息为主的个人用户场景,Hermes Agent 与 n8n 的工作流侧对比和与 LangChain 的框架侧对比均有专文介绍。
真实的权衡
在 Docker 中自托管并非免费,即便二进制文件本身不收费。以下是 2026 年诚实的权衡清单:
你负责保证服务可用。 托管型智能体服务商会监控进程、重启崩溃的容器,并在凌晨 3 点发布故障时叫醒值班人员。在自托管 VPS 上,这些事情都要你自己承担,即使你配置了 restart: unless-stopped。Docker 会重启容器,但它无法修复损坏的 Postgres 数据卷,也无法处理过期的 Telegram bot token。
你完全拥有数据。 这正是让大多数读者觉得值得接受上述权衡的优势。你的对话记录、客户笔记、联系人列表——除了你选择的 LLM 服务商之外,不会触及任何第三方。在欧盟 VPS 上运行的欧盟用户无需额外手续即可实现 GDPR 数据驻留。在自有硬件上运行的医疗或会计从业者,对于"数据存放在哪里"这个问题有了清晰的答案。
你负责模型账单。 使用自己的 API 密钥(BYOK)时,个人智能体每月通常只需几美元,而托管型同等产品往往收取 $20 以上。反过来,你需要给 OpenAI 或 Anthropic 账户充值并随时关注余额。
你负责升级。 拉取新镜像只是一条命令,但阅读更新日志和迁移数据库 schema 则不然。每隔几个月预留 15 分钟的维护窗口。
你不拥有 LLM 本身。 除非你在本地 GPU 上运行 Ollama 或 vLLM,否则模型本身仍然是对 OpenAI、Anthropic、Google、Mistral 或 OpenRouter 聚合服务的 API 调用。2026 年的自托管通常意味着自托管运行时,而非自托管模型权重。这完全没问题——运行时才是 90% 数据敏感性的所在。
如果你觉得上述权衡可以接受,那么收益确实显著。与同等 SaaS 相比,自托管基础设施在 18 个月内的总拥有成本可降低约 55%,在模型本地运行时延迟优势约为 18 毫秒。对大多数读者而言,成本优势会更早显现——大约在第三个月左右。
最低成本方案长什么样
以下是 2026 年单人自托管智能体的实用基准配置:
- 月费 $5 到 $10 的 VPS(Hetzner、Vultr、Contabo),2 GB 内存
- 安装 Docker 和 Docker Compose
- 反向代理(Caddy 是自动 TLS 最简单的选择),监听 443 端口
- 一个智能体运行时容器 + 一个 Postgres 容器
- 充值 $5 到 $10 的模型 API 密钥
- 一个消息机器人(Telegram bot 是上手最快的)
每月总费用:大约 $7 到 $20,具体取决于使用量,其中 $4 到 $10 是 API token 费用,其余是 VPS 费用。有 Docker 基础的话,整个搭建过程需要 15 到 30 分钟;没有基础的话,可能需要一个晚上。VPS 规格选择的计算方法在我们专门介绍低成本 VPS 托管 AI 智能体的文章中,自托管与托管服务的费用对比分析在这篇文章里。

什么情况下自托管是错误选择
以下几种情况,Docker 方案并不是正确答案。
- 你需要零运维介入,团队对任何停机都无法容忍。那就付费使用托管运行时。
- 你需要供应商 SLA 和可拨打的客服电话。选托管。
- 你没有耐心花超过一个小时完成初始搭建。选托管。
- 你的智能体需要明天就弹性扩展到数千个并发用户。支持 Kubernetes 的托管运行时值得溢价购买。
对于其他所有人——独立创业者、独立开发者、小型团队、注重隐私的专业人士、技术爱好者——小型 VPS 上的 Docker 是控制力与搭建时间比值最优的路径。
Hermes 在其中的定位
Hermify 是一个 MIT 许可的自托管 AI 智能体运行时,以 Docker 镜像形式交付。你提供自己的模型服务商密钥(OpenAI、Anthropic、OpenRouter、Mistral 或其他),在 VPS 或自有机器上运行容器,通过 Telegram、Slack、Discord、WhatsApp、Signal 或邮件与之对话。它在对话之间保持持久化记忆,从你的使用习惯中学习可复用的技能,其余时间则静静运行、不打扰你。它是上述运行时列表中的选项之一,恰好也是我们自己维护的那个。
如果你想要的正是"住在手机里的个人智能体"这种形态,而且愿意花一个小时把 Docker 容器架在反向代理后面,请立即开始使用 Hermify。如果你宁愿完全跳过 VPS 环节、让我们帮你运行,托管套餐会接管容器、Postgres、TLS 和更新,而你依然使用自己的模型密钥。
参考资料
- Self-hosted AI Starter Kit - n8n / GitHub
- Docker for AI: The Agentic AI Platform - Docker
- Compose for Agents - docker/compose-for-agents GitHub
- Self-Hosting AI in 2026: 55% TCO Reduction - DEV Community
- 12 Best Open Source AI Agents You Can Self-Host in 2026 - Paxrel
- How to Self-Host n8n with Docker - DEV Community
- Agent Zero AI - Open Source Agentic Framework