Skill: kelcey2023/zeelin-xianyu-auto-ops (version 1.0.3)

--- name: ZeeLin 闲鱼自运营 description: > ZeeLin 闲鱼自运营技能：面向闲鱼网页版已登录场景，帮助用户进行闲鱼店铺/账号的自动化运营，包括自动客服回复、智能议价、商品上新文案、商品卖点优化、催付/预约自提/售后话术、批量会话处理与浏览器端网页操作。当用户提到“闲鱼”“咸鱼”“二手交易”“自动回复买家”“自动议价”“闲鱼客服”“帮我上架闲鱼”“闲鱼运营”“自动回复私信”“闲鱼自运营”等关键词时触发。参考 XianyuAutoAgent 的多场景客服思路，但优先使用浏览器工作流与可编辑话术模板，不依赖闲鱼私有接口。 user-invocable: true metadata: {"openclaw":{"emoji":"🐟","skillKey":"zeelin-xianyu-auto-ops"}} --- # ZeeLin 闲鱼自运营 🐟 面向**用户已登录闲鱼网页版**的自运营 skill。目标不是做“黑盒挂机”，而是把最值钱、最实用的运营动作标准化： - 自动客服回复 - 智能议价回复 - 商品文案生成与优化 - 批量处理常见询问 - 催付 / 自提 / 发货 / 售后话术 - 在网页端辅助执行回复、编辑、发布 ## 触发场景 当用户表达以下需求时，使用本技能： - 「帮我做闲鱼自动回复」 - 「做一个闲鱼自运营 skill」 - 「帮我回复闲鱼买家」 - 「这个闲鱼商品怎么写更容易卖」 - 「帮我批量处理闲鱼消息」 - 「帮我在闲鱼上架」 - 「帮我自动议价」 - 「我已经登录闲鱼网页，你直接操作」 ## 能力边界 本技能**优先走浏览器网页工作流**，不直接依赖闲鱼私有 API。 原因： - 更稳妥，和 OpenClaw 当前浏览器能力更匹配 - 用户已登录即可用，不额外要求抓 cookie / 反向接口 - 降低风控和维护成本 参考仓库 `shaxiu/XianyuAutoAgent` 时，吸收的是它的**运营思路**： - 意图分类 - 多专家话术（默认 / 议价 / 技术说明） - 上下文感知 - 人工接管 但在 OpenClaw 里，默认实现方式改为： - **话术模板 + 大模型生成** - **浏览器执行** - **人工确认后发送**（默认） ## 默认工作原则 1. **先确认用户已经登录闲鱼网页** 2. **先读页面，再操作页面** 3. **默认先给草稿，再代发**；除非用户明确要求“直接发” 4. **涉及价格、售后承诺、联系方式时更谨慎** 5. **不诱导脱离平台交易，不输出违规话术** 6. **先确认当前会话身份是“卖家回复买家”还是“买家咨询卖家”，再发送任何消息** 7. **如果会话商品、价格、身份与用户要求不一致，先停止发送，回到列表重新核对，不要凭猜测回复** ## 会话身份校验（新增强规则） 在消息页执行任何自动回复前，必须先完成这 4 个检查： 1. **核对商品是否匹配** - 先看聊天窗顶部/商品卡片中的商品标题、价格、地区 - 必须与用户口中的商品一致（例如“龙虾安装部署 / 299 元”） - 如果当前聊天窗是别的商品，不能回复，先返回会话列表继续找 2. **核对自己当前扮演的身份** - 如果用户要求你“回复来买我东西的客户”，你必须站在**卖家**身份回复 - 如果页面内容显示你是在咨询别人、或历史语气明显是买家身份，立即停止，不要继续发 3. **核对最后几轮上下文是否连贯** - 至少读最近 3～6 条消息，再判断客户是在问安装、价格、成色、发货还是售后 - 不要只看左侧列表摘要就直接回 4. **发现错会话时的处理方式** - 不继续硬回 - 回到左侧列表，继续筛选正确客户 - 必要时先向用户确认“是不是这个商品/这个客户” 这条规则优先级高于“尽快回复”。**宁可慢一步核对，也不要回错买家/卖家身份。** ## 第一反应流程 ### A. 如果用户说“帮我回复闲鱼买家 / 自动客服” 1. 先确认当前是否已打开闲鱼消息页 2. 如未打开，导航到闲鱼网页版消息页 3. 用浏览器 snapshot 读取当前会话列表 / 对话内容 4. 抽取最近几轮消息 5. 判断类型： - 默认咨询 - 议价 - 参数 / 成色 / 使用情况 - 发货 / 自提 - 售后 / 退换 - 明显无效消息 / 可不回 6. 先生成回复草稿 7. 用户要求直接发送时，再代发 ### B. 如果用户说“帮我上架闲鱼 / 写商品文案” 先收集最少必要信息： - 商品名 - 品类 - 品牌 / 型号 - 成色 - 使用时长 - 瑕疵 - 配件是否齐全 - 期望售价 - 是否支持小刀 / 自提 / 包邮 然后输出： - 标题 3-5 个版本 - 正文描述 1 个完整版本 - 标签关键词 - 议价底线建议 - 常见买家提问预答复 若用户要求直接发到闲鱼： - 打开发布页 - 代填标题 / 正文 / 价格等字段 - **发布前必须给用户最后确认** ### C. 如果用户说“帮我做闲鱼自运营 skill” 默认提供以下子能力： - 自动回复买家 - 智能议价模板 - 商品文案生成 - 店铺运营 SOP - 浏览器端辅助执行 必要时读取： - `references/reply-playbook.md` - `references/listing-playbook.md` - `references/browser-sop.md` ## 回复分类规则 ### 1. 默认咨询（default） 适用于： - 还在吗 - 这个能用吗 - 有无瑕疵 - 什么配置 - 能发货吗 目标： - 快速、礼貌、可信 - 降低买家决策成本 - 把模糊问题答具体 风格： - 口语化 - 不油腻 - 不过度热情 - 尽量像真人卖家 ### 2. 议价（price） 适用于： - 能便宜吗 - 最低多少 - XX 出不出 - 包邮吗 原则： - 先稳价，再小幅让步 - 不一次性到底 - 用理由支撑价格 - 让买家觉得“有沟通空间，但不是乱砍” 建议阶梯： - 第一次：轻微让步或不让步 - 第二次：给出小幅优惠 + 条件（如今天拍、同城自提） - 第三次：给到底线附近报价 - 再往下：礼貌收口 ### 3. 商品细节 / 成色 / 技术说明（tech） 适用于： - 电池健康多少 - 有没有维修 - 屏幕有没有划痕 - 型号 / 配置 / 尺寸 - 有什么功能问题 原则： - 真实，不夸张 - 避免含糊其辞 - 信息越具体越容易成交 ### 4. 发货 / 自提 / 成交流程（delivery） 适用于： - 什么时候能发 - 支持自提吗 - 走什么快递 - 包邮吗 原则： - 明确时间、地点、方式 - 不做无法兑现的承诺 ### 5. 售后 / 退换 / 风险沟通（after-sales） 适用于： - 收到不满意怎么办 - 能退吗 - 有没有保修 原则： - 保守表达 - 以平台规则为准 - 不擅自承诺超范围售后 ## 人工接管规则 遇到以下情况，建议切人工： - 买家情绪明显激烈 - 涉及大额砍价 - 涉及真假、维修史、纠纷风险 - 涉及脱离平台交易诱导 - 用户要求改成自己的语气 推荐提示： > 这轮我建议先人工接管，我可以继续帮你拟回复，但先不要自动发。 ## 默认输出格式 ### 买家回复草稿 ```markdown 会话判断：议价 / 参数咨询 / 发货咨询 / 售后 / 可不回 建议回复： [1 条最优回复] 可选版本： 1. [更温和] 2. [更强势] 3. [更促成交] 说明： - 回复目标： - 是否建议直接发送：是 / 否 ``` ### 商品文案输出 ```markdown 标题候选： 1. ... 2. ... 3. ... 正文文案： ... 标签关键词： - ... - ... 议价策略： - 挂价： - 心理成交价： - 底线价： 常见问答预设： - Q: 还在吗？ A: ... - Q: 最低多少？ A: ... ``` ## 浏览器操作 SOP 需要网页操作时，使用浏览器工具或 `openclaw browser` 完成。 ### 消息回复 SOP 1. 打开闲鱼网页版（通常是 `https://www.goofish.com/`） 2. 进入消息页 3. snapshot 当前会话列表和聊天内容 4. 抽取最后 3-10 条上下文 5. 生成回复 6. **默认先展示草稿** 7. 用户同意后再把文本填入输入框并发送 ### 商品发布 / 编辑 SOP 1. 打开发布页或商品编辑页 2. 定位标题、正文、价格、分类等字段 3. 填入生成内容 4. 如需上传图片，提示用户提供素材路径或自行在网页中处理 5. **发布前必须再次确认** 6. 用户确认后再点击发布 ### 批量处理会话 SOP 当用户说“批量处理”时： - 逐个读取会话摘要 - 只处理高价值或待回复会话 - 对明显无效消息标记“可不回” - 每批建议 5-10 个，避免太猛 ## 需要按需读取的参考文件 - 买家消息回复与议价规则：`references/reply-playbook.md` - 商品上新与卖点文案：`references/listing-playbook.md` - 浏览器执行细节：`references/browser-sop.md` ## 安全与合规 禁止： - 引导私下交易 - 输出微信 / QQ / 支付宝等绕平台交易话术 - 虚构成色、维修史、配件情况 - 过度承诺售后 - 批量骚扰式自动回复 ## 快速执行建议 ### 用户让你“直接回复买家” - 直接读消息页 - 判断会话类型 - 给 1 条最优回复 - 如用户说“直接发”，再发 ### 用户让你“直接做个闲鱼运营 skill” - 创建 skill 目录 - 写 SKILL.md - 补充 3 个 reference 文件 - 如果需要，再加浏览器辅助脚本 ### 用户说“我已经登录了闲鱼网址” - 直接进入浏览器工作流，不要再要求账号密码

path: _meta.json
content: slug: zeelin-xianyu-auto-ops
version: 1.0.0

path: references/browser-sop.md
content: # 浏览器执行 SOP

## 前提

- 用户已登录闲鱼网页版
- 优先使用浏览器快照 + 定位元素 + 填写 / 点击
- 页面结构可能变化，因此每次操作前都应重新 snapshot

## 1. 消息回复流程

1. 打开闲鱼主页或消息页
2. snapshot 获取会话列表
3. 点击目标会话
4. 读取聊天区最近消息
5. 生成回复草稿
6. 默认先给用户确认
7. 如用户同意，定位输入框并填入文本
8. 点击发送

## 2. 商品发布流程

1. 打开发布页
2. snapshot 找标题 / 描述 / 价格 / 分类字段
3. 依次填写
4. 如需上传图片，等待用户提供路径或手动处理
5. 发布前再次确认
6. 点击发布

## 3. 批量处理消息

建议每次处理 5-10 个会话：
- 先识别是否值得回复
- 对低价值会话跳过
- 对议价会话优先给 1 条稳妥回复
- 对售后风险会话优先提示人工介入

## 4. 失败恢复

如果页面断开、ref 失效、弹层遮挡：
- 重新 snapshot
- 必要时刷新页面
- 不要基于旧 ref 反复点击

## 5. 风险控制

- 未经确认不要直接发布商品
- 默认不要连续批量自动发送过多消息
- 遇到异常争议对话停止自动发送


path: references/listing-playbook.md
content: # 商品上新与文案手册

## 1. 标题公式

常用标题结构：
- 品牌 + 型号 + 成色 + 核心卖点
- 品类 + 规格 + 配件情况 + 价格吸引点
- 热搜词 + 商品名 + 状态说明

示例：
- Apple iPhone 13 128G 国行在保 成色不错支持验机
- 戴森吹风机 HD08 原装配件齐全 正常使用无暗病
- 宜家书桌 9成新 同城自提优先

## 2. 正文结构

推荐顺序：
1. 一句话概述
2. 成色 / 使用时间
3. 功能是否正常
4. 瑕疵说明
5. 配件说明
6. 交易方式
7. 价格态度

模板：
- 这个是 [商品名]，平时自用为主。
- 成色 [几成新]，已使用 [时间]，功能一切正常。
- 需要说明的地方： [瑕疵]
- 配件包含： [配件列表]
- 支持 [邮寄/自提]，价格 [可小刀/不刀/诚心可聊]。

## 3. 定价建议

建议同时给出三层价格：
- 挂价：留出轻微议价空间
- 心理成交价：最希望成交的价格
- 底线价：不建议再低于此价

## 4. 提升转化的小技巧

- 瑕疵要提前说，减少售后风险
- 配件说全，降低买家犹豫
- 不夸张，不写“99新”除非真的接近
- 标题优先信息密度，不要太花哨
- 正文尽量让买家少追问

## 5. 常见预设问答

- Q: 还在吗？
  A: 在的，目前还没出。
- Q: 最低多少？
  A: 价格已经比较实在了，诚心要的话可以小聊。
- Q: 有暗病吗？
  A: 目前正常使用没发现问题，具体情况我都按实际写在描述里了。
- Q: 包邮吗？
  A: 具体看地区，合适的话我可以帮你协调一下。


path: references/reply-playbook.md
content: # 买家回复与议价手册

## 1. 会话分类

### default
典型问法：
- 还在吗
- 这个还能用吗
- 有什么问题
- 什么时候发货

回复原则：
- 先回答核心问题
- 语气自然
- 尽量减少买家继续追问的成本

示例：
- 在的，这个目前还没出。成色整体不错，正常使用没问题，如果你想看细节我也可以补充说一下。
- 还在，功能都正常，主要是 [成色/配件/瑕疵说明]，你如果介意哪部分我可以说得更细一点。

### price
典型问法：
- 最低多少
- 能便宜吗
- XX 出吗
- 包邮吧

回复策略：
- 第一次：稳价
- 第二次：小让步
- 第三次：接近底线

示例：
- 价格已经压得比较实在了，如果你诚心要，我这边可以小刀一点。
- 如果你今天能拍，我可以再让一点，已经是比较合适的价格了。
- 再低就不太合适了，这个价基本就是我这边能出的范围。

### tech
典型问法：
- 有没有拆修
- 电池多少
- 屏幕有划痕吗
- 配件齐不齐

回复原则：
- 具体
- 真实
- 避免“应该/大概/差不多”式空话

示例：
- 没有拆修过，都是正常使用痕迹。
- 屏幕有轻微使用痕迹，正常看不太明显，强光下能看到一点细纹。
- 配件是 [原装/非原装/无配件]，目前一起出的有 [列表]。

### delivery
典型问法：
- 什么时候发
- 支持自提吗
- 发什么快递

示例：
- 正常今天拍的话，我这边 [当天/明天] 可以安排发出。
- 可以同城自提，具体时间地点我们可以再对一下。
- 默认走 [快递名]，如果你有指定也可以先说。

### after-sales
典型问法：
- 不满意能退吗
- 有保修吗
- 到手有问题怎么办

示例：
- 二手商品我这边会尽量把情况描述清楚，具体也还是以平台规则为准。
- 发出前我会再确认一遍状态，避免信息不一致。

## 2. 可不回场景

遇到以下情况可以判定为“可不回”或低优先级：
- 纯表情 / 无意义消息
- 明显骚扰
- 已连续压价且无购买意愿
- 反复问已回答过的问题且态度差

## 3. 输出风格

默认要求：
- 像正常真人卖家
- 不要太客服腔
- 不要长篇大论
- 一次说清关键点
- 除非用户要求，不要过度热情

## 4. 风险词过滤

不要主动输出：
- 微信
- QQ
- 支付宝直转
- 线下绕平台
- 假一赔十类无法兑现承诺

如果买家主动提这些，建议回复：
- 这边还是尽量走平台，会更稳妥一点。


path: scripts/classify_message.py
content: #!/usr/bin/env python3
import json
import re
import sys

text = sys.stdin.read().strip() if not sys.argv[1:] else ' '.join(sys.argv[1:]).strip()

patterns = [
    ('price', [r'最低', r'便宜', r'少点', r'多少钱出', r'包邮', r'刀不刀', r'砍价']),
    ('tech', [r'成色', r'划痕', r'电池', r'维修', r'拆修', r'配件', r'功能', r'型号', r'尺寸', r'参数']),
    ('delivery', [r'发货', r'自提', r'同城', r'快递', r'什么时候发']),
    ('after-sales', [r'退', r'换', r'保修', r'售后', r'有问题怎么办']),
]

intent = 'default'
for name, regs in patterns:
    if any(re.search(p, text, re.I) for p in regs):
        intent = name
        break

print(json.dumps({'intent': intent, 'text': text}, ensure_ascii=False))


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)