REV 2.0 — 2026.04.24
RENT-OPS 架构蓝图
MODE-DRIVEN · 模式驱动
CONFIG-FIRST · 配置优先
PROGRESSIVE ANTI-DETECT · 渐进式反检测
AI 租房助手框架 · 工程化架构全解
8
modes
7+
platforms
8
dimensions
6
cities
⭐ 33 stars🍴 7 forks📄 CC BY-NC 4.0🔄 last push: 2026-04-23
01
四层架构 / System Layers
Markdown 驱动的 Agent 模式层 + Python 执行引擎 + 运行时数据 + YAML 配置。遵循 Agent Skills 开放标准。
🧠
模式层 / Modes
每个 .md 文件定义一条完整决策链路——输入解析到输出格式。Agent 读取 Markdown 指令自动执行。
auto-evaluate.mdscan.md verify.mdscrape.md risk.mdvisit.md
⚙️
脚本层 / Scripts
Python 执行引擎。浏览器自动化、高德 API 调用、数据清洗、城市运行时构建。通过 python.sh 封装 venv。
scrape_douban.pyamap_query.py build_city_runtime.pylib/amap.py lib/city.pysetup.sh doctor.shpython.sh
📊
数据层 / Data
运行时状态存储。listings.md 是唯一真源(SSOT),所有视图从此派生。含地图可视化和列表视图两个 HTML 渲染器。
listings.mdpipeline.md reports/*.mdlistings.json city-runtime.jsonmap-view.html listings-view.htmlscan-history.tsv
🔧
配置层 / Config
YAML 驱动一切。新增城市只需一份 .yml,URL 模板自动替换 {city_code}。
profile.ymlcities/*.yml platforms.ymlamap.yml
02
八模式智能路由 / Mode Routing
输入任意内容,SKILL.md 自动判断走哪个 Mode。粘贴链接自动评估,关键词触发对应流程。
🎯
auto-evaluate
核心模式。粘贴房源链接 → 自动抓取 → 假房源快检 → 红线检查 → 八维打分 → 生成报告 → 入 Tracker。全流程 6 Step 自动串联。
/rent {URL}
🔍
scan
五级扫描策略:MCP 结构化 → 专用爬虫 → WebFetch → API → WebSearch。每层失败自动降级。
/rent scan
🕷️
scrape
豆瓣三级反检测 + 小红书 MediaCrawler
/rent scrape
🔬
verify
通用 5 项 + 平台 10+ 专项检测
/rent verify {URL}
⚠️
risk
小区避雷,4 种搜索角度
/rent risk {小区}
🗺️
map
高德可视化,房源定位 + 通勤圈
/rent map
📋
tracker
状态流转:发现→评估→约看→签约
/rent tracker
👀
visit
路线规划 + Checklist + 砍价话术
/rent visit
v0.2 COMING SOON → /rent compare(多房源横向对比) /rent negotiate(砍价策略) /rent batch(批量评估)
03
八维度评分体系 / Scoring Matrix
每维 1-5 分,总分取简单平均。数据驱动优先,WebSearch 兜底补充。
  • 🎯
    性价比
    租金 vs 同商圈均价
    WebSearch
  • 🚇
    通勤
    到工作地耗时 · 多锚点加权
    高德 API
  • 🏠
    房况
    装修 / 采光 / 楼层 / 朝向
    抓取字段
  • 🔐
    安全
    封闭管理 / 门禁 / 物业
    WebSearch
  • 🛒
    便利
    超市 / 餐饮 / 地铁步行距离
    高德 POI
  • 👤
    可靠性
    直租 vs 二房东 · 信息一致性
    verify
  • ⚠️
    风险
    假房源检测信号映射
    verify
  • 🔄
    灵活性
    押付 / 起租期 / 退租条款
    详情字段
通勤评分映射
耗时≤20min20-3030-4545-60>60
评分54321
* 换乘 ≥2 次额外 -0.5 分
4.5+
立刻约看
4.0
值得看
3.5
凑合
<3.5
不建议
便利分计算

加权 POI 密度 → 归一化 1-5 分
地铁 ×3.0 · 超市 ×2.0 · 便利店 ×1.5 · 餐饮 ×1.0
缓存到 amap-cache.json,同小区复用

04
Auto-Evaluate 完整流程 / Pipeline
从粘贴链接到输出报告,6 个 Step 全自动串联。
0

抓取房源

Playwright 优先 → WebFetch 兜底 → 用户粘贴文本。提取:小区 / 户型 / 面积 / 租金 / 楼层 / 朝向 / 联系方式 / 发布时间

.5

假房源快检 (Verify Lite)

通用 5 项检测:价格异常 / 隔断 / 信息一致性 / 联系方式 / 挂牌时长。1+ RED → 硬拦截

1

红线检查

对照 profile.yml 的 dealbreakers 逐条检查。命中则暂停流程,等待用户决策

2

八维度评分

性价比(WebSearch) → 通勤(高德) → 房况(抓取) → 安全(搜索) → 便利(POI) → 可靠性 → 风险 → 灵活性

3

生成评估报告

输出 reports/{###}-{slug}-{date}.md — 基本信息 + 评分表 + 通勤 + 风险 + 砍价话术

4

更新 Tracker

写入 listings.md (SSOT)。同 URL 不重复,更新已有条目。状态设为"已评估"

5

输出摘要

月租 / 总分 / 各维度 / 风险信号 / 红线命中 / 报告链接

05
五级扫描 / Scan Fallback
L0
MCP 结构化数据源 NEW
唯果直租 官方 MCP Server — 100% 直租、字段结构化、带坐标。30 次/天免费。配置:.mcp.json.example → .mcp.json 填入 vgk_live_xxx
北京上海深圳广州杭州
L2.5
专用爬虫(优先级最高)
豆瓣三级反检测 (CDP → stealth → 交互式) + 小红书 MediaCrawler
🟤 豆瓣📕 小红书
L1
WebFetch 列表页
需 cookie 初始化。URL 模板化,{city_code} 自动替换
🏠 贝壳🟢 自如🟠 58🔵 安居客🏢 房天下
L3
WebSearch 兜底
其他级别不足时补充。需额外验证 URL 有效性
去重:URL 精确 → ID 匹配(电话/昵称) → 图片匹配 · 结果写入 pipeline.md + scan-history.tsv
06
假房源检测 / Verify System
通用检测 · 5 项
💰 价格异常
🔴 低于均价 30%+ · 🟡 15-30% · 🟢 ±15%
📐 隔断检测
🔴 一居 <15㎡ / 两居 ≤30㎡ · 🟡 一居 15-20㎡
📝 信息一致性
标题 vs 正文矛盾?关键信息缺失或模糊?
📞 联系方式
🔴 要求先转账 · 🟡 仅微信无电话
📅 挂牌时长
🔴 >90天 · 🟡 45-90天 · 🟢 <45天
平台专项检测
🟤 豆瓣
发帖人主页分析 · 评论区揭露 · 文案模板 · 多城市跨发
📕 小红书
评论翻车 · 博主主页 · 图片风险(水印 / 样板间)
🏠 贝壳/链家
经纪人挂房量(50+ 警告)· 房源状态异常
🟠 58/安居客
同图检测 · 刷新频率 · 认证状态(未认证+低价)
1+ RED → 高风险
⚠️
2+ YELLOW → 中风险
其他 → 低风险
07
豆瓣爬虫三级反检测 / Scraper

优先级 1 · CDP 模式(最强反检测)
  接管真实 Arc 浏览器 → remote-debugging-port=9222
  完全真实浏览器指纹,无法被检测
   // Arc 未运行?

优先级 2 · Stealth 模式
  Playwright + playwright-stealth 补丁
  注入 Cookie / Session 复用登录态
   // 触发验证码?

优先级 3 · 交互式模式(兜底)
  打开浏览器 → 用户手动拖滑块 → Enter 继续

// 数据流
$ 翻页 (8页×25条) 标题过滤 详情抓取 片区过滤
   douban_raw.jsonl  (全部)
   douban_filtered.jsonl  (符合条件)
   douban_session.json  (登录态复用)
08
高德地图深度集成 / Amap Integration
🚇
通勤计算
多锚点加权(v0.3+)。profile.yml 的 anchors[] 支持多通勤目的地,每锚点按 importance 1-5 独立计算后聚合。支持 transit / driving / walking / bicycling。失败锚点不计入权重。
amap_query.py commute --to "小区"
📍
POI 周边搜索
搜索超市、地铁、医院、学校等类别,按距离排序。支持自定义半径和数量。
amap_query.py poi --category supermarket
📊
便利分计算
加权 POI 密度评分,归一化 1-5 分。地铁 ×3.0、超市 ×2.0、便利店 ×1.5。缓存复用。
amap_query.py convenience --location "小区"
🗺️
地图可视化
map-view.html 消费 city-runtime.json + listings.json,动态渲染标注 + 片区着色 + 通勤等时圈。
build_city_runtime.py → city-runtime.json
09
设计模式 / Design Patterns

配置驱动 YAML

URL、片区、豆瓣组 ID 全部配置化。{city_code} 自动替换。新增城市只需一份 yml。

分层兜底 FALLBACK

L2.5 爬虫 → L1 WebFetch → L2 API → L3 WebSearch。每层失败自动降级。

登录态持久化 SESSION

CDP 保存 session → stealth 加载复用。跨次运行无需重新登录。

单一真源 SSOT

listings.md 唯一状态来源。pipeline / reports / map 都是派生视图。

API 缓存 SHA1

高德结果缓存 amap-cache.json。键 = SHA1(endpoint+params),同小区只查一次。

去重证据链 DEDUP

URL 精确 → ID(电话/昵称) → 图片匹配。标记"可能重复"让用户确认。

10
跨工具兼容 / Compatibility
标准 Agent Skill 格式。装一次,四大 AI 工具全局可用。
🤖
Claude Code
ANTHROPIC
⌨️
Cursor
AI IDE
🟢
Gemini CLI
GOOGLE
🔵
VS Code
COPILOT
$ git clone https://github.com/BENZEMA216/rent-ops.git ~/.claude/skills/rent
$ ~/.claude/skills/rent/scripts/setup.sh
$ /rent {房源链接}
安装状态检查: scripts/doctor.sh · 遵循 agentskills.io 开放标准