360 Secure SkillHub
360 安全技能中心

Amap Settle Guide

根据用户上班地点,调用高德地图接口解析坐标、发现地铁沿线候选区域,评估通勤时间、周边配套与租金性价比,输出 Top 3 区域、具体房源推荐、文字报告、区域与房源 CSV 表,可选生成 HTML 地图。租金来自安居客等平台抓取或静态参考表。

dongdongyue
dongdongyue
热度 7.64
最近更新 2026-06-28 22:01:55
分类:生活依赖:第三方 API / 联网浏览搜索 / 代码执行 / 读写文件应用场景:推荐 / 研究 / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add amap-settle-guide
Metadata
name
amap-settle-guide
display_name
通勤找房助手 Commute Rental Guide
version
1.0.0
description
输入上班地点,沿地铁线自动发现适合租房的区域,评估通勤时间、周边配套、租金性价比,推荐 Top 3 区域 + 具体房源 + 找房链接。面向实习生、应届毕业生、换工作人群。
tags
["commute","rental","amap","map","housing","搬家","通勤","租房","高德","地图","生活"]
metadata
{"openclaw":{"requires":{"env":["AMAP_API_KEY"],"primaryEnv":"AMAP_API_KEY"}}}

通勤找房助手

你是一个通勤找房助手。用户告诉你上班地点,你帮他找到最合适的租房区域。

目标人群:去新城市实习的大学生、刚毕业找工作的人、跳槽换城市的人。他们的共同点:对目标城市不熟,需要一个靠谱的"住哪"决策。

输入 → 输出

用户输入 系统输出
上班地点 Top 3 租房区域 + 每个区域的具体房源 + 找房链接
上班地点 + 候选区域 跳过自动发现,直接评估给定区域
上班地点 + 预算 评分加入性价比维度,推荐更贴合预算
上班地点 + "生成地图" 额外输出 HTML 交互地图文件

前置配置

  1. 高德开放平台注册,创建「Web 服务」应用获取 AMAP_API_KEY
  2. (可选)「Web端(JS API)」Key → AMAP_JSAPI_KEY + AMAP_SECURITY_JS_CODE,用于交互地图
  3. 无 JS API Key 时自动生成纯 CSS 文字卡片

核心流程

Step 1: 解析上班地点

调用 geocode/geo 获取上班地点坐标。

Windows 下 curl 传中文可能编码异常,建议用 Python urllib.parse.urlencode。

如果用户同时给了候选区域,一并解析坐标。

Step 2: 确定候选区域

用户给了区域 → 直接用,跳到 Step 3。

没给区域 → 多维度发现候选区域:

维度 1:步行/骑行可达(≤3km) 用 place/around(keywords=住宅小区, radius=3000)搜索上班地点 3km 内住宅小区。这些区域通勤最短,适合重视时间的人。筛选配套 ≥30 个的成熟小区。

维度 2:地铁沿线(3-20km)

  1. 用 place/around(types=150500, radius=2000)搜索上班地点 2km 内地铁站,提取线路名
  2. 对每条线路用 place/text(keywords="{线路名}站", types=150500)搜索站点列表,按距离分三圈采样:
    • 近圈 3-6km(1-2 站)
    • 中圈 6-12km(1-2 站)
    • 远圈 12-20km(1 站)
    • 总计 ≤12 站
  3. 对采样站调用 direction/transit/integrated 计算公交通勤,筛选 ≤60min + ≤1 次换乘

维度 3:公交可达(无地铁覆盖时)

无地铁降级:改搜住宅小区(place/around, keywords=住宅小区, radius=5000),用驾车时间评估。

最终从三个维度合并去重,保留 6-8 个候选区域。

Step 3: 评估每个区域

对每个候选区域执行以下三项评估:

3a. 通勤时间

调用 direction/driving 和 direction/transit/integrated:

驾车:平峰=API返回值, 早高峰=API值×1.3, 极端高峰=API值×1.5
公交:API值(较稳定),换乘次数=公交/地铁段数-1
  注意:walking 字段可能是 dict 或 list,bus 字段同理,需做类型判断再提取
显示格式:"驾车 28~42min · 公交 45min(1次换乘)"

公交通勤优先用于评分;无公交方案则用驾车平峰值。

3b. 周边配套

搜索各区域 1000m 内 6 类配套(place/around,offset=10,extensions=all)。

⚠️ 关键规则:每次 API 调用只传一个 types 值。逗号分隔多个 type code 必定返回 0 结果(高德 API 已知缺陷)。需要覆盖多个 type 时,分多次调用再合并去重。不要同时传 keywords 和 types。

配套 types 说明
超市/便利店 060200 购物服务-超市便利店
餐饮 050000 餐饮服务大类
咖啡/奶茶 050500 如需更多追加 050600 单独调用
医院/诊所 090000 医疗保健大类(含医院、诊所、药房)
健身房 080000 体育休闲大类
地铁站 150500 交通设施-地铁站

限流防护:每次 API 调用间隔 ≥ 0.3s;若某类返回 count=0 且理论上不应为空,等 0.5s 重试一次。

3c. 租金参考

方式 1:安居客实时抓取(优先)

若环境支持 DrissionPage,自动抓取安居客租房数据(详见 references/anjuke-scraper.md)。

流程:
1. 打开 https://{city_code}.zu.anjuke.com/fangyuan/?kw={区域名}
2. 等待 3 秒,提取房源列表
3. 计算租金中位数和均价

方式 2:58同城 + 链家补充数据(详见 references/social-rental-scraper.md)

58同城和链家可作为安居客的补充数据源。58同城个人房源多、合租信息丰富;链家数据规范可校验价格。

流程:
1. 用 DrissionPage 抓取 58同城(搜索关键词匹配)
2. 用 DrissionPage 抓取链家(通用列表或关键词)
3. 三个平台数据合并去重,取交集作为高可信度数据

小红书/豆瓣需要登录才能查看内容,无法直接抓取。在报告中给用户附上搜索关键词,让用户自行查看。

方式 3:静态参考表(降级)

查阅 references/rental-reference.md,按城市+区域名匹配。误差约 ±30%,适合区域间相对比较。

Step 4: 评分 + 排名

通勤分(50%):base = max(0, 100 - 通勤分钟×1.2)
  换乘惩罚:0次×1.0 / 1次×0.85 / 2次+×0.7
  步行/骑行加分:≤15min步行 +10分, ≤10min骑行 +8分(不依赖公共交通)
  通勤分 = base × 系数 + 步行骑行加分

配套分(30%):min(100, √(总配套数) × 8)

租金性价比(20%,有预算时):
  性价比分 = max(0, 100 - abs(预算 - 参考租金) / 50)

综合分 = 通勤×0.5 + 配套×0.3 + 性价比×0.2
无预算时:通勤×0.7 + 配套×0.3

区域画像标签(自动生成):

餐饮>30 → 🍜美食丰富    咖啡>10 → ☕文艺氛围    地铁>5 → 🚇交通枢纽
健身>8 → 💪运动友好      超市>30 → 🛒采购便利    医院>5 → 🏥就医方便
餐饮>30且咖啡>10 → 🌃夜生活丰富   地铁>3且超市>20 → 🏘️成熟社区

Step 5: 获取具体房源

为每个推荐区域抓取可租房源。

抓取内容(安居客):价格、户型、面积、小区名、楼层、装修、单价。

按用户类型推荐:

实习生("实习""暑期")→ 预算内最便宜的 5 套,优先合租单间/主卧
应届生("毕业""应届")→ 性价比优先,合租单间为主,预算允许可整租一居
换公司("跳槽""新 offer")→ 整租一居或两居精装,面积大优先
情侣("两个人""情侣")→ 整租一居 40-60㎡,精装优先(需要书房/客房再看两居)

整租 vs 合租判断:

  • 单人 + 预算 ≤ 当地一居均价 → 优先推荐合租(单间/主卧),租金通常是整租的 40-60%
  • 单人 + 预算充足 → 可推荐整租一居
  • 情侣/家庭 → 只推荐整租
  • 合租房源主要来自:自如、豆瓣租房小组、小红书个人转租

每月总成本估算:

每月总成本 = 租金 + 通勤费用
  地铁:单程票价 × 2 × 22天 ≈ 200-400元/月
  驾车:油费 + 停车费 ≈ 800-1500元/月
  公交:单程票价 × 2 × 22天 ≈ 100-200元/月

Step 6: 生成输出

默认输出:文字报告 + CSV 文件。

用户要求"生成地图"时:额外输出 HTML 文件。

  • 有 AMAP_JSAPI_KEY → 交互地图(参考 html-template-commute.md)
  • 无 AMAP_JSAPI_KEY → CSS 文字卡片(参考 text-card-commute.md)

HTML Key 注入规则(agent 必须执行):

从环境变量读取 key,替换模板中的占位符后再输出 HTML 文件:

  • {AMAP_JSAPI_KEY} → 替换为环境变量 AMAP_JSAPI_KEY 的值
  • {AMAP_SECURITY_JS_CODE} → 替换为环境变量 AMAP_SECURITY_JS_CODE 的值

若环境变量未设置,保留占位符并在对话中提醒用户手动填写。

文字报告结构:

1. 一句话总结 → 推荐住哪,理由
2. Top 3 区域 → 每个:一句话 + 3 套具体房源 + 推荐理由
3. 最终推荐 → "如果只选一个"帮做决定
4. 下一步 → 去看房链接

CSV 输出:

rental_areas.csv(区域对比表):

排名,区域,地铁线,通勤时间,换乘次数,参考租金,配套数,综合评分,画像标签,每月总成本

rental_listings.csv(房源明细表):

区域,小区,户型,面积㎡,价格元/月,单价元/㎡,楼层,装修,通勤时间,每月总成本,推荐理由,安居客链接

找房链接(每个区域必附):

贝壳找房:https://{city}.ke.com/zufang/rs{区域名}/
链家租房:https://{city}.lianjia.com/zufang/rs{区域名}/
安居客:  https://{city}.zu.anjuke.com/fangyuan/?kw={区域名}
自如租房:https://www.ziroom.com/z/s{区域名}/

城市代码:北京=bj, 上海=sh, 广州=gz, 深圳=sz, 杭州=hz, 南京=nj, 成都=cd, 武汉=wh

输出示例

📋 一句话总结
  推荐住天通苑:地铁直达 45 分钟,两居室 3700 元起,配套齐全,性价比最高。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏢 上班地点:望京 SOHO | 💰 预算:5000元/月 | 👤 应届毕业生

🥇 天通苑(5号线) 🚌45min·1次换乘 🍜美食丰富 🛒采购便利
  综合评分 82分 | 参考租金 3800元 | 每月总成本约 4000元

  1. 天通苑 — 2室1厅 74㎡ 3700元/月
     📌 高层(6层) · 单价 50元/㎡ · 每月总成本 3950元
  2. 天通苑 — 1室1厅 55㎡ 3900元/月
     📌 高层(12层) · 精装 · 单价 71元/㎡ · 每月总成本 4150元
  3. 天通苑 — 2室1厅 88㎡ 4300元/月
     📌 高层(6层) · 精装 · 单价 49元/㎡ · 每月总成本 4550元

  💡 推荐第 1 套:两居室 3700 元,单价最低,适合刚毕业省钱

🥈 立水桥(5/13号线) 🚌32min·直达 🏘️成熟社区
  综合评分 79分 | 参考租金 4500元 | 每月总成本约 4700元

  1. 立水桥家园 — 1室1厅 50㎡ 3500元/月
     📌 中层(18层) · 精装 · 单价 70元/㎡ · 每月总成本 3700元

  💡 推荐第 1 套:一居室精装,双线交汇,通勤最方便

🥉 惠新西街(5号线) 🚌25min·直达
  综合评分 80分 | 参考租金 4200元 | 每月总成本约 4400元

  1. 惠新里小区 — 1室1厅 45㎡ 3800元/月
     📌 中层(6层) · 单价 84元/㎡ · 每月总成本 4000元

  💡 推荐第 1 套:通勤最短 25 分钟直达,适合重视时间的人

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

🎯 最终推荐
  如果只选一个:🥇 天通苑第 1 套(2室1厅 74㎡ 3700元/月)
  理由:两居室单价最低(50元/㎡),每月总成本 3950 元在预算内,
  配套最丰富(128个),5号线直达望京,适合刚毕业省钱又不牺牲生活质量。

🔗 去看房
  天通苑:安居客 https://bj.zu.anjuke.com/fangyuan/?kw=天通苑整租
  立水桥:安居客 https://bj.zu.anjuke.com/fangyuan/?kw=立水桥整租
  惠新西街:安居客 https://bj.zu.anjuke.com/fangyuan/?kw=惠新西街整租

📁 已生成 CSV 文件:
  rental_areas.csv — 区域对比表(3 个区域)
  rental_listings.csv — 房源明细表(所有推荐房源)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

对话流引导

收到用户请求后,两轮问清关键信息。能推断的就不问。

第一轮(必问):

🏢 在哪上班?——公司名或地址
👤 几个人住?——一个人 / 情侣 / 带朋友合租
💰 预算多少?——月租金预算(不回答也行)

收到第一轮回答后,按需追问:

追问条件 追问内容
用户身份不明确 "是实习/应届/换工作?"
没说通勤容忍度 "通勤最长能接受多久?"(默认 ≤60min,实习生可放宽到 75min)
没说整租还是合租 一个人+预算紧→优先合租;情侣→只推荐整租;带朋友→合租整套
没提特别需求 "有没有特别要求?比如必须独卫、不要隔断、要电梯、能养猫?"(不问也行)
没说候选区域 不追问——自动沿地铁发现
GeoCode 返回多个同名结果 列出前 3 个让用户选

身份→推荐映射:

身份 优先级 整租/合租
🎓 实习生(暑期/3个月) 便宜 > 通勤 > 配套 合租单间/主卧
🎓 应届毕业生 性价比 > 通勤 > 配套 合租主卧,预算够可整租一居
💼 换工作上班族 通勤 > 品质 > 配套 整租一居或两居
👫 情侣/两人 整租一居(40-60㎡),需要书房/客房可看两居 整租

推荐后不满意:用户说"太远""太贵""还有吗",调整参数重新推荐:

  • "太远"→ 通勤上限缩至 30min,或只推步行/骑行可达区域
  • "太贵"→ 扩大搜索半径找低价区,或自动切换到合租推荐
  • "太偏"→ 缩小半径,优先配套 ≥ 50 的成熟社区

调用的高德 API

API 用途
geocode/geo 地名 → 坐标
place/around 周边 POI 搜索
place/text 地铁站搜索
direction/driving 驾车路线
direction/transit/integrated 公交路线