【AI Agent 从入门到精通】终章:AI Agent 项目实战——从零构建企业级智能助手(含完整源码 + 部署指南)
📌前置说明:本系列共 8 章,此为终章,建议按顺序阅读。
📖系列导航:
- 第一章:AI Agent 是什么?一文讲清楚核心概念与架构
- 第二章:AI Agent 的技术原理:LLM + 规划 + 记忆 + 工具
- 第三章:主流 AI Agent 框架对比:LangChain、AutoGPT、AutoGen、LlamaIndex
- 第四章:动手实现你的第一个 AI Agent(附完整代码)
- 第五章:AI Agent 的工具调用与工具设计
- 第六章:多智能体(Multi-Agent)系统架构详解
- 第七章:AI Agent 记忆系统:从短期到长期记忆的设计与实现
前言
经过前面七章的学习,你已经掌握了 AI Agent 的:
- ✅ 核心概念与架构
- ✅ 技术原理(LLM + 规划 + 记忆 + 工具)
- ✅ 主流框架(LangChain / AutoGen / CrewAI / Dify)
- ✅ 从零实现单个 Agent
- ✅ 工具系统设计
- ✅ 多 Agent 协作
- ✅ 记忆系统(RAG + 向量数据库)
这一章,我们把所有知识点串联起来,从零构建一个完整的企业级 AI 助手系统——包含多 Agent 协作、Web 界面、知识库问答、私有化部署方案。
一、项目概述:XAgent 企业助手
1.1 项目目标
构建一个企业级 AI 助手,具备以下能力:
XAgent 企业助手核心能力: ├── 🤖 多 Agent 协作 研究员 + 作家 + 审核 + 执行 ├── 📚 企业知识库问答 支持文档上传 + 语义检索 + RAG ├── 📧 邮件处理 读取邮件 + 生成回复 + 发送邮件 ├── 📊 数据分析 执行 SQL + 生成图表 + 撰写报告 ├── 🌐 网络搜索 实时信息查询 ├── 💻 代码执行 Python 代码运行 + 结果解释 ├── 📅 日程管理 查询日历 + 创建日程 └── 🔧 开放 API 支持企业系统集成1.2 技术架构
┌─────────────────────────────────────────────────────────────┐ │ 用户界面层(UI) │ │ Streamlit Web 界面 / 企业 IM 插件 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ API 网关层 │ │ FastAPI + 认证鉴权 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ Agent 编排层 │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 主管Agent │ → │ 执行Agent │ → │ 审核Agent │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────────┘ ↓ ┌──────────────┬──────────────────┬───────────────────────────┐ │ 工具层 │ 记忆层 │ 数据层 │ │ 搜索/邮件 │ 向量数据库 │ 企业数据库/知识库 │ │ 代码执行 │ 会话历史 │ 用户配置 │ │ 日历/文件 │ 用户偏好 │ 业务 API │ └──────────────┴──────────────────┴───────────────────────────┘1.3 目录结构
xagent-enterprise/ ├── app/ # 主应用 │ ├── __init__.py │ ├── main.py # FastAPI 入口 │ ├── agent/ # Agent 核心 │ │ ├── __init__.py │ │ ├── supervisor.py # 主管 Agent │ │ ├── executor.py # 执行 Agent │ │ └── reviewer.py # 审核 Agent │ ├── tools/ # 工具集 │ │ ├── __init__.py │ │ ├── search.py # 搜索工具 │ │ ├── email.py # 邮件工具 │ │ ├── database.py # 数据库工具 │ │ ├── code_runner.py # 代码执行工具 │ │ └── calendar.py # 日历工具 │ ├── memory/ # 记忆系统 │ │ ├── __init__.py │ │ ├── short_term.py # 短期记忆 │ │ ├── long_term.py # 长期记忆 │ │ └── rag.py # RAG 检索 │ ├── knowledge/ # 知识库 │ │ ├── __init__.py │ │ ├── loader.py # 文档加载 │ │ └── indexer.py # 索引构建 │ └── ui/ # Web 界面 │ ├── __init__.py │ └── streamlit_app.py # Streamlit UI │ ├── config/ # 配置文件 │ ├── settings.py # 全局设置 │ └── prompts.py # Prompt 模板 │ ├── requirements.txt # 依赖 ├── docker-compose.yml # Docker 部署 ├── Dockerfile └── README.md二、环境准备与依赖安装
2.1 requirements.txt
# 核心依赖 openai>=1.0.0 langchain>=0.1.0 langchain-community>=0.0.20 langchain-openai>=0.0.5 # 向量数据库 chromadb>=0.4.0 # 向量化 sentence-transformers>=2.2.0 # FastAPI & Web fastapi>=0.109.0 uvicorn>=0.27.0 streamlit>=1.30.0 # 邮件 imap-tools>=0.14.0 # 文档处理 pypdf2>=3.0.0 python-docx>=1.0.0 # 数据库 psycopg2-binary>=2.9.9 sqlalchemy>=2.0.0 # 工具库 python-dotenv>=1.0.0 tiktoken>=0.5.0# 安装依赖 pip install -r requirements.txt2.2 配置文件
# config/settings.py import os from dotenv import load_dotenv load_dotenv() class Settings: # LLM 配置 OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o") OPENAI_BASE_URL = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1") # 向量数据库 CHROMA_PERSIST_DIR = os.getenv("CHROMA_PERSIST_DIR", "./data/chroma_db") # 邮件配置 IMAP_HOST = os.getenv("IMAP_HOST", "imap.gmail.com") IMAP_PORT = int(os.getenv("IMAP_P