An AI agent for automated customer service on Goofish (XianYu) platform powered by LLM.
基于 LLM 的闲鱼平台智能客服 Agent,支持自动回复、知识库、价格议价、聊天记录等功能。
- 本项目仅供学习交流和技术研究,不得用于任何商业用途
- 使用本项目需自行承担一切风险和后果
- 作者不对使用本项目造成的任何损失或法律责任负责
-
使用脚本自动回复违反闲鱼平台规定,可能导致:
- 账号被限制或封禁
- 商品被下架
- 交易受限
- 其他平台处罚
-
请遵守《闲鱼用户协议》和《闲鱼社区规范》
-
建议仅在测试环境或个人学习环境中使用
- ✅ 已充分了解并接受上述风险
- ✅ 同意自行承担所有责任
- ✅ 不会将本项目用于商业用途
- ✅ 遵守相关法律法规和平台规定
pnpm install
# 或
npm install复制 .env.example 并创建 .env 文件:
cp .env.example .env然后编辑 .env 文件,填写必填配置项(详见 .env.example 中的说明)。
两种 LLM 配置方式:
- 使用 Ollama(免费):安装 Ollama,拉取模型后使用本地 API
- 使用在线 API:如通义千问、OpenAI 等兼容 OpenAI API 的服务
💡 推荐 Ollama 模型:
qwen2.5:7b,deepseek-r1:8b,llama3.1:8b
npx prisma migrate devnpm run dev- 实时监听:实时监听闲鱼聊天消息
- 智能生成:基于 LLM 智能生成回复
- 上下文对话:支持多轮对话,记忆历史消息
- 商品信息:自动读取商品标题、描述、价格等信息
- 意图识别:自动识别用户意图(议价、咨询、售后等)
- 知识库:实现了简单的知识库功能,目前需要自己添加
💡 技术说明:本项目使用的闲鱼 API 接口来源于网络公开资源,基于逆向工程获得。仅供学习研究使用。
- 智能判断议价意图
- 梯度让步策略
- 价值强调引导
- 促成交易转化
- 参数解读转化
- 场景化描述
- 产品对比分析
- 自动保存所有对话记录到
.txt文件 - 按用户和商品分类存储
- 包含商品信息、对话时间等元数据
- 支持自定义知识库文件
- 自动加载
prompts/knowledge_*.txt文件 - 可添加物流、售后、产品等各类知识
- AI 自动判断能力范围
- 遇到无法回答的问题自动跳过
- 记录跳过原因到日志
AI 回复的质量很大程度取决于商品信息的完整性。建议在发布商品时:
1. 商品标题:
✅ 好的标题:Apple AirPods Pro 2代 主动降噪 无线蓝牙耳机 全新国行
❌ 差的标题:耳机
2. 商品描述:
✅ 好的描述:
全新未拆封 Apple AirPods Pro 2代
• 主动降噪功能,沉浸式音质
• 续航时间:6小时(单次),30小时(充电盒)
• 支持无线充电、防水防汗
• 国行正品,支持官方保修1年
• 包邮,顺丰快递,24小时内发货
❌ 差的描述:
全新的,很好用
3. 补充知识库:
如果商品描述不够详细,可以在 prompts/knowledge_*.txt 中补充:
# 创建产品知识库
cat > prompts/knowledge_product.txt << 'EOF'
【AirPods Pro 2代 产品知识】
▲核心功能
- 主动降噪:可降低环境噪音最高2倍
- 通透模式:可听到周围环境声音
- 空间音频:支持动态头部追踪
▲续航时间
- 单次使用:6小时(开启降噪)
- 充电盒总续航:30小时
- 快充:充电5分钟可用1小时
▲适用场景
- 通勤路上:降噪效果好,隔绝地铁噪音
- 运动健身:防水防汗,不易掉落
- 办公学习:降噪专注,音质清晰
EOF这样 AI 就能结合商品信息和知识库,给出准确、详细的回复。
编辑 prompts/system_prompt.txt 和 prompts/base_rules.txt 文件:
你是一位资深的电商卖家...
【角色定位】
- 销售专家:...
- 技术顾问:...
【回复原则】
1. 简短直接:...修改联系方式:
在 prompts/base_rules.txt 中找到【联系方式】部分,项目默认配置为合规内容:
▲联系方式(测试过程中留下了电话号码被警告了)
- 如果用户询问联系方式、电话、微信等,请回复:「请在闲鱼站内沟通」
⚠️ 重要提醒:闲鱼平台严禁留下站外联系方式(微信、QQ、电话等),违规可能导致账号封禁。如果你仅用于个人学习测试,可以根据需求自行修改,但需自行承担风险。
AI 回复判断规则(重要):
系统已在 prompts/base_rules.txt 中配置了 AI 回复判断规则:
- 如果客户的问题超出 AI 能力范围,AI 会自动跳过回复
- 如果客户发送的内容无法理解,AI 会自动跳过回复
- 系统会记录"AI不知道如何回答,停止回答"到聊天日志和数据库
- 你可以根据需求修改这些判断规则
在 prompts/ 目录创建 knowledge_*.txt 文件:
# 示例:添加售后知识库
cat > prompts/knowledge_aftersale.txt << 'EOF'
【售后政策】
▲退换货规则
- 7天无理由退货
- 非人为损坏支持换货
- 运费:买家承担来回运费
▲保修政策
- 官方保修1年
- 人为损坏不保修
- 保修期内免费维修
EOF知识库自动加载:
- 文件名以
knowledge_开头(推荐) - 重启项目后自动生效
- 无需修改代码
知识库示例:
knowledge_shipping.txt- 物流信息knowledge_aftersale.txt- 售后政策knowledge_product.txt- 产品知识
本系统暂不支持检测人工是否干预聊天:
- 即使你在浏览器中打开了聊天窗口,AI 仍会继续自动回复
- 如需人工接管某个会话,请暂停或关闭本系统
- 建议在需要人工处理复杂问题时,手动停止程序
AI 智能判断机制:
- 系统已配置 AI 自动判断能力范围
- 遇到无法回答的问题时,AI 会自动跳过回复
- 跳过的情况会记录到聊天日志中
- 你可以通过修改
prompts/base_rules.txt调整判断规则
所有运行日志直接输出到控制台,包括:
- WebSocket 连接状态
- 消息收发记录
- Token 刷新状态
- AI 跳过回复提示
- 错误信息等
聊天记录自动保存在 chats/ 目录:
chats/
├── 用户A-商品名称.txt
├── 用户B-商品名称.txt
└── ...
聊天上下文和商品信息存储在 SQLite 数据库:
- 位置:
prisma/goofish.db - 表结构:
messages- 聊天消息items- 商品信息缓存bargain_counts- 议价次数
使用 Prisma Studio 可视化查看:
npx prisma studio或使用 SQLite 命令行:
sqlite3 prisma/goofish.db
# 查询最近10条消息
SELECT * FROM messages ORDER BY timestamp DESC LIMIT 10;
# 退出
.quit系统会自动尝试刷新 Cookie,如果失败:
- 重新获取 Cookie(见快速开始)
- 更新
.env文件中的COOKIE - 重启项目
编辑 prompts/system_prompt.txt:
在知识库中添加:
【自动回复关键词】
Q: 在吗
A: 在的,有什么需要咨询的吗?
Q: 包邮吗
A: 包邮的,全国大部分地区
Q: 什么时候发货
A: 当日下单当天发货欢迎提交 Issue 和 Pull Request!
如果这个项目对你有帮助,欢迎 Star ⭐️
- GitHub Issues: 提交问题
- Email: 2232455931@qq.com
💡 有问题建议先查看 常见问题 或提交 Issue
MIT License
本项目仅供学习研究,使用脚本自动回复违反闲鱼平台规定。
使用本项目造成的任何后果(包括但不限于账号封禁、法律责任等),使用者需自行承担,作者不承担任何责任。
请遵守法律法规和平台规定,做一个守规矩的好公民! 🙏

