5分钟上手AI智能体部署:Gemini+LangGraph全栈应用Docker容器化实战
你是否还在为AI应用部署的环境配置焦头烂额?是否因多服务依赖关系复杂而束手无策?本文将通过Docker容器化方案,带你一站式解决Gemini+LangGraph全栈智能体的部署难题,掌握多环境配置最佳实践,让AI应用从开发到生产无缝衔接。
项目概述:全栈智能体架构解析
gemini-fullstack-langgraph-quickstart是基于Google Gemini 2.5和LangGraph构建的全栈智能体应用,提供网页搜索增强的对话能力。项目采用前后端分离架构:
- 前端:React单页应用(frontend/src/App.tsx),实现交互式聊天界面
- 后端:LangGraph智能体(backend/src/agent/graph.py),通过动态生成搜索词、网页查询、结果反思和迭代优化,提供带引用的深度回答
核心功能包括:
- 动态搜索词生成与Google Search集成
- 搜索结果反思与知识缺口识别
- 多轮搜索迭代优化
- 引用式答案合成
部署前准备:环境与依赖检查
系统要求
- Docker Engine 20.10+
- Docker Compose v2+
- 至少2GB内存(推荐4GB+)
- 网络连接(用于拉取镜像和依赖)
必备环境变量
| 变量名 | 描述 | 获取途径 |
|---|---|---|
GEMINI_API_KEY | Gemini模型访问密钥 | Google AI Studio |
LANGSMITH_API_KEY | LangChain跟踪与调试密钥 | LangSmith控制台 |
Docker容器化部署:三步快速启动
第一步:构建Docker镜像
项目根目录提供优化的多阶段构建Dockerfile,执行以下命令构建包含前后端的完整镜像:
docker build -t gemini-fullstack-langgraph -f Dockerfile .
构建过程包含两个关键阶段:
- 前端构建:基于Node.js环境编译React应用(frontend/package.json)
- 后端集成:使用LangGraph官方镜像部署Python智能体服务
第二步:配置Docker Compose
项目提供预配置的docker-compose.yml,实现"一键部署"。核心服务组件包括:
- langgraph-redis:消息队列与实时流处理
- langgraph-postgres:智能体状态与对话历史存储
- langgraph-api:主应用服务(包含前端静态文件)
服务依赖关系如图所示:
第三步:启动服务集群
在项目根目录执行:
GEMINI_API_KEY=your_key LANGSMITH_API_KEY=your_key docker-compose up -d
服务启动后可通过以下地址访问:
- 应用界面:http://localhost:8123/app/
- API服务:http://localhost:8123
查看服务状态:
docker-compose ps
多环境配置策略:开发/测试/生产隔离
开发环境:热重载配置
使用项目根目录的Makefile快速启动开发环境:
make dev
此命令会启动:
- 前端开发服务器(端口5173,支持热重载)
- LangGraph后端开发服务(端口2024,自动重载)
生产环境:安全与性能优化
安全加固措施
- 网络隔离:通过Docker网络限制服务间通信
- 密钥管理:使用环境变量而非明文配置
- 资源限制:在docker-compose.yml中设置资源配额:
services:
langgraph-api:
deploy:
resources:
limits:
cpus: '1'
memory: 2G
性能调优
- 连接池配置:Postgres最大连接数设置(docker-compose.yml#L19-L21)
- Redis缓存:优化智能体状态存储性能(docker-compose.yml#L43)
测试环境:CI/CD集成
通过Dockerfile的多阶段构建,可以仅构建后端服务用于单元测试:
docker build --target backend-test -t agent-test .
docker run agent-test pytest /deps/backend
常见问题与调试技巧
服务启动失败排查流程
- 检查容器日志:
docker-compose logs -f langgraph-api
- 验证依赖服务:
# 测试Postgres连接
docker-compose exec langgraph-postgres psql -U postgres
# 测试Redis连接
docker-compose exec langgraph-redis redis-cli ping
- 端口冲突解决:修改docker-compose.yml中端口映射,如:
services:
langgraph-api:
ports:
- "8124:8000" # 将8123改为8124避免冲突
智能体工作流调试
通过LangSmith查看智能体决策过程,或使用CLI工具进行本地测试:
cd backend
python examples/cli_research.py "AI部署最佳实践"
部署架构优化:从单机到集群
水平扩展建议
- 无状态服务设计:确保langgraph-api可多实例部署
- 外部化存储:生产环境建议使用托管数据库服务
- 负载均衡:在多实例部署时添加Nginx反向代理
资源占用参考
| 组件 | 内存占用 | CPU使用率 |
|---|---|---|
| 前端服务 | ~50MB | 低(静态资源) |
| 后端API | ~500MB | 中(取决于请求量) |
| Postgres | ~200MB | 低-中 |
| Redis | ~100MB | 低 |
总结与下一步
通过本文你已掌握: ✅ Docker多阶段构建优化 ✅ Docker Compose服务编排 ✅ 多环境配置隔离策略 ✅ 常见部署问题排查方法
进阶学习路径:
- 自定义智能体逻辑:修改backend/src/agent/graph.py
- 扩展工具集成:参考backend/src/agent/tools_and_schemas.py
- 部署监控:添加Prometheus和Grafana监控栈
收藏本文,关注项目LICENSE更新,获取最新部署最佳实践!
附录:常用命令速查
| 操作 | 命令 |
|---|---|
| 构建镜像 | docker build -t gemini-agent . |
| 启动服务 | docker-compose up -d |
| 查看日志 | docker-compose logs -f |
| 停止服务 | docker-compose down |
| 清理数据 | docker-compose down -v |
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





