1. 项目概述
在当今AI技术快速发展的背景下,构建高效的多Agent系统已成为许多开发者和企业的需求。然而,依赖商业API(如OpenAI)不仅成本高昂,还存在数据隐私和网络依赖等问题。本文将详细介绍如何在自有Linux服务器上,完全基于开源技术栈搭建一个零API成本的Agent工厂。
这个方案的核心优势在于:
- 完全自主可控:所有计算都在本地完成,无需依赖外部服务
- 零边际成本:每次调用无需支付额外费用
- 灵活可扩展:可根据需求自由组合不同Agent和工作流
- 数据安全:敏感数据无需离开本地环境
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与基础架构
2.1 硬件与系统要求
要运行这个Agent工厂,建议满足以下最低配置:
- 服务器:Linux系统(Ubuntu 22.04 LTS或CentOS 8+)
- CPU:4核以上(建议8核)
- 内存:8GB(16GB以上可获得更好体验)
- 存储:50GB可用空间(用于存放模型和数据)
- 网络:稳定的互联网连接(仅用于初始安装和模型下载)
提示:如果使用云服务器,建议选择计算优化型实例。对于内存有限的机器,可以通过添加swap空间来缓解压力。
2.2 整体架构设计
系统采用分层架构设计,各组件职责明确:
code复制┌─────────────────────────────────────────────────────────────┐
│ Linux服务器 │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Ollama服务 │ │
│ │ qwen2.5:14b │ deepseek-r1:8b │ llama3.1:8b │ │
│ │ 本地推理,兼容OpenAI API格式 │ │
│ └──────────────────────────┬───────────────────────────┘ │
│ │ http://localhost:11434 │
│ ┌──────────────────┼──────────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌─────────────┐ │
│ │ LangGraph │ │ CrewAI │ │ FastAPI │ │
│ │ 工作流编排 │ │ 多Agent协作 │ │ HTTP接口 │ │
│ └──────────────┘ └──────────────┘ └─────────────┘ │
│ │ │ │ │
│ └──────────────────┴──────────────────┘ │
│ │ │
│ ┌─────────▼────────┐ │
│ │ 任务调度层 │ │
│ │ APScheduler │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
外部访问(Nginx反代)
3. 核心组件部署
3.1 Ollama本地LLM部署
3.1.1 安装与配置
Ollama是一个开源的本地大语言模型运行环境,支持多种开源模型。安装过程非常简单:
bash复制# 一键安装(Linux)
curl -fsSL https://ollama.com/install.sh | sh
# 验证安装
ollama --version
# 启动服务(默认端口11434)
ollama serve &
3.1.2 模型选择与下载
根据服务器配置选择合适的模型:
bash复制# 8GB内存配置
ollama pull qwen2.5:7b # 中文能力强,7B参数,约4.7GB
ollama pull nomic-embed-text # 嵌入模型(RAG用),极小
# 16GB内存配置
ollama pull qwen2.5:14b # 质量明显更好,约8.9GB
ollama pull deepseek-r1:8b # 推理增强,复杂任务用
# 32GB+内存或有独立显卡
ollama pull qwen2.5:32b # 接近GPT-4水平
ollama pull deepseek-r1:14b # 强推理,适合代码/分析任务
3.1.3 服务化配置
为确保Ollama服务稳定运行,建议配置为系统服务:
bash复制# 创建systemd服务文件
sudo tee /etc/systemd/system/ollama.service > /dev/null <<EOF
[Unit]
Description=Ollama AI Server
After=network.target
[Service]
Type=simple
User=root
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
[Install]
Wante
