专为闲鱼平台打造的 AI 值守解决方案,实现闲鱼平台 7x24 小时自动化值守,支持多专家协同决策、智能议价和上下文感知对话,并提供完整的 Web 管理后台。
├── main.py # 闲鱼机器人核心(WebSocket 连接闲鱼 IM)
├── api_server.py # Web 管理后台 API 服务器(Flask + WebSocket)
├── XianyuAgent.py # AI 客服核心引擎(意图识别 + 多专家路由)
├── XianyuApis.py # 闲鱼平台 API 封装
├── context_manager.py # 会话上下文管理器
├── utils/ # 工具函数
│ └── xianyu_utils.py # 加密、Cookie 解析等工具
├── prompts/ # 提示词模板
│ ├── classify_prompt_example.txt # 意图分类
│ ├── price_prompt_example.txt # 价格专家
│ ├── tech_prompt_example.txt # 技术专家
│ └── default_prompt_example.txt # 默认回复
├── web-admin/ # Web 管理后台(Vue3 + Element Plus)
│ ├── src/
│ │ ├── views/ # 页面组件
│ │ │ ├── Dashboard.vue # 数据概览
│ │ │ ├── Chat.vue # 对话监控
│ │ │ ├── Accounts.vue # 账号管理(含扫码登录)
│ │ │ ├── Config.vue # 系统配置
│ │ │ ├── Prompts.vue # 提示词管理
│ │ │ ├── Logs.vue # 日志查看
│ │ │ ├── Users.vue # 用户管理
│ │ │ ├── Layout.vue # 布局框架
│ │ │ └── Login.vue # 登录页
│ │ ├── api/ # API 接口封装
│ │ ├── router/ # 路由配置
│ │ ├── store/ # Pinia 状态管理
│ │ └── components/ # 公共组件
│ ├── package.json
│ └── vite.config.js
├── .env.example # 环境变量示例
├── Dockerfile # Docker 构建配置(单容器)
├── docker-compose.yml # Docker Compose 配置
├── nginx.conf # Nginx 配置(前端 8100 + API 反向代理)
├── start.sh # 容器启动脚本
├── requirements.txt # Python 依赖
└── LICENSE
| 功能模块 | 技术实现 | 关键特性 |
|---|---|---|
| 上下文感知 | 会话历史存储 | 轻量级对话记忆管理,完整对话历史作为 LLM 上下文输入 |
| 专家路由 | LLM Prompt + 规则路由 | 基于提示工程的意图识别 -> 专家 Agent 动态分发,支持议价/技术/客服多场景切换 |
| 防爆破 | 意图过滤 | 自动识别并忽略提示词注入、角色假设等攻击行为 |
| 模块 | 已实现 | 说明 |
|---|---|---|
| AI 自动回复 | ✅ | 基于 DeepSeek 大模型,支持多专家协同 |
| 阶梯议价 | ✅ | 价格专家自动处理砍价,梯度让步策略 |
| 技术咨询 | ✅ | 技术专家解答商品参数和功能问题 |
| 人工接管 | ✅ | 发送句号切换人工/AI 模式,支持超时自动恢复 |
| 模拟人工 | ✅ | 可配置的输入延迟,模拟真人打字节奏 |
| 扫码登录 | ✅ | Web 端扫码获取 Cookie,自动填充 |
| 多账号管理 | ✅ | 支持多个闲鱼账号同时值守 |
| Web 管理后台 | ✅ | 完整的管理界面,数据可视化 |
| 实时日志 | ✅ | WebSocket 推送,实时监控机器人运行状态 |
| 实时对话 | ✅ | WebSocket 推送,实时查看买家对话 |
| 模块 | 功能 |
|---|---|
| 数据概览 | 统计卡片、消息趋势图、类型分布饼图、实时会话、系统状态 |
| 对话监控 | 实时会话列表、聊天记录、人工/AI 接管切换 |
| 账号管理 | 多账号 CRUD、Cookie 管理、扫码登录、运行状态控制 |
| 系统配置 | 模型配置(DeepSeek)、行为设置、通知设置、安全设置 |
| 提示词管理 | 4 类提示词在线编辑,与后端模板文件完全对齐 |
| 日志查看 | WebSocket 实时日志流、级别筛选、日期筛选、导出 |
| 用户管理 | 管理员/普通用户角色、密码重置、状态控制 |
- Python 3.10+
- Node.js 20+(仅开发 Web 管理后台需要)
- Docker & Docker Compose(推荐部署方式)
单容器部署,同时运行闲鱼机器人、API 服务器和前端管理后台。
# 克隆仓库
git clone https://github.com/ddonggit/xianyu-bot.git
cd xianyu-bot
# 配置环境变量
cp .env.example .env
vim .env编辑 .env 文件,填写必填项:
# ========== 必填配置 ==========
API_KEY=sk-your_deepseek_api_key_here
COOKIES_STR=cookie2=xxx; _tb_token_=xxx; sgcookie=xxx
# ========== 可选配置 ==========
MODEL_BASE_URL=https://api.deepseek.com
MODEL_NAME=deepseek-chat获取 Cookie:在闲鱼网页端按 F12 打开开发者工具,选择 Network,点击任意请求,从 Headers 中复制 Cookie。
获取 API Key:前往 DeepSeek 开放平台 注册并创建 API Key。
# 构建并启动(默认端口 8100/8150)
docker compose up -d --build
# 或使用自定义端口
FRONTEND_PORT=8080 API_PORT=8081 docker compose up -d --build访问地址:
- 前端管理后台: http://localhost:8100
- API 服务器: http://localhost:8150
- 默认账号:
admin/123456
# 安装 Python 依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 填写 API_KEY 和 COOKIES_STR
# 启动 API 服务器(端口 8150)
python api_server.py# 在另一个终端启动机器人
python main.pycd web-admin
# 安装依赖
npm install
# 开发模式(端口 3000,自动代理 API 到 8150)
npm run dev| 服务 | 默认端口 | 说明 |
|---|---|---|
| 前端 (Nginx) | 8100 | Web 管理后台页面 |
| API 服务器 | 8150 | REST API + WebSocket |
| 前端开发服务器 | 3000 | Vite 开发模式 |
可以通过编辑 prompts/ 目录下的文件来自定义各个专家的提示词:
| 文件 | 用途 | 说明 |
|---|---|---|
classify_prompt.txt |
意图分类 | 识别买家消息的意图类型(price/tech/default/no_reply) |
price_prompt.txt |
价格专家 | 处理价格咨询和议价谈判 |
tech_prompt.txt |
技术专家 | 解答商品技术参数和功能问题 |
default_prompt.txt |
默认回复 | 通用客服回复模板 |
也可以通过 Web 管理后台的「提示词管理」页面在线编辑。
- Python 3.10+ - 核心运行时
- Flask - Web 框架
- Flask-SocketIO - WebSocket 实时通信
- Flask-JWT-Extended - JWT 认证
- OpenAI SDK - LLM 调用(兼容 DeepSeek API)
- WebSockets - 闲鱼实时消息通信
- Loguru - 日志管理
- python-dotenv - 环境变量管理
- Vue 3 - 渐进式 JavaScript 框架
- Vite - 下一代前端构建工具
- Element Plus - Vue 3 UI 组件库
- Pinia - 状态管理
- Vue Router - 路由管理
- ECharts - 数据可视化图表
- Socket.IO Client - WebSocket 实时通信
- qrcode.vue - 二维码生成组件
- Axios - HTTP 请求库
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
| API Key | API_KEY |
- | DeepSeek API 密钥 |
| 模型地址 | MODEL_BASE_URL |
https://api.deepseek.com |
API 服务地址 |
| 模型名称 | MODEL_NAME |
deepseek-chat |
使用的模型名称 |
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
| 接管关键词 | TOGGLE_KEYWORDS |
。 |
发送该关键词切换人工/AI 模式 |
| 模拟人工输入 | SIMULATE_HUMAN_TYPING |
False |
是否模拟真人打字延迟 |
| 心跳间隔 | HEARTBEAT_INTERVAL |
15 |
WebSocket 心跳间隔(秒) |
| 消息过期时间 | MESSAGE_EXPIRE_TIME |
300000 |
过期消息丢弃时间(毫秒) |
| 人工接管超时 | MANUAL_MODE_TIMEOUT |
3600 |
人工接管自动恢复时间(秒) |
| 配置项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
| 前端端口 | FRONTEND_PORT |
8100 |
Nginx 对外端口 |
| API 端口 | API_PORT |
8150 |
API 服务器对外端口 |
本项目基于 shaxiu/XianyuAutoAgent 开发,感谢原作者的开源贡献。