上一篇 下一篇 分享链接 返回 返回顶部

从零上线 AI Agent:Docker Compose 一键部署实战指南

发布人:慈云数据-客服中心 发布时间:22小时前 阅读量:4

AI Agent 部署完整教程|一键部署

随着大模型能力的快速提升,AI Agent 已经从“聊天机器人”逐渐演变为可以执行任务、调用工具、检索知识库、自动规划流程的智能应用。无论是企业内部知识助手、客服机器人、自动化办公助手,还是数据分析、代码生成、运维告警处理,AI Agent 都能在实际业务中发挥重要作用。

本文将以“快速上线一个可用的 AI Agent 服务”为目标,提供一套完整的部署教程。你可以通过 Docker Compose 实现一键部署,快速搭建一个包含 Web 服务、数据库、向量数据库、环境变量配置和反向代理的 AI Agent 运行环境。

说明:本文偏向通用型部署方案,适用于大多数 AI Agent 项目,例如基于 LangChain、LlamaIndex、Dify、FastAPI Agent、自研 Agent 框架等。如果你使用的是特定开源项目,也可以参考本文的部署思路进行调整。


一、AI Agent 是什么?

AI Agent 可以简单理解为“具备自主执行能力的 AI 应用”。传统的大模型聊天应用通常只负责回答用户问题,而 AI Agent 不仅能回答,还可以根据目标进行任务拆解、工具调用和结果反馈。

一个典型的 AI Agent 通常包含以下几个核心能力:

  1. 理解用户意图
    能够识别用户输入的目标、约束条件和上下文信息。

  2. 任务规划
    将复杂任务拆解为多个可执行步骤,例如搜索资料、读取文档、调用接口、生成报告等。

  3. 工具调用
    可以调用搜索引擎、数据库、API、代码解释器、知识库、邮件系统等外部工具。

  4. 记忆能力
    支持短期会话记忆和长期知识存储,提升连续对话体验。

  5. 结果反馈与迭代
    根据执行结果继续调整策略,直到完成用户目标。

因此,部署 AI Agent 不只是部署一个聊天页面,还需要考虑模型服务、后端接口、数据库、向量检索、任务队列、安全认证、日志监控等多个部分。


二、部署前准备

在开始部署之前,需要准备一台服务器。推荐配置如下:

项目 推荐配置
操作系统 Ubuntu 20.04 / 22.04 / Debian 11+
CPU 2 核及以上
内存 4GB 起步,推荐 8GB+
磁盘 30GB 起步,推荐 50GB+
网络 可访问外网
部署方式 Docker + Docker Compose

如果你只是部署一个调用云端大模型 API 的 Agent,服务器配置不需要太高;如果你计划本地部署大模型,例如 Qwen、Llama、DeepSeek、Yi 等,则需要更高的 GPU 配置。

本文默认使用云端模型 API,例如 OpenAI、DeepSeek、通义千问、智谱、Claude 等。


三、整体部署架构

本文的部署架构如下:

用户浏览器
   │
   ▼
Nginx 反向代理
   │
   ▼
AI Agent Web/API 服务
   │
   ├── PostgreSQL 数据库
   ├── Redis 缓存/任务队列
   ├── 向量数据库 Milvus / Chroma / Qdrant
   └── 大模型 API

各模块作用如下:

  • Nginx:提供域名访问、HTTPS、反向代理。
  • AI Agent 后端服务:处理用户请求、调用大模型、执行 Agent 逻辑。
  • PostgreSQL:存储用户、会话、任务、配置等结构化数据。
  • Redis:用于缓存、异步任务队列、临时会话状态。
  • 向量数据库:存储知识库文档向量,用于 RAG 检索增强。
  • 大模型 API:作为 Agent 的核心推理能力来源。

四、安装 Docker 和 Docker Compose

如果你的服务器还没有安装 Docker,可以使用以下命令一键安装。

curl -fsSL https://get.docker.com | bash

安装完成后,启动 Docker:

systemctl enable docker
systemctl start docker

检查 Docker 是否安装成功:

docker -v

安装 Docker Compose:

sudo apt update
sudo apt install docker-compose-plugin -y

检查版本:

docker compose version

如果能够正常输出版本号,说明环境准备完成。


五、创建项目目录

在服务器中创建一个部署目录:

mkdir -p /opt/ai-agent
cd /opt/ai-agent

建议目录结构如下:

/opt/ai-agent
├── docker-compose.yml
├── .env
├── nginx
│   └── default.conf
├── data
│   ├── postgres
│   ├── redis
│   └── qdrant
└── logs

创建目录:

mkdir -p nginx data/postgres data/redis data/qdrant logs

六、编写环境变量配置

创建 .env 文件:

vim .env

写入以下内容:

# 基础配置
APP_NAME=AI-Agent
APP_ENV=production
APP_PORT=8000

# 域名配置
DOMAIN=agent.example.com

# 数据库配置
POSTGRES_DB=ai_agent
POSTGRES_USER=ai_agent_user
POSTGRES_PASSWORD=请修改为强密码
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

# Redis 配置
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=请修改为强密码

# 向量数据库配置
QDRANT_HOST=qdrant
QDRANT_PORT=6333

# 大模型 API 配置
LLM_PROVIDER=openai
OPENAI_API_KEY=sk-请替换为你的密钥
OPENAI_BASE_URL=https://api.openai.com/v1
MODEL_NAME=gpt-4o-mini

# 应用安全配置
JWT_SECRET=请修改为随机长字符串
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=请修改管理员密码

注意事项:

  1. POSTGRES_PASSWORDREDIS_PASSWORDJWT_SECRETADMIN_PASSWORD 必须修改。
  2. 如果使用 DeepSeek,可以将配置改为:
LLM_PROVIDER=deepseek
OPENAI_API_KEY=sk-你的DeepSeek密钥
OPENAI_BASE_URL=https://api.deepseek.com
MODEL_NAME=deepseek-chat
  1. 如果使用通义千问或其他兼容 OpenAI API 的模型服务,也可以通过修改 OPENAI_BASE_URLMODEL_NAME 适配。

七、编写 Docker Compose 文件

创建 docker-compose.yml

vim docker-compose.yml

写入以下内容:

services:
  ai-agent:
    image: your-ai-agent-image:latest
    container_name: ai-agent
    restart: always
    env_file:
      - .env
    ports:
      - "8000:8000"
    volumes:
      - ./logs:/app/logs
    depends_on:
      - postgres
      - redis
      - qdrant
    networks:
      - ai-agent-net

  postgres:
    image: postgres:15
    container_name: ai-agent-postgres
    restart: always
    environment:
      POSTGRES_DB: ${POSTGRES_DB}
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      - ai-agent-net

  redis:
    image: redis:7
    container_name: ai-agent-redis
    restart: always
    command: redis-server --requirepass ${REDIS_PASSWORD}
    volumes:
      - ./data/redis:/data
    ports:
      - "6379:6379"
    networks:
      - ai-agent-net

  qdrant:
    image: qdrant/qdrant:latest
    container_name: ai-agent-qdrant
    restart: always
    volumes:
      - ./data/qdrant:/qdrant/storage
    ports:
      - "6333:6333"
      - "6334:6334"
    networks:
      - ai-agent-net

networks:
  ai-agent-net:
    driver: bridge

这里的 your-ai-agent-image:latest 需要替换成你的 Agent 项目镜像。

如果你是自研项目,可以在项目根目录构建镜像:

docker build -t your-ai-agent-image:latest .

如果你使用开源项目,请参考对应项目的镜像名称,例如:

image: ghcr.io/example/ai-agent:latest

八、一键部署脚本

为了实现真正的一键部署,我们可以创建一个 deploy.sh 脚本。

vim deploy.sh

写入以下内容:

#!/bin/bash

set -e

echo "========== AI Agent 一键部署开始 =========="

cd /opt/ai-agent

echo "1. 检查 Docker 是否安装..."
if ! command -v docker &> /dev/null; then
  echo "未检测到 Docker,开始安装..."
  curl -fsSL https://get.docker.com | bash
  systemctl enable docker
  systemctl start docker
else
  echo "Docker 已安装"
fi

echo "2. 检查 Docker Compose 是否可用..."
if ! docker compose version &> /dev/null; then
  echo "未检测到 Docker Compose,开始安装..."
  apt update
  apt install docker-compose-plugin -y
else
  echo "Docker Compose 已可用"
fi

echo "3. 拉取镜像..."
docker compose pull || true

echo "4. 启动服务..."
docker compose up -d

echo "5. 查看服务状态..."
docker compose ps

echo "========== 部署完成 =========="
echo "请访问:http://服务器IP:8000"

赋予执行权限:

chmod +x deploy.sh

执行部署:

./deploy.sh

等待容器启动完成后,查看运行状态:

docker compose ps

如果所有服务状态都是 Up,说明部署成功。


九、配置 Nginx 反向代理

如果你希望通过域名访问,而不是使用 服务器IP:8000,可以配置 Nginx。

安装 Nginx:

apt update
apt install nginx -y

创建配置文件:

vim /etc/nginx/conf.d/ai-agent.conf

写入:

server {
    listen 80;
    server_name agent.example.com;

    client_max_body_size 50M;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
    }
}

agent.example.com 替换为你的真实域名。

测试配置:

nginx -t

重载 Nginx:

systemctl reload nginx

此时可以通过:

http://agent.example.com

访问你的 AI Agent 服务。


十、配置 HTTPS 证书

生产环境强烈建议开启 HTTPS。可以使用 Certbot 免费申请 Let’s Encrypt 证书。

安装 Certbot:

apt install certbot python3-certbot-nginx -y

申请证书:

certbot --nginx -d agent.example.com

根据提示输入邮箱并同意协议即可。

证书申请成功后,Certbot 会自动修改 Nginx 配置,并开启 HTTPS。

测试自动续期:

certbot renew --dry-run

如果没有报错,说明证书自动续期正常。


十一、初始化数据库

部分 AI Agent 项目首次启动后需要执行数据库迁移,例如:

docker exec -it ai-agent bash

进入容器后执行:

python manage.py migrate

或者:

alembic upgrade head

不同项目命令可能不同,常见命令包括:

npm run migrate
pnpm db:migrate
python -m app.migrate

如果项目支持自动初始化,启动容器后会自动完成表结构创建。

你可以通过查看日志确认:

docker logs -f ai-agent

当日志中出现类似内容时,说明后端服务已经成功运行:

Application startup complete
Server running on 0.0.0.0:8000

十二、配置知识库与 RAG 检索

AI Agent 的一个重要能力是基于知识库回答问题,也就是常见的 RAG。

RAG 的基本流程如下:

上传文档
  ↓
文档切分
  ↓
向量化
  ↓
存入向量数据库
  ↓
用户提问
  ↓
向量检索相关内容
  ↓
大模型结合上下文回答

常见支持上传的文档格式包括:

  • PDF
  • Word
  • Markdown
  • TXT
  • HTML
  • CSV
  • Excel

在部署完成后,你可以进入管理后台,创建知识库,并上传企业文档、产品手册、FAQ、接口文档等资料。

为了提升检索质量,建议:

  1. 文档内容尽量结构化
    标题、段落、列表越清晰,切分效果越好。

  2. 避免上传重复文档
    重复内容会影响检索结果质量。

  3. 合理设置切分长度
    常见 chunk size 可以设置为 500~1000 tokens。

  4. 设置合适的 Top K
    一般检索前 3~8 条相关内容即可。

  5. 使用质量较高的 Embedding 模型
    中文场景建议选择支持中文效果较好的向量模型。


十三、Agent 工具调用配置

一个真正可用的 AI Agent 往往需要接入工具。常见工具包括:

工具类型 用途
搜索工具 联网搜索实时信息
数据库工具 查询业务数据
HTTP API 调用第三方接口
代码执行器 执行 Python 或数据分析
邮件工具 自动发送邮件
日历工具 创建日程
工单工具 创建客服或运维工单

例如你可以配置一个天气 API 工具:

{
  "name": "get_weather",
  "description": "查询指定城市的天气信息",
  "parameters": {
    "city": {
      "type": "string",
      "description": "城市名称,例如北京、上海、深圳"
    }
  },
  "endpoint": "https://api.example.com/weather"
}

在 Agent 执行过程中,大模型会根据用户意图判断是否需要调用工具。如果用户问“明天北京天气怎么样,并帮我安排出行建议”,Agent 可以先调用天气接口,再根据结果生成建议。


十四、常用运维命令

查看容器状态:

docker compose ps

查看日志:

docker logs -f ai-agent

重启服务:

docker compose restart

停止服务:

docker compose down

更新服务:

docker compose pull
docker compose up -d

进入容器:

docker exec -it ai-agent bash

查看资源占用:

docker stats

备份数据库:

docker exec ai-agent-postgres pg_dump -U ai_agent_user ai_agent > backup.sql

恢复数据库:

cat backup.sql | docker exec -i ai-agent-postgres psql -U ai_agent_user ai_agent

十五、安全配置建议

生产环境部署 AI Agent 时,安全非常重要,尤其是当 Agent 可以调用工具和访问数据库时。

建议至少完成以下配置:

  1. 修改默认密码
    管理员密码、数据库密码、Redis 密码都必须使用强密码。

  2. 限制数据库端口暴露
    如果 PostgreSQL 和 Redis 只在 Docker 内部访问,可以不要映射到公网端口。

  3. 开启 HTTPS
    防止登录信息和 API Key 明文传输。

  4. 限制后台访问 IP
    企业内部使用时,可以通过 Nginx 限制管理后台访问来源。

  5. 保护 API Key
    不要将大模型 API Key 写入前端代码,也不要提交到 Git 仓库。

  6. 开启日志审计
    记录用户请求、工具调用、异常错误,方便追踪问题。

  7. 设置工具调用权限
    对高风险工具,例如发送邮件、执行代码、删除数据等,应加入人工确认机制。

  8. 限制文件上传类型和大小
    防止恶意文件上传和资源耗尽。


十六、性能优化建议

如果访问量逐渐增加,可以从以下方向优化:

1. 增加后端实例

可以将 ai-agent 服务扩展为多个实例:

docker compose up -d --scale ai-agent=3

然后通过 Nginx 做负载均衡。

2. 使用异步任务队列

长耗时任务,例如文档向量化、批量总结、数据分析,应放入异步队列执行,避免阻塞主接口。

3. 优化知识库检索

可以调整向量数据库索引参数、Top K、相似度阈值,减少无效上下文。

4. 缓存高频问题

对于重复问题,可以使用 Redis 缓存结果,降低大模型调用成本。

5. 控制上下文长度

上下文越长,模型调用成本越高,响应速度越慢。应合理截断历史对话和知识库内容。


十七、常见问题排查

1. 页面无法访问

检查服务是否启动:

docker compose ps

检查端口是否监听:

ss -tunlp | grep 8000

检查防火墙是否放行:

ufw allow 8000
ufw allow 80
ufw allow 443

2. 大模型接口调用失败

检查 .env 中的配置:

OPENAI_API_KEY
OPENAI_BASE_URL
MODEL_NAME

同时查看日志:

docker logs -f ai-agent

常见原因包括 API Key 错误、模型名称不正确、接口地址不兼容、账户额度不足等。

3. 知识库上传失败

可能原因:

  • 文件过大;
  • 文件格式不支持;
  • 向量数据库未启动;
  • Embedding 模型配置错误;
  • 后端没有文件写入权限。

检查 Qdrant 状态:

docker logs -f ai-agent-qdrant

4. Redis 连接失败

检查 Redis 密码是否一致:

docker logs -f ai-agent-redis

如果后端报错 NOAUTH Authentication required,说明 Redis 需要密码但应用没有正确传入密码。

5. 数据库连接失败

检查 PostgreSQL 容器状态:

docker logs -f ai-agent-postgres

确认 .env 中数据库用户名、密码、库名与 docker-compose.yml 一致。


十八、推荐上线流程

为了保证部署稳定,建议按照以下流程上线:

  1. 本地或测试服务器先完成部署;
  2. 配置大模型 API Key;
  3. 创建管理员账号;
  4. 上传测试知识库;
  5. 测试多轮对话;
  6. 测试工具调用;
  7. 配置域名和 HTTPS;
  8. 开启日志和监控;
  9. 修改默认密码;
  10. 正式开放给用户使用。

十九、总结

本文介绍了 AI Agent 的完整部署流程,包括服务器准备、Docker 安装、环境变量配置、Docker Compose 编排、一键部署脚本、Nginx 反向代理、HTTPS 配置、数据库初始化、知识库 RAG、工具调用、安全加固和常见问题排查。

如果你只是想快速体验 AI Agent,可以直接使用 Docker Compose 启动服务;如果你计划在企业生产环境中使用,则需要重点关注权限控制、日志审计、数据安全、API Key 管理和服务稳定性。

AI Agent 的核心价值不只是“会聊天”,而是能够连接业务系统、理解任务目标并自动完成流程。部署只是第一步,真正决定效果的是后续的知识库建设、工具链设计、Prompt 优化和业务流程集成。

通过本文的方案,你已经可以快速搭建一个基础可用的 AI Agent 平台,并在此基础上继续扩展更多能力,例如企业知识问答、智能客服、自动数据分析、自动工单处理、代码助手和办公自动化助手等。

目录结构
全文