Files
xianyu-hunter-hermes-skill/project/xianyu-hunter

🐟 闲鱼扫货助手

告别手动翻页、逐个砍价的低效扫货方式

AI 帮你搜、帮你筛、帮你聊 —— 你只需要告诉它"你想买什么"

Node.js Playwright License: MIT


痛点

在闲鱼买一台二手 MacBook,你会遇到这些问题:

搜索结果质量差 — 搜"MacBook Air M2 16G",出来一堆手机壳、贴膜、维修服务、求购帖。参数越长尾、越具体,搜索结果里的噪声越多,翻5页才能挑出几个靠谱的。

标题党泛滥 — 标题写着"99新 无划痕",点进详情页一看:"轻微磕碰、电池健康82%、屏幕有一条细划痕"。不打开详情页,光看标题根本判断不了真实情况。

平台筛选形同虚设 — 闲鱼的"几成新"完全靠卖家自己勾,8成新和99新混在一起。想知道真实成色?只能一个个点进去看图和描述。

砍价是体力活 — 好不容易筛出几个,还得一个个打招呼、问成色、问电池、问能不能包邮、试探底价……十几个卖家,每个都重复同样的对话流程。

一个下午过去了,你只聊了3个卖家,还没一个谈拢。

这个工具就是来解决这个问题的 —— 让 AI 帮你海量扫、逐个筛、自动聊。


看看实际效果

一个任务搜 123 件商品,AI 自动筛到 8 件,同时跟 5 个卖家聊

商品列表

AI 逐个打开详情页,像老买家一样判断每件商品

"电池健康87%不满足90%以上要求" / "价格3999在范围内,屏幕完美无划痕" / "商品是MacBook Pro不是Air,不符合需求"

细筛日志

自动跟卖家聊天、询价、砍价 —— 全程日志可追踪

聊天日志

手机上打开闲鱼:已经聊开了

    

上面是真实运行结果。一个任务下来,十几个卖家已经在跟"你"热聊了 —— "可以再少点嘛"、"好的~"、"电池健康多少呀"、"能少点嘛~我急着用嘞"…… 卖家完全以为在跟真人说话。


为什么卖家愿意聊?—— 因为有「人设」

这不是那种发一句"最低多少"就完事的脚本。

内置的 AI 人设是一个高情商女大学生买家,说话有温度、有策略、有节奏:

  • 开场先夸商品、拉近距离:"哇这个成色好好呀~还在吗"
  • 中场自然地了解信息:"电池健康怎么样呢~有没有磕碰呀"
  • 砍价时卖萌示弱而不是冷冰冰丢数字:"有点超预算了耶🥺 能再少一丢丢嘛~"
  • 每条消息控制在 15 字以内,像真人一样分条发送
  • 语气词、表情、波浪号自然穿插,不会被识别为机器人

卖家的真实反应(来自上面的截图):

  • "好的~"、"哇 那挺新的~"、"可以嘛~" —— 卖家在配合聊天
  • "可以发快递麻~"、"算了 妹妹 m4的得在现场" —— 卖家在主动推进交易
  • "底价了"、"实价了~" —— 砍价流程自然推进到底价

人设完全可自定义:换成男大学生、数码发烧友、精打细算的宝妈……任何你想要的沟通风格,在新建任务时直接改就行。


省钱设计 & 聊天记忆

💰 两轮筛选,极致省 Token

不是每件商品都调用大模型。两轮筛选的设计大幅减少 API 消耗:

阶段 做什么 API 调用量
粗筛 只看标题,15个一批送给AI判断 123件商品 ≈ 9次调用
细筛 只有粗筛通过的才打开详情页深度判断 27件通过 = 27次调用
聊天 只有细筛通过的才发起聊天 8件通过 = 8个会话

123 件商品,全流程下来大约 40+ 次 API 调用,用 DeepSeek V3 大约 ¥0.05 ~ ¥0.3。如果全部都做细筛再聊天,费用要翻 10 倍。

🧠 聊天会话记忆

  • 每个卖家的完整对话历史都保存在本地
  • 任务中断后重启,自动从上次位置继续聊,不会重复发消息、不会丢上下文
  • 等待卖家回复期间零消耗,有新消息才触发 AI 生成回复
  • 自动判断目标是否达成(谈妥/被拒/商品下架),不在死单上浪费时间

全部可自定义

不只是填关键词这么简单。每个任务都可以精细配置:

搜索条件

  • 多关键词(逗号分隔)
  • 价格区间、地区、仅个人闲置

AI 筛选规则

  • 用自然语言描述你的需求
  • 粗筛 / 细筛 Prompt 都可以自定义

砍价策略

  • 心理价位、砍价节奏、底线
  • "先夸再砍"还是"直接报价"

聊天人设

  • 默认高情商女大学生
  • 可改为任何风格


它能做什么?

"我想买一台 MacBook Air M2,成色9新以上,电池健康90%+,预算4000以内"

你只需要像这样描述需求,然后:

步骤 做什么 谁来做
1 在闲鱼搜索多个关键词,自动翻页采集商品 🤖
2 根据标题批量粗筛,排除明显不相关的 🤖
3 逐个打开详情页,深度判断是否符合需求 🤖
4 用高情商人设跟卖家聊天、询价、砍价 🤖
5 看看结果,挑一个满意的下单

整个过程你可以在实时看板上全程围观。

30 秒上手

git clone https://github.com/Disrush/xianyu-shopping-assistant.git
cd xianyu-shopping-assistant
npm install
npx playwright install chromium
npm start

打开 http://localhost:3000 → 点「设置」配置 API Key → 点「新建任务」开始扫货

Windows 用户 更简单:双击 start.bat,全自动安装启动

支持的 AI 服务商

开箱预设了 8 大主流服务商,也可以填任何 OpenAI 兼容的自定义端点:

服务商 推荐模型 说明
DeepSeek DeepSeek V3 性价比之王,中文能力强
OpenRouter 自选 聚合平台,一个 Key 用几百个模型
OpenAI GPT-4o Mini 经典选择
通义千问 Qwen Plus 阿里出品,国内直连快
SiliconFlow DeepSeek V3 硅基流动,国内平台免翻墙
智谱 AI GLM-4 Flash 免费额度多
Moonshot Kimi 128K 长上下文
Groq Llama 3.3 70B 推理最快
自定义 任意 填入你自己的 Base URL

💡 推荐:用 DeepSeek V3 或 GPT-4o Mini,性价比最高。

更多截图

搜索采集 & 粗筛日志

搜索与粗筛日志

5页搜索采集 123 个商品 → AI 标题粗筛只保留 27 个相关的

细筛日志 —— AI 逐个分析给理由

细筛日志

每个商品都有明确的通过/不通过理由,比人工筛选更一致

自动聊天日志

自动聊天

逐个发起聊天 → 发送开场白 → 等待回复 → 持续监控跟进

项目结构

├── server.mjs           # Express + WebSocket 主服务
├── start.bat            # Windows 一键启动
├── public/
│   ├── index.html       # 看板界面
│   ├── app.js           # 前端逻辑(任务管理、配置、实时更新)
│   └── style.css        # 暗色主题样式
├── lib/
│   ├── config.mjs       # API 配置管理(多供应商支持)
│   ├── ai.mjs           # LLM 调用、Prompt 工程
│   ├── task.mjs         # 任务流水线编排
│   ├── search.mjs       # 闲鱼搜索与商品采集
│   ├── filter.mjs       # AI 粗筛 / 细筛
│   ├── chat.mjs         # 自动聊天引擎
│   ├── login.mjs        # 登录状态检测
│   ├── browser.mjs      # Playwright 浏览器管理
│   └── utils.mjs        # 工具函数
└── data/                # 运行时数据(gitignore

常见问题

首次运行要登录吗? 是的。首次启动时会弹出 Chromium 浏览器,你需要在闲鱼网页端手动登录一次。之后登录状态会自动保持。
遇到滑块验证怎么办? 在弹出的浏览器窗口中手动完成验证即可,系统会自动检测并等待你完成,之后继续执行。
任务中断了数据会丢吗? 不会。所有进度实时保存,重新启动任务会从上次中断的阶段恢复。聊天会话的完整上下文也会保留,续聊时不会重复发消息。
API Key 安全吗? API Key 仅保存在你本地的 data/config.json 中,该文件已加入 .gitignore,不会被提交或上传。
一次任务大概花多少 API 费用? 取决于商品数量和聊天轮次。典型场景(搜3页、筛选50个、聊天5个卖家)大约消耗 ¥0.05 ~ ¥0.3,两轮筛选设计把调用量压到了最低。
会不会被闲鱼封号? 本工具使用真实浏览器(非接口调用),消息频率有随机延迟控制,模拟真人操作。但任何自动化工具都有风险,建议不要在主力账号上高频使用。

环境要求

  • Node.js v18+下载
  • 操作系统 Windows / macOS / Linux
  • 网络 能访问闲鱼(goofish.com) + 你选择的 AI 服务商

License

MIT — 随便用,觉得有用给个 Star