闲鱼捡漏总翻车?15.8k Star 开源项目里,藏着一段反贩子提示词
真正值钱的不是爬虫,而是识别「个人玩家 vs 职业贩子」的判断逻辑。拆解 ai-goofish-monitor 的多模态判定链路、卖家画像提示词,以及它的三个硬伤。
先说结论:这类工具解决的从来不是「抢」
闲鱼捡漏这件事,大部分人把它理解成手速问题:盯着搜索页,看到合适的立刻拍下,慢一步就没了。
但把 Usagi-org/ai-goofish-monitor 的源码翻完,我的判断变了——真正劝退你的不是慢,而是收到推送的那一刻,你根本判断不出这台机器该不该买。
这个项目目前 15,832 Star、2,785 Fork,MIT 协议,Python 写的,最新 release 是 10 月 9 日发的 2.5 版。数字是我从 GitHub API 直接拉的,不是转述别人的文章。
它的自我定位是「多任务实时监控 + AI 智能分析 + Web 管理后台」。听起来像又一个爬虫轮子,但它真正有意思的部分藏得比较深,得往里翻两层才看得见。
一条任务是怎么跑起来的
README 里那张流程图,链路比想象中长:启动任务 → Playwright 起真实浏览器搜关键词 → 发现新商品 → 抓详情和卖家信息 → 下载商品图 → 把文本和图片一起丢给多模态模型 → 推荐的推通知,不推荐的进库 → 遇到风控就轮换重试。
第一个工程取舍值得单说:它没有去逆向闲鱼的接口,而是用 Playwright 驱动真实的 Chromium。Docker 镜像里已经把浏览器打好包,宿主机不用另装。
代价是重,收益是稳。接口签名和风控规则随时会变,而真实浏览器的行为天然更接近真人。另外 failure_guard.py 做了失败熔断——账号连续失败就暂停,免得一个失效的登录态把任务刷死。
但这套做法也带来项目最大的使用门槛:你得手工导入闲鱼登录态。作者为此专门写了个 Chrome 扩展,把 cookie 导出成 JSON,粘进后台的「闲鱼账号管理」,落到 state/ 目录。
这一步是整个项目的命门。登录态一过期,后面所有抓取和 AI 分析全是空转——这也是 issue 区里出现频率最高的问题,没有之一。
真正值钱的不是爬虫,是一段叫 EagleEye 的提示词
如果只到这儿,它就是个把体力活自动化的工具。让我坐直身子的是 prompts/ 目录。
里面的 base_prompt.txt 开头第一句是:
你是世界顶级的二手交易分析专家,代号 EagleEye-V6.4。你的核心任务是基于我提供的严格标准,对一个以 JSON 格式提供的商品信息进行深入的、基于用户画像的评估。
注意「基于用户画像」这几个字。它不是让模型判断「这台 MacBook 符不符合条件」,而是让它先回答一个问题:这个卖家是个什么人。
配套的 macbook_criteria.txt 里,第一条原则就叫「画像优先原则」,原文写得更直接:
如果故事是连贯的个人行为(例如一个热爱数码、不断体验升级、出掉旧设备的发烧友),那么一些表面上的疑点(如交易频率略高)可以被合理解释,不应作为否决依据。
紧接着是一组「危险信号清单」,而每条危险信号后面都挂了一个豁免条款:
| 信号 | 贩子特征 | 发烧友豁免 |
|---|---|---|
| 交易频率 | 短期密集出货 | 跨度超两年 +「体验—升级—出售」闭环 |
| 商品垂直度 | 高度集中同一型号 | 看得出是深度玩家 |
| 图片风格 | 背景统一、标题模板化 | 有固定展示角落的「爱惜感」 |
| 行话 | 同行、工作室、拿货、量大从优 | 无豁免 |
| 物料购买 | 批量买配件、维修工具、坏机 | 无豁免 |
这段设计比大多数「AI 选品」的提示词高明一个身位。关键词过滤是死的:「几乎全新」四个字,既可能是爱惜机器的玩家写的,也可能是翻新贩子的模板。反过来,一个交易记录横跨三年的发烧友,出货频率高反而更合理。
还有个技术细节容易被忽略。模型的输出被约束成严格 JSON,顶层是 is_recommended、reason、risk_tags,往下拆到 criteria_analysis,每一项都必须给出 status、comment、evidence。
evidence 这个字段才是关键——它逼着模型给证据,而不是给结论。这跟直接让模型说一句「推荐」完全是两回事,也是这套判定能被人工复核的前提。
这张图值得多看两眼。四台机器价格咬得极死——¥1490、¥1499、¥1450、¥1400,差价不到一百块。价格这条线已经失效了,真正把它们区分开的是那个百分比和后面那句话。
62% 那台的理由是「卖家信用等级暂无,不符合卖家信用优秀的硬性要求,当前售价略高」;75% 那台写的则是「有条件推荐,卖家为个人闲置玩家」。同一批货、同一个型号,判断被拆到了卖家层面。
更值得琢磨的是通知文案。它不说「符合条件」,而是说:「有条件推荐,卖家画像为顶级个人玩家,信用极好且交易历史连贯,但需在购买前确认电池健康度、边角磕碰情况和维修历史」。
这句话跟 base_prompt.txt 里给模型写的示例句式几乎一字不差。它把「结论」换成了「结论 + 待办」——该问什么、该验什么,推送弹出的那一刻就告诉你了。这才是这套东西真正省时间的地方。
但它也有明摆着的脆弱处
同一段提示词,恰好也暴露了项目的软肋。我翻了 issue 区,反复出现的问题集中在三处。
第一,反爬和登录态。「监测到闲鱼反爬虫验证」「docker 部署一直被反爬限制」这类帖子不止一个。它的解法是多账号加代理池轮换,但这属于对冲,不是根治。
第二,模型不听话。有个还挂着的 issue,标题就是「警告:响应缺少必需字段 prompt_version」。DeepSeek、qwen-vl-max、豆包都有人报过错。原因不复杂:这套判定强依赖多模态能力和严格 JSON 输出,换个纯文本模型或者输出不稳的接口,整条链路就断。
第三,配置有点反直觉。区域筛选默认建议留空,因为它会大幅砍掉结果集;AI 建任务走的是后台 job,提交后要轮询进度,不是立即返回。
这些不是在黑它。恰恰相反,有这些坑说明它是个真在被用的项目,不是发布完就没人管的 Demo——39 个 open issue、两个月前还有版本更新,节奏是对的。
想上手:Docker 三步,别急着改代码
官方推荐的路径是 Docker,最省事:
git clone https://github.com/Usagi-org/ai-goofish-monitor.git
cd ai-goofish-monitor
cp .env.example .env
# 填 OPENAI_API_KEY / OPENAI_BASE_URL / OPENAI_MODEL_NAME
docker compose up -d
默认 Web UI 在 http://127.0.0.1:8000。
必填的其实只有三项:OPENAI_API_KEY、OPENAI_BASE_URL、OPENAI_MODEL_NAME。最后一项必须选支持图片输入的模型,这是硬约束不是建议,因为卖家画像有一半信息在商品图里。
镜像拉不动的话,换成南大源拉下来再打个 tag 就行,README 里有现成命令。数据库默认用 SQLite,落在 data/app.sqlite3,任务、结果、价格历史都在里面,备份拷这一个文件就够。
注意「AI 关键配置」那一列,挂的就是前面说的 criteria 文件。换一个品类,本质上是换一份判据,代码一行都不用动——这是它设计上最舒服的一点。
上手顺序我建议是:先导登录态 → 建一个纯关键词任务跑通链路 → 再试 AI 判断。别一上来就用 AI 建任务,因为生成分析标准本身也要调模型,模型配错了你会分不清到底是哪一环挂了。
最后说点实话
这个项目不是抢购脚本。它做的是发现、筛选、通知,最后拍不拍还是你自己点。想靠它秒杀低价,方向从一开始就错了。
它也不适合零基础选手:要会 Docker,要有一张支持视觉的模型 API,还要能接受登录态定期失效。省下来的钱,某种程度上是用调试时间换的,这点得认。
但如果你本来就在做二手数码的价差生意,或者只是想蹲一台特定型号的机器,它确实把「人肉刷」变成了「规则筛」。而 prompts/ 里那套画像优先的思路,就算你不用这个项目,也值得抄进自己的选品逻辑。
毕竟闲鱼上真正稀缺的从来不是便宜货,是判断力。
如果你想把类似的「多模态判定 + 自动通知」链路接到自己的业务里,我在技术咨询页写了能落地的交付方式。