# guage-erp-agent
**Repository Path**: yangdechao_admin/guage-erp-agent
## Basic Information
- **Project Name**: guage-erp-agent
- **Description**: 以 DeepAgent + LangGraph + MCP 协议 为核心的摩托车零部件采购智能助手。 采用 方案 C(混合式) 组织:一个主仓 guage-erp-agent 收拢整套 ERP-AI 系统,独立拆出通用工具仓 guage-mcp-datetime-tool,为 Gitee 开源做好准备。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-30
- **Last Updated**: 2026-10-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# guage-erp-agent — ERP 智能采购 AI Agent 与 MCP 工具生态
> 以 **DeepAgent + LangGraph + MCP 协议** 为核心的摩托车零部件采购智能助手。
> 采用 **方案 C(混合式)** 组织:一个主仓 `guage-erp-agent` 收拢整套 ERP-AI 系统,独立拆出通用工具仓 `guage-mcp-datetime-tool`,为 Gitee 开源做好准备。
---
## 一、仓库定位
本仓库是一套**可本地一键部署、全 Docker 化**的 ERP-AI 智能体系统,包含 4 层能力:
| 层次 | 模块 | 说明 |
|------|------|------|
| **对话层** | `guage-chat-web` + `guage-chat-server` | 用户对话前端 + 后端 API(SSE 流式 + HITL) |
| **Agent 核心** | `src/agent` | DeepAgent + LangGraph 状态机、9 中间件、32 工具 |
| **ERP 桥接** | `guage-erp-mcp-server` + `guage-erp-mock-server` | MCP 网关(23 个 ERP 工具)对接本地模拟 ERP |
| **调试平台** | `guage-mcp-inspector-web` + `guage-mcp-inspector-server` | MCP 可视化调试(支持 Stdio/SSE/HTTP,配置持久化) |
**独立仓库**:`guage-mcp-datetime-tool`(通用时间工具 MCP,可单独开源复用)。
---
## 二、系统架构
```mermaid
flowchart TB
subgraph 主仓["guage-erp-agent(主仓)"]
subgraph UI["对话前端 guage-chat-web (:3000)"]
ChatUI["Next.js 对话界面
SSE 流式 + HITL 审批"]
end
subgraph API["后端 guage-chat-server (:8000)"]
Fast["FastAPI
chat / history / agent_loader"]
Store["MongoDB 持久化
Saver + Store"]
end
subgraph Agent["Agent 核心 src/agent"]
Core["DeepAgent + LangGraph
9 中间件 · 32 工具"]
end
subgraph MCP["ERP MCP 网关 guage-erp-mcp-server (:9000)"]
Mcp["FastMCP + SSE
suppliers(5) parts(5) orders(7) inventory(6)"]
end
subgraph ERP["本地模拟 ERP guage-erp-mock-server (:8081)"]
Spring["Spring Boot + Swagger
MySQL(erp)"]
end
subgraph Ins["调试平台"]
InsW["inspector-web (:3001)"]
InsS["inspector-server (:8010)
配置持久化 MySQL(guage_mcp)"]
end
end
subgraph 独立仓["guage-mcp-datetime-tool(独立仓)"]
DT["时间工具 MCP (:9200)
get_current_time / convert_timezone / ... 共 8 工具"]
end
ChatUI -->|HTTP/SSE| Fast
Fast --> Core
Core -->|MCP| Mcp
Mcp -->|HTTP REST| Spring
Fast --> Store
InsW --> InsS
InsS -->|Stdio/SSE/HTTP| Mcp
InsS --> DT
```
---
## 三、目录结构(方案 C)
```
guage-erp-agent/ # 主仓
├── guage-chat-web/ # 对话主前端
├── guage-chat-server/ # 对话后端 API(原 src/chat_server)
├── guage-erp-mcp-server/ # ERP MCP 网关(原 src/erp_mcp_server)
├── guage-mcp-inspector-web/ # MCP 可视化调试前端
├── guage-mcp-inspector-server/ # MCP 调试后端,配置持久化
├── guage-erp-mock-server/ # 本地模拟 ERP(Spring Boot)
├── src/ # 共享核心
│ ├── agent/ # Agent 核心(backends/middlewares/tools/subagents/memory)
│ ├── skills/ # 技能文件
│ └── download/ # 生成文件下载目录
├── docker-compose.yml # 主仓服务编排(MCP + 后端 + 模拟 ERP)
├── Dockerfile # Python 后端镜像(guage-erp-agent)
├── .env / .env.example # 环境变量
├── README.md # 本文件
└── docs/ # 部署文档
```
---
## 四、模块速览
| 模块 | 技术栈 | 端口 | 职责 |
|------|--------|------|------|
| `guage-chat-web` | Next.js + React + Tailwind | 3000 | 对话界面、SSE 流式、HITL 审批、历史管理 |
| `guage-chat-server` | FastAPI + Uvicorn | 8000 | SSE 流式 API、会话 CRUD、Agent 装载 |
| `guage-erp-mcp-server` | FastMCP + SSE | 9000 | 23 个 ERP 工具(供应商/零部件/订单/库存) |
| `guage-erp-mock-server` | Spring Boot + Swagger + MySQL | 8081 | 本地模拟 ERP,替代远程 ERP 供 MCP 调用 |
| `guage-mcp-inspector-web` | Next.js(薄代理) | 3001 | MCP 调试界面,连接 Stdio/SSE/HTTP |
| `guage-mcp-inspector-server` | FastAPI + MySQL | 8010 | MCP 配置持久化、测试执行 |
| `guage-mcp-datetime-tool`(独立仓) | Python + MCP SDK | 9200 | 8 个时间/时区工具,独立开源 |
---
## 五、Docker 一键部署(推荐)
### 1. 准备外部基础组件(一次即可)
```bash
# 创建共享网络
docker network create erp-net
# MongoDB(对话持久化)
docker run -d --name erp-mongodb --network erp-net -p 27017:27017 mongo:8.0
# MySQL(模拟 ERP + 调试平台持久化)
docker run -d --name mysql-erp --network erp-net -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=erp \
mysql:8.0
# 沙箱容器(代码执行)
docker run -d --name erp-sandbox -w /workspace python:3.11-slim sleep infinity
# 初始化 MySQL 业务库
docker exec mysql-erp mysql -uroot -proot \
-e "CREATE DATABASE IF NOT EXISTS erp CHARACTER SET utf8mb4;"
```
### 2. 主仓编排
```bash
cd guage-erp-agent
docker compose up -d --build
```
compose 会拉起 3 个服务:
- `guage-erp-mcp-server`(:9000)
- `guage-chat-server`(:8000)
- `guage-erp-mock-server`(:8081)
### 3. 调试平台与时间工具(独立容器)
```bash
# inspector 前端
docker run -d --name guage-mcp-inspector-web --network erp-net -p 3001:3001 guage-mcp-inspector-web:latest
# inspector 后端
docker run -d --name guage-mcp-inspector-server --network erp-net -p 8010:8000 \
-e MYSQL_HOST=mysql-erp -e MYSQL_DATABASE=guage_mcp guage-mcp-inspector-server:latest
# 时间工具(独立仓)
docker run -d --name guage-mcp-datetime-tool --network erp-net -p 9200:9200 guage-mcp-datetime-tool:latest
```
> 各子模块的 Dockerfile 见对应目录;构建上下文与网络配置详见 `docs/`。
---
## 六、本地开发启动
```bash
# 1. 准备:确保 MongoDB / MySQL / Docker 沙箱已就绪(见上)
# 2. MCP Server(:9000)
cd guage-erp-mcp-server
python -m erp_mcp_server.server_main
# 3. 后端 API(:8000)
cd ..\guage-chat-server
$env:PYTHONPATH="D:\git-workspace\guage-erp-agent" # 需能 import src.agent
python -m chat_server.web_main
# 4. 对话前端(:3000)
cd guage-chat-web && npm install && npm run dev
# 5. 调试前端(:3001)
cd guage-mcp-inspector-web && npm install && npm run dev
```
> **启动顺序**:MongoDB → 沙箱 → MCP(:9000) → 后端(:8000) → 前端(:3000)。MCP 必须先于后端,因为 Agent 初始化要连接 MCP 加载 ERP 工具。
---
## 七、环境变量(.env)
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `LLM_MODEL` | `deepseek-chat` | 模型(需支持工具调用) |
| `LLM_BASE_URL` | `https://api.deepseek.com` | LLM 网关 |
| `LLM_API_KEY` | `sk-...` | LLM API Key |
| `MONGODB_URI` | `mongodb://localhost:27017` | 对话持久化 |
| `MONGODB_DB_NAME` | `erp_agent` | 会话库名 |
| `ERP_BASE_URL` | `http://guage-erp-mock-server:8081` | 容器内服务名;本地用 `http://localhost:8081` |
| `MCP_SERVER_URL` | `http://localhost:9000` | MCP 网关地址 |
| `SANDBOX_IMAGE` | `python:3.11-slim` | 沙箱镜像 |
---
## 八、开源说明(Gitee)
本仓库采用 **方案 C 混合式** 组织,便于开源维护:
- **主仓** `guage-erp-agent`:整套 ERP-AI 系统,含 6 个子模块 + 主仓编排。
- **独立仓** `guage-mcp-datetime-tool`:通用时间工具,与 ERP 解耦,单独开源复用。
- MCP 调试平台(inspector-web + inspector-server)打磨成熟后,也可再拆独立仓。
> 子模块间通过 Docker 网络(`erp-net`)与端口解耦,均可独立构建、独立演进。
---
## 九、API 端点(对话后端)
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/chat/stream` | SSE 流式对话 |
| POST | `/api/chat/{thread_id}/resume` | 中断恢复 |
| GET | `/api/chat/{thread_id}/state` | 中断状态 |
| GET | `/api/chat/{thread_id}/history` | 消息历史 |
| GET | `/api/history/{user_id}` | 会话列表 |
| DELETE | `/api/history/{thread_id}` | 删除会话 |
| GET | `/api/download/{filename}` | 下载生成文件 |
| GET | `/health` | 健康检查 |
---
## 十、相关文档
| 文档 | 说明 |
|------|------|
| [docs/guage-erp-agent-部署手册.md](docs/guage-erp-agent-部署手册.md) | 本地启动 + Docker 部署完整手册 |
| [guage-chat-web/README.md](guage-chat-web/README.md) | 对话前端 |
| [guage-mcp-inspector-server/README.md](guage-mcp-inspector-server/README.md) | MCP 调试后端 |
| [guage-mcp-inspector-web/README.md](guage-mcp-inspector-web/README.md) | MCP 调试前端 |
| [guage-erp-mock-server/README.md](guage-erp-mock-server/README.md) | 本地模拟 ERP |