Used Market Watch
한국 중고거래 매물을 자연어 검색 / 채팅형 브리핑 / persistent watch rule / 신규·가격하락 체크 / 주기 해석 기반 운영 계획 형태로 다루는 OpenClaw 스킬이다.
핵심 원칙:
- - chat-first: 사람이 읽는 한국어 브리핑을 먼저 만든다.
- json-ready: cron/상위 레이어 연결용 JSON도 바로 뽑는다.
- watch-state 단순화: GUI/DB 대신
data/watch-rules.json 하나로 상태를 유지한다. - natural-language ops: 검색과 감시 등록을 분리하지 않고 한 줄 한국어 요청에서 watch intent를 최대한 바로 해석한다.
- plan-aware:
1시간마다, 30분마다, 매일 아침 8시, 브리핑해줘 같은 운영 문장을 rule 메타와 실행 힌트로 변환한다. - upstream 계승:
used-market-notifier의 마켓 범위, 가격 파싱, Playwright 검색 감각, 신규/가격하락 개념을 OpenClaw용 CLI로 재구성했다.
Source dependency / analysis
분석 기준 upstream:
- - INLINECODE6
- public repo: INLINECODE7
핵심 참고 내용은 references/upstream-notes.md에 정리돼 있다.
Scripts
1) 자연어 파싱 확인
CODEBLOCK0
2) 원샷 검색 / 브리핑
CODEBLOCK1
출력 특징:
- - 마켓별 개수 요약
- 대표 매물 리스트
- 링크 포함
- text / JSON 선택 가능
3) 자연어 watch 미리보기 / 저장
CODEBLOCK2
동작 특징:
- -
신규만, 가격하락만, 가격 내려가면 같은 표현을 해석한다. - INLINECODE12 ,
30분마다, 매일 아침 8시 같은 주기 표현을 해석한다. - INLINECODE15 ,
요약해줘 같은 표현을 브리핑 모드로 해석한다. - INLINECODE17 ,
10건 같은 limit 힌트를 반영한다. - 이름을 따로 안 주면 keyword 기반 규칙 이름을 만든다.
- 같은 이름이 있으면
watch-upsert가 갱신한다. - INLINECODE20 은 저장 명령, 실행 명령, cron payload, systemEvent 힌트, 사용자 확인 문구까지 한 번에 묶어 준다.
- 해석 결과에 권장 실행 명령과 cron 예시를 포함한다.
4) watch rule 목록 / 상태 관리
CODEBLOCK3
5) watch 점검 / 이벤트 피드
CODEBLOCK4
점검 결과:
- - 신규 매물(
new_listing) - 가격하락(
price_drop) - 각 rule별 snapshot 요약
- INLINECODE23 포함 JSON
- 최근 이벤트 조회용 INLINECODE24
Runtime notes
필수 준비:
CODEBLOCK5
테스트:
CODEBLOCK6
Stored files
- -
data/watch-rules.json: watch rule + last_seen + dedupe event state - INLINECODE26 : upstream 분석 메모
- INLINECODE27 : 배포용 패키지 아티팩트
Recommended workflow
- 1. 사용자가 한 줄로 원하는 물건/가격/마켓을 말하면
search로 먼저 브리핑한다. - 반복 추적이 필요하면
watch-plan으로 해석을 확인하거나 바로 watch-upsert로 규칙을 저장한다. - 채팅 자동화/cron 연결이 목적이면
integration-plan으로 저장 명령, 실행 명령, cron payload, systemEvent 힌트를 한 번에 만든다. - heartbeat/cron에서는
watch-check --alerts-only --json 또는 특정 rule 대상 watch-check "이름" --json을 사용한다. - 운영 중에는
watch-list, watch-events, watch-enable, watch-disable로 상태를 관리한다. - 상위 레이어(OpenClaw)가 텔레그램/디스코드 전달을 담당한다.
Current limitations
- - 각 마켓 DOM 구조 변경에 민감하다.
- 로그인 필요/봇 차단이 강한 상황에서는 결과가 줄 수 있다.
- 중고나라는 네이버 검색 결과 기반이라 가격 정보가 제한적일 수 있다.
- 현재는 Playwright 단일 경로이며 Selenium fallback은 넣지 않았다.
二手市场监控
这是一个OpenClaw技能,用于以自然语言搜索/聊天式简报/持久监控规则/新品·降价检查/周期解析运营计划的形式处理韩国二手交易商品。
核心原则:
- - 聊天优先:首先制作人类可读的韩语简报。
- JSON就绪:同时直接提取用于cron/上层连接的JSON。
- 监控状态简化:使用data/watch-rules.json单个文件维护状态,无需GUI/数据库。
- 自然语言操作:不区分搜索和监控注册,在一行韩语请求中尽可能直接解析监控意图。
- 计划感知:将每小时、每30分钟、每天早上8点、给我简报等运营语句转换为规则元数据和执行提示。
- 继承上游:将used-market-notifier的市场范围、价格解析、Playwright搜索感知、新品/降价概念重新构建为OpenClaw专用CLI。
来源依赖/分析
分析基准上游:
- - tmp/used-market-notifier-upstream
- 公共仓库:twbeatles/used-market-notifier
核心参考内容整理在references/upstream-notes.md中。
脚本
1) 自然语言解析确认
bash
python skills/used-market-watch/scripts/used
marketwatch.py parse 蚕室 iPhone 15 Pro 120万韩元以下 胡萝卜/番长 -破损
2) 一次性搜索/简报
bash
python skills/used-market-watch/scripts/used
marketwatch.py search 蚕室 iPhone 15 Pro 120万韩元以下 胡萝卜/番长 -破损
python skills/used-market-watch/scripts/used
marketwatch.py search MacBook Air M2 包括中古市场 --json
输出特点:
- - 按市场汇总数量
- 代表性商品列表
- 包含链接
- 可选择文本/JSON格式
3) 自然语言监控预览/保存
bash
python skills/used-market-watch/scripts/used
marketwatch.py watch-plan iPhone 15 Pro 每小时只监控新品
python skills/used-market-watch/scripts/used
marketwatch.py watch-plan MacBook Air 降价时通知我 --json
python skills/used-market-watch/scripts/used
marketwatch.py watch-plan PS5 每天早上8点给我简报
python skills/used-market-watch/scripts/used
marketwatch.py integration-plan iPhone 15 Pro 只监控新品每小时一次
python skills/used-market-watch/scripts/used
marketwatch.py integration-plan PS5 每天早上8点给我简报 --json
python skills/used-market-watch/scripts/used
marketwatch.py integration-plan MacBook Air 降价时通知我 --persist --json
python skills/used-market-watch/scripts/used
marketwatch.py watch-upsert iPhone 15 Pro 每小时只监控新品
python skills/used-market-watch/scripts/used
marketwatch.py watch-upsert 蚕室 MacBook 降价 MacBook Air M2 蚕室 只监控降价
运行特点:
- - 解析只新品、只降价、降价时等表达。
- 解析每小时、每30分钟、每天早上8点等周期表达。
- 将给我简报、给我总结等表达解析为简报模式。
- 反映5个、10件等数量限制提示。
- 如未单独指定名称,则基于关键词创建规则名称。
- 如果存在相同名称,watch-upsert会更新。
- integration-plan一次性提供保存命令、执行命令、cron负载、systemEvent提示、用户确认语句。
- 解析结果中包含建议的执行命令和cron示例。
4) 监控规则列表/状态管理
bash
python skills/used-market-watch/scripts/used
marketwatch.py watch-list
python skills/used-market-watch/scripts/used
marketwatch.py watch-enable 蚕室 MacBook 降价
python skills/used-market-watch/scripts/used
marketwatch.py watch-disable 蚕室 MacBook 降价
python skills/used-market-watch/scripts/used
marketwatch.py watch-remove 蚕室 MacBook 降价
5) 监控检查/事件反馈
bash
python skills/used-market-watch/scripts/used
marketwatch.py watch-check
python skills/used-market-watch/scripts/used
marketwatch.py watch-check --alerts-only --json
python skills/used-market-watch/scripts/used
marketwatch.py watch-events --limit 20
python skills/used-market-watch/scripts/used
marketwatch.py watch-events 蚕室 MacBook 降价 --json
检查结果:
- - 新品(newlisting)
- 降价(pricedrop)
- 各规则快照摘要
- 包含summary.event_counts的JSON
- 用于查询最近事件的watch-events
运行时说明
必要准备:
bash
pip install playwright
python -m playwright install chromium
测试:
bash
python -m pytest skills/used-market-watch/tests -q
存储文件
- - data/watch-rules.json:监控规则 + 最后查看时间 + 去重事件状态
- references/upstream-notes.md:上游分析笔记
- dist/used-market-watch.skill:部署用包工件
推荐工作流程
- 1. 用户用一句话说出想要的商品/价格/市场时,先用search进行简报。
- 如需持续追踪,用watch-plan确认解析结果,或直接用watch-upsert保存规则。
- 若目的是聊天自动化/cron连接,用integration-plan一次性生成保存命令、执行命令、cron负载、systemEvent提示。
- 在心跳/cron中使用watch-check --alerts-only --json或针对特定规则的watch-check 名称 --json。
- 运营期间用watch-list、watch-events、watch-enable、watch-disable管理状态。
- 上层(OpenClaw)负责Telegram/Discord消息传递。
当前限制
- - 对各市场DOM结构变化敏感。
- 在需要登录/机器人拦截较强的情况下,结果可能减少。
- 中古市场基于Naver搜索结果,价格信息可能有限。
- 目前仅使用Playwright单一路径,未添加Selenium回退。