连锁门店业务网络规划Skill

Polar Sponsor
爱发电 赞助
.NET 9.0

连锁门店网络布局规划与选址评估技能。支持多业态选址:餐饮/快消/服装/水果生鲜/娱乐场所。 核心目标:找出优质点位,开能盈利的门店。 V1.2 新增:地理空间分析(地图落位/距离/覆盖人口/等时圈/空白点扫描) V1.3 增强:Streamlit Web 界面 / 真实人口栅格 / 预测闭环 / PPT 自动生成 / 4 个实战案例 V1.3.1 调整:Web界面在Agent场景不可用,已替换为**图片模式**(matplotlib PNG) V1.3.2 增强:能力自检模块(matplotlib+AI文

连锁门店网络布局规划(V1.3.2 · 触发式加载版)

功能概述

连锁门店网络布局规划(V1.3.2 · 触发式加载版)是一项面向实际任务的技能,主要用于加载方式说明 :本文档为入口与路由表;详细参数/案例/公式请按 → 跳转 标记加载对应 reference 文件;

核心要点

  • 核心原则 :用户问什么 → 路由表匹配 → 按需加载对应模块,避免一次性加载所有内容(节省 token + 提升精度);
  • 零、首次使用(必读 · 能力自检);
  • ⭐ 首次使用本 Skill 时必须运行此检查 ,确认当前环。

使用与执行

它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

连锁门店网络布局规划(V1.3.2 · 触发式加载版)

加载方式说明:本文档为入口与路由表。详细参数/案例/公式请按 → 跳转 标记加载对应 reference 文件。 核心原则:用户问什么 → 路由表匹配 → 按需加载对应模块,避免一次性加载所有内容(节省 token + 提升精度)。

零、首次使用(必读 · 能力自检)

⭐ 首次使用本 Skill 时必须运行此检查,确认当前环境能否生成图片。

快速检查

python scripts/capability_check.py

检查 3 项能力

能力 作用 缺失时影响 修复方法
matplotlib 图表生成 必检,落位图/柱状图/雷达图 ❌ 无法生成任何可视化 pip install matplotlib contextily
AI 文生图(可选) 装修效果图/菜品图/概念图 ⚠ 无法生成 AI 图片 配置 OPENAI_API_KEY 等
Agent 图片发送 必检,MEDIA:xxx.png 发给用户 ❌ 用户收不到图 需 Hermes Agent 本身支持

自检输出示例(当前环境)

============================================================
  store-network-planner V1.3.2 能力自检
============================================================
✅ matplotlib 图表生成(核心): OK
   • matplotlib: 3.10.9 / contextily: 1.7.0 / 中文字体: wqy-zenhei.ttc
✅ AI 文生图(可选,装修图/效果图): OK
   • openai_dalle: True / provider: openai_dalle
✅ Agent 图片发送能力: OK
============================================================
整体状态: OK ✓ 所有能力正常,可以开始使用

检测时机

  • ✅ 自动:3 个 geo 脚本(geo_helper/batch/advanced)每次运行时自动检测
  • ✅ 手动:随时运行 python scripts/capability_check.py
  • ✅ Agent 决策:调用 capability_check.get_capability_summary() 快速判断

配置 AI 文生图(可选)

如需生成装修效果图,请配置以下任一后端:

方法 1:OpenAI DALL-E 3(推荐)

pip install openai
export OPENAI_API_KEY=sk-xxx

方法 2:Replicate(多模型)

pip install replicate
export REPLICATE_API_TOKEN=r8_xxx

方法 3:Stability AI

pip install stability-sdk
export STABILITY_API_KEY=sk-xxx

方法 4:配置文件

# ~/.hermes/config.yaml
image_gen:
  provider: openai  # 或 replicate / stability
  api_key: sk-xxx

未配置时:所有数据图表(落位图/柱状图/雷达图)正常生成,仅 AI 装修图功能不可用。

零、快速路由(用户提问 → 加载什么)

⚠️ 本表为本 Skill 的核心,匹配用户意图后按需加载对应章节/文件,不要默认加载全部内容。

用户提问关键词 加载章节 详细文件
这个位置好不好 / 给我打个分 / 综合评估 三、六维评估 references/assessment-model.md
周边有什么 / 配套如何 / 有什么聚客点 四、周边配套 (已内置在主文档)
能赚多少钱 / 盈亏平衡 / 多久回本 / 投资测算 六、盈利测算 references/profit-calculation.md
竞争对手 / 跨业态竞争 / 自相竞争 七、八、竞争分析 references/competitive-analysis.md
怎么开分店 / 年度计划 / 城市进入 / 加密决策 十三、十四、十五 references/business-analysis.md
关店决策 / 门店分级 / 巡查整改 十三、门店分级 (已内置在主文档)
预测日均来客 / 预测营业额 / 好店模型 十六、好店预测 references/prediction-methods.md(类比+回归合并)
聚客点叠加 / 覆盖效率 / 渗透率 十一、商圈人口 references/pedestrian-analysis.md
业态特征 / 选址特征 业务分析 references/business-analysis.md
需要什么数据 / 预测精度 模型选型 references/prediction-methods.md

多关键词时按优先级路由:盈利 > 选址 > 规划 > 预测 > 督导。

一、业态分类体系(本 Skill 支持的五大业态)

业态 子类 选址重点
餐饮 快餐/正餐/火锅/茶饮/烘焙/日料/烧烤 商圈客流/时段分布/外卖覆盖
快消 便利店/超市/药店/烟酒/母婴用品 社区入口/交通枢纽/写字楼底商
服装 女装/男装/童装/运动/鞋类/内衣 商场专柜/步行街/社区商业街
水果生鲜 水果/蔬菜/肉禽/水产/卤味 社区门口/菜市场旁/住宅密集区
娱乐 电影院/KTV/剧本杀/棋牌/健身房/儿童乐园 购物中心/商圈核心/社区配套

→ 详细业态特征/选址特征:加载 references/business-analysis.md

二、用户画像采集(首次使用必问)

1. 业态类型:餐饮/快消/服装/水果生鲜/娱乐(必选)
2. 子类选择:见各业态子类列表
3. 产品特征:标准型/短效期/高库存/低库存
4. 目标客群:年龄/消费力/职业/消费习惯
5. 开发角色:总部开发/区域督导/加盟商

💡 用户画像采集后保存到记忆,后续会话自动应用。

三、六维评估模型(→ 评估"位置好不好")

⚠️ 评估模型(专家打分,定性)≠ 预测模型(数据驱动,定量)。用户问"好店模型"实际想要的是预测模型(见十六)。

维度 权重范围 核心指标
商圈价值 20-30% 客流/客群匹配/消费力/竞争度
位置价值 20-25% 可见性/可达性/展示面/停车
周边配套 15-25% 交通/停车/聚客点/公共资源/营商环境
物业条件 10-20% 面积/层高/排烟/排水/电力
租金性价比 10-15% 租金/月营业额占比
未来潜力 5-10% 规划红利/客群增长

评级标准:≥80分优先开发 | 60-80分谨慎评估 | <60分放弃

→ 各维度详细参数/打分细则/业态差异化权重:加载 references/assessment-model.md

四、周边配套评估(第六维度 · 核心特色 · 内置概要)

4.1 交通条件(30%)

类型 标准
地铁 步行≤5min=10分,≤10min=7分,≤15min=4分
公交 ≥3条线=10分,≥2条=7分,1条=4分
主干道 主动线=10分,支路=7分
停车 ≥20免费车位=10分,付费≤5元/h=8分

4.2 聚客点叠加公式(重要)

有效客流 = 基础客流 × (1 + 聚客点加成系数)
商场/购物中心:+30-50%
地铁站:+20-40%
菜市场:+20-30%(生鲜/餐饮强相关)
写字楼:+15-25%(快餐/咖啡强相关)
学校:+10-20%
医院:+10-20%
公园:+5-15%

叠加规则:多聚客点可叠加,2个以上加分上限150%(边际递减)

→ 完整聚客点评估/商圈人口分析/覆盖效率公式:加载 references/pedestrian-analysis.md

4.3 公共资源影响(按业态)

资源 餐饮 快消 服装 水果 娱乐
医院 ★★☆ ★★★ ★★☆ ★★★ ★★☆
学校 ★★★ ★★★ ★★☆ ★★★ ★★☆
公园 ★★☆ ★★★ ★☆☆ ★★★ ★★★★
运动场 ★★☆ ★★★ ★★☆ ★★☆ ★★★★
政府 ★★☆ ★★★ ★☆☆ ★★☆ ★☆☆

五、覆盖效率标准(按业态 · 内置速查)

业态 覆盖半径 同商圈最多 租金占比上限 典型面积
餐饮 1.5-3km 3-8家 ≤15-20% 30-200㎡
快消 0.5-1km 5-15家 ≤25-35% 20-100㎡
服装 1-2km 3-6家 ≤20-30% 30-150㎡
水果生鲜 0.5-1km 3-8家 ≤20-30% 20-80㎡
娱乐 2-5km 1-3家 ≤25-35% 100-500㎡

单店覆盖人口基准(区域督导自查用):

  • 快餐:3-5万人,渗透率≥15%
  • 便利店:0.5-1万人,渗透率≥20%
  • 水果生鲜:0.5-1.5万人,渗透率≥25%

六、盈利测算(→ 加载 references/profit-calculation.md)

6.1 成本结构差异(速查)

业态 商品成本 人工 毛利率 回本周期
餐饮 30-40% 20-30% 60-70% 6-18月
快消 60-75% 10-15% 25-40% 12-24月
服装 40-55% 10-15% 45-60% 12-36月
水果生鲜 65-80% 10-15% 20-35% 12-24月
娱乐 20-35% 15-25% 65-80% 12-36月

6.2 盈亏平衡公式

月固定成本 = 租金 + 人工 + 水电 + 折旧 + 其他
月盈亏平衡营业额 = 月固定成本 ÷ 毛利率
日需来客数 = 月盈亏平衡营业额 ÷ 30 ÷ 客单价

→ 完整测算器/分业态明细模板:加载 references/profit-calculation.md + 运行 scripts/profit_model.py

七、竞争分析框架(→ 加载 references/competitive-analysis.md)

7.1 竞争强度分级

等级 系数 策略
蓝海 <0.5 优先抢占
良性 0.5-1.0 差异化定位
红海 1.0-2.0 精细化运营/特色突围
过饱和 >2.0 谨慎进入/寻找细分

7.2 跨业态竞争视角

  • 互补业态 → 互相引流(餐饮+水果+便利店)
  • 替代业态 → 争夺客流(同品类餐饮)
  • 目的性业态 → 独立需求(影院 vs 快餐)

→ 完整分析框架/对标表/攻防地图:加载 references/competitive-analysis.md

八、自相竞争管控(警戒线 · 内置速查)

业态 警戒距离 触发动作
餐饮 <1km(同品类) 提交分流分析报告
快消 <0.5km 评估密度饱和度
服装 <1km(同价位) 评估客群分层
水果生鲜 <0.5km 评估生鲜需求容量
娱乐 <2km 评估目的性消费覆盖

九~十二、商圈评估 / 人群画像 / 人口分析 / 开发周期

这些章节为参考性内容,用户主动问到"商圈怎么评估/客群怎么分析"时再加载:

  • 九、商圈评估标准(按业态) → references/business-analysis.md
  • 十、人群画像与消费能力 → references/business-analysis.md
  • 十一、商圈人口分析(聚客点叠加/覆盖效率公式) → references/pedestrian-analysis.md
  • 十二、开发周期管控(90-120天开业前关键节点) → references/business-analysis.md

十三、门店分级动态管理(区域督导核心 · 内置速查)

季度复盘 → 门店分级调整
A+店:连续3月营收超均值150% → 维持旗舰标准
A店:连续3月营收超均值100% → 观察升级
B店:连续3月营收低于均值70% → 预警整改
C店:连续3月亏损 → 评估关闭/转型/降级

关店标准:
  - 连续6月亏损且无好转趋势
  - 物业条件恶化(租金上涨/规划变更)
  - 商圈客流整体下降>30%

→ 完整分级标准/整改流程:加载 references/business-analysis.md

十四、输出模板(按场景)

14.1 新店选址评估报告

【新店选址评估报告】
业态:___  子类:___
门店名称/地址:___
商圈类型:___
评估总分:___/100(___等级)

一、商圈价值
二、位置评估
三、周边配套(核心新增)
  - 交通/停车/聚客点/公共资源/商圈成熟度
四、业态匹配分析
五、盈利预测(投资估算/成本结构/盈亏平衡/回本周期)
六、风险提示(自相竞争/跨业态/物业规划/聚客点变化)
七、综合建议:✓ 建议开店 / ⚠ 谨慎评估 / ✗ 不建议

14.2 城市进入评估报告

【城市进入评估报告】
城市:___  等级:___  目标业态:___

一、城市基本面(GDP/人口/消费力/商业地产)
二、目标业态市场分析(市场容量/竞争格局)
三、进入机会(机会商圈/差异化空间)
四、开发策略(目标门店数/业态组合/开发节奏/资源投入)
五、综合建议

14.3 门店分级整改报告

【门店分级整改报告】
门店:___  当前等级:___  整改目标:___

一、问题诊断(营收/客单/客流/成本结构)
二、根因分析(商圈衰退?管理问题?竞争挤压?)
三、整改措施(保留/降级/关闭)
四、时间表与责任人

十五、自相竞争排查 SOP(区域督导专用 · 内置)

Step 1: 距离筛查 → 新店与已开门店距离是否触发警戒线
Step 2: 客流分流分析 → 历史曲线对比、营业额影响测算
Step 3: 客群重叠度分析 → 同一目标客群比例 > 60%?
Step 4: 商圈容量评估 → 商圈总客流 ÷ 各店分流后单店客流
Step 5: 决策输出
  - 影响 < 10%:同意开店
  - 影响 10-25%:老店整改+新店谨慎
  - 影响 > 25%:新店选址调整/老店降级

十六、好店预测模型(→ 加载 references/prediction-methods.md)

用数据预测新店日均营业额,告别"凭经验"。

16.1 两种方法对比(用户最关心)

方法 适用场景 样本需求 预测精度 实施成本
类比法 <30家已开门店、快速估算 3-30家 中等(±20%) 低
回归法 30+门店数据、追求精度 ≥30家 较高(±10%) 中高

16.2 选型决策

场景 推荐
新城市进入 类比法
30+历史门店 回归法
快速估算 类比法
汇报需依据 回归法
数据质量差 类比法

16.3 模型评估标准(R²)

  • R² ≥ 0.7:模型好,预测可信
  • R² ≥ 0.5:模型一般,供参考
  • R² < 0.5:模型弱,建议补充数据

16.4 常见陷阱速查

陷阱 应对
混淆评估与预测 用户要"好店模型"→ 优先预测模型
距离相似度分母错误 用绝对距离区间(≤200m=高相似)
缺少人口密度维度 必须包含人口密度
线性回归假设过强 改用多项式/随机森林
没有置信区间 必须输出80%置信区间
参数硬编码 用配置文件

→ 完整相似度模型/特征工程/代码实现:加载 references/prediction-methods.md → 运行脚本:scripts/analogy_predictor.py 或 scripts/regression_predictor.py → Agent实现参考:加载 references/prediction-model-tech.md(陷阱与改进的技术细节)

十七、实战案例(持续沉淀)

此章节用于沉淀真实案例,每个案例包含:背景 → 决策依据 → 实际结果 → 反思。

案例编号 类型 状态 关键决策
案例1 北京方庄单店选址 ✅ 已落地 评分82,类比法预测准确
案例2 北京海淀区域规划 ✅ 已落地 空白点扫描发现TOP5
案例3 西单关停+酒仙桥补位 ✅ 已落地 攻防地图辅助决策
案例4 上海茶饮+便利店组合 📋 计划中 跨业态选址分析

→ 完整案例(背景/过程/结果/教训):加载 references/cases.md → 案例数据文件:assets/cases/case*.csv(已有20家门店+8候选+10竞品的真实数据)

十八、文件索引(按用途分类)

核心文档(按场景加载)

文件 何时加载
references/assessment-model.md 用户问"打分/评估/这个位置好不好"
references/profit-calculation.md 用户问"盈亏/回本/投资"
references/competitive-analysis.md 用户问"竞争/对标/自相竞争"
references/business-analysis.md 用户问"业态特征/商圈/客群/周期/分级"
references/pedestrian-analysis.md 用户问"聚客点/客流/覆盖效率"
references/prediction-methods.md 用户问"预测/好店模型/类比/回归"
references/prediction-model-tech.md Agent内部实现参考(相似度缺陷/置信区间/配置化)
references/geo-analysis.md 用户问"地图/落位/距离/覆盖人口/等时圈/空白点"(V1.2 新增)

可执行脚本

脚本 用途 何时运行
scripts/site_scoring.py 交互式六维评分 用户需要打分时
scripts/profit_model.py 盈亏平衡/回本周期 用户需要测算时
scripts/analogy_predictor.py 类比法预测日均来客 新城市/样本少时
scripts/regression_predictor.py 回归法精确预测 30+门店数据时
scripts/geo_helper.py 阶段1:单店地图分析(5功能) 评估新店/单点排查
scripts/geo_batch.py 阶段2:批量地图分析(3功能) 年度规划/多店落位
scripts/geo_advanced.py 阶段3:高级地图分析(4功能) 战略规划/区域扫描
scripts/map_providers.py 多数据源适配器(高德/百度/腾讯/OSM) 自动加载
scripts/visualizer.py 静态图片生成器(替代 folium/plotly) 所有可视化场景
scripts/capability_check.py 能力自检(matplotlib + AI文生图 + Agent) 首次使用
scripts/startup_check.py 启动包装(geo脚本入口自动检测) 自动
scripts/ai_image_gen.py AI 文生图(装修图/效果图/菜品图) 可选
scripts/image_analyzer.py vision 图片分析(4场景) 督导巡查
scripts/image_compressor.py 图片智能压缩(4档位) 微信/报告/缩略图
scripts/vi_checker.py VI 一致性检测(颜色+Logo) 品牌合规
scripts/heatmap_gen.py 客流热力图(3数据源) 真实人流
scripts/multi_agent.py 多 Agent 并行调度 加速分析

资产文件

文件 用途
assets/site-checklist.md 选址检查清单(实地调研用)
assets/stores-template.csv 已有门店数据 CSV 模板
assets/candidates-template.csv 候选店数据 CSV 模板
assets/cases/*.csv 4 个实战案例数据

模板文件

文件 用途
templates/integration_pipeline.py 端到端:天气+客流+PDF 一键集成(V1.3.6 新增)

加载策略总结(Agent 必须遵守)

  1. 入口加载:仅加载本 SKILL.md(约 8K tokens),理解路由表
  2. 意图识别:根据用户提问匹配 trigger_keywords
  3. 按需加载:仅加载匹配的 reference 文件
  4. 避免陷阱:
    • ❌ 不要默认加载所有 reference
    • ❌ 看到"好店模型"不要先讲评估模型
    • ❌ 不要在用户没问预测时主动展开第十六章
  5. 上下文感知:用户已说明业态/城市/角色后,跳过画像采集

依赖的可复用 Skill(类级能力)

本 Skill 大量使用了两个类级共享 Skill,新场景可直接套用:

  • software-development/agent-image-output:Agent 场景下的图片输出范式(matplotlib PNG + MEDIA: 协议 + 能力自检 + base64 嵌图)。本 Skill 的 scripts/visualizer.py、scripts/capability_check.py、scripts/startup_check.py、scripts/ai_image_gen.py 全部基于此范式实现。
  • software-development/pptx-and-matplotlib-pitfalls:python-pptx 与 matplotlib 的真实踩坑集(font.size 单位、marker 名称、gridspec 索引、文件大小、Agg backend)。本 Skill 开发过程中踩中的坑已沉淀到该 reference。

→ 当你需要为新场景设计 Agent 友好的可视化脚本时,先加载这两个 Skill,再写代码。

十九、地理空间分析(V1.2/V1.3 增强 · 全阶段覆盖)

为不会编程的督导/网络规划同事提供地图能力。三阶段可选其一或全部。

19.1 触发词

  • 地图 / 落位图 / 选址图 / 落点
  • 周边 / 半径 / 距离 / 自相竞争
  • 覆盖人口 / 等时圈 / 空白点 / 区域扫描
  • 攻防地图 / 竞品分布 / 网络规划
  • 经纬度 / 地理坐标 / 缓冲区 / 通勤

19.2 数据源选择(首次使用)

默认推荐:高德地图(国内 POI 最准,6000次/日免费)

数据源 是否需要 Key 申请地址
高德(推荐) ✅ https://lbs.amap.com/dev/key/app
百度 ✅ https://lbsyun.baidu.com/apiconsole/key
腾讯 ✅ https://lbs.qq.com/webservice_v1/guide-geocoder
OpenStreetMap ❌(数据较粗) -

切换数据源:直接修改 scripts/config.json 即可。

19.3 三阶段能力速览

阶段 适用场景 脚本 功能数
阶段1 轻量 单店选址/单点排查 geo_helper.py 5
阶段2 批量 年度规划/多店落位 geo_batch.py 3
阶段3 高级 战略规划/区域扫描 geo_advanced.py 4

用户选择规则(询问用户):

1. 仅评估一个店 → 阶段1
2. 评估多个候选店/做年度规划 → 阶段2
3. 区域级战略规划/城市进入 → 阶段3
4. 一次性用到所有功能 → 全部加载

19.4 阶段1 速查(5个核心)

# 1. 地址解析
python scripts/geo_helper.py geocode "北京西单北大街1号"

# 2. 两点距离
python scripts/geo_helper.py distance --from "A" --to "B"

# 3. 周边搜索(如 1km 内的商场)
python scripts/geo_helper.py nearby --address "A" --radius 1000 --type 商场

# 4. 简单落位图(HTML)
python scripts/geo_helper.py map --address "A" --with-poi

# 5. 自相竞争检查(与已有门店的距离)
python scripts/geo_helper.py cannibal --new "新店地址" --existing assets/stores-template.csv

19.5 阶段2 速查(3个核心)

# 1. 批量距离矩阵(多候选 × 多已有)
python scripts/geo_batch.py distance-matrix 
  --input assets/candidates-template.csv 
  --existing assets/stores-template.csv

# 2. 批量落位图(自店+候选+竞品)
python scripts/geo_batch.py map 
  --stores assets/stores-template.csv 
  --candidates assets/candidates-template.csv 
  --competitors 竞品.csv

# 3. 攻防地图(自店 vs 竞品)
python scripts/geo_batch.py battlemap 
  --self 自店.csv --competitor 竞品.csv

19.6 阶段3 速查(4个核心)

# 1. 真实覆盖人口分析
python scripts/geo_advanced.py population --stores stores.csv --radius 3000

# 2. 等时圈(步行15分钟真实可达)
python scripts/geo_advanced.py isochrone --address "A" --minutes 15 --mode walking

# 3. 空白点智能识别(区域扫描)
python scripts/geo_advanced.py gap-analysis --region "北京海淀区" --stores stores.csv

# 4. 完整商圈报告(综合输出)
python scripts/geo_advanced.py full-report --new-store "新店" --format html

19.7 输出格式

核心原则:本 Skill 在 Agent/Chatbot 场景下,所有可视化输出 PNG 图片(手机可看/QQ/微信可发)。

每个脚本运行时询问用户:

    1. PNG 图片(推荐,50-150KB,手机可看)
    1. Excel 文件(数据导向)
    1. 两者都要

也可以直接用 --format 参数指定(image / excel / both)。

已删除的格式(V1.3.1):

  • ❌ HTML 网页(需要浏览器,Agent 场景无法使用)
  • ❌ Streamlit Web 界面(用户本地无 Python 环境)
  • ❌ Folium 交互地图(同上)

保留的格式:

  • ✅ PNG 静态图片(含底图、指北针、图例)
  • ✅ Excel 数据报表
  • ✅ PPT 演示文稿(图片嵌入)

19.8 用户友好入口(Agent 场景专用)

核心约束:本 Skill 由 OpenClaw/HermesAgent 调用,用户没有 Python 环境、没有浏览器、看不到 HTML。

Agent 必须做的:

  • ✅ 所有可视化输出 PNG 图片(matplotlib 静态图)
  • ✅ 用 MEDIA:/path/to/image.png 直接发图给用户
  • ✅ 中文标注 + 底图 + 图例(白底,督导友好)
  • ✅ 单图 ≤ 200KB(适合手机流量)
  • ❌ 禁止生成 HTML(用户打不开)
  • ❌ 禁止依赖 Web 界面(Streamlit/Flask)

输出文件清单(Agent 可直接 send_media):

脚本 输出文件 典型大小
geo_helper.py nearby nearby_商场.png ~100KB
geo_helper.py map location_map.png ~100KB
geo_helper.py cannibal cannibal_map.png + cannibal_chart.png 50-150KB
geo_batch.py distance-matrix distance_matrix_map.png ~100KB
geo_batch.py map batch_map.png ~100KB
geo_batch.py battlemap battle_map.png ~100KB
geo_advanced.py population population_chart.png ~150KB
geo_advanced.py gap-analysis gap_map.png ~100KB
geo_advanced.py full-report full_report_map.png + full_report_summary.png 100-150KB
report_generator store_report.pptx ~40KB(10页)

Agent 回复模板:

已为您生成 3 张分析图:
📊 落位图:MEDIA:/path/to/location_map.png
📊 自相竞争:MEDIA:/path/to/cannibal_chart.png
📈 完整报告:MEDIA:/path/to/full_report_summary.png

主要结论:
- 综合评分 82/100(推荐开店)
- 3km 覆盖人口 18.5万
- 月营业额预测 ¥194,400
- 自相竞争 0 家触发

19.10 V1.3.3+ 增强模块(vision + VI + 热力图 + 多Agent + 图片压缩)

增强 实现 使用方式
真实图片分析 scripts/image_analyzer.py (13KB) vision_analyze 4场景:督导巡查/VI合规/装修验收/竞品分析
VI 一致性检测 scripts/vi_checker.py (14KB) OpenCV颜色直方图+Logo检测+评分卡,纯本地无需AI
客流热力图 scripts/heatmap_gen.py (15KB) 3数据源:CSV/高德API/百度API,IDW插值+时段分析
图片智能压缩 scripts/image_compressor.py (20KB) 4档位:wechat(200-500KB)/report(50-150KB)/thumbnail(20-50KB)/email(400-800KB),批量+EXIF旋转+WebP
多 Agent 并行 scripts/multi_agent.py (9KB) 3任务模板:单店/批量/预测,delegate_task 批量调用
能力自检 scripts/capability_check.py (12KB) 首次运行自动检测
启动包装 scripts/startup_check.py (3KB) 3个geo脚本入口自动检测
AI 文生图 scripts/ai_image_gen.py (11KB) OpenAI DALL-E / Stability / Replicate
静态图片生成器 scripts/visualizer.py (32KB) 5 种核心图
真实人口栅格 scripts/geo_enhanced/population.py (10KB) WorldPop/LandScan
预测+落位图闭环 scripts/geo_enhanced/prediction_integration.py (15KB) 类比法/回归法 + matplotlib
PPT 自动生成 scripts/geo_enhanced/report_generator.py (24KB) 10页标准PPT
5 个实战案例 references/cases.md + assets/cases/*.csv 用户问"案例"时自动加载

多 Agent 并行调用模板(V1.3.3 新):

# Agent 一次发起 3 个并行任务
from multi_agent import dispatch_parallel_tasks
from delegate_task import delegate_task  # Hermes 内置

# 1. 构造共享 context
context = {
    "new_store_address": "北京丰台区方庄南路",
    "existing_stores_csv": "assets/cases/case1-existing-stores.csv",
    "candidates_csv": "assets/cases/case1-candidates.csv",
    "output_dir": "/tmp/store_analysis"
}

# 2. 调度 3 个任务
dispatch = dispatch_parallel_tasks(context)
# → 返回 3 个任务模板(单店/批量/预测)

# 3. Agent 用 delegate_task 并行执行(节省 60-180s)
results = delegate_task(tasks=[
    {"goal": dispatch["tasks"][0]["task"]["instructions"], "context": context, "toolsets": [...]},
    {"goal": dispatch["tasks"][1]["task"]["instructions"], "context": context, "toolsets": [...]},
    {"goal": dispatch["tasks"][2]["task"]["instructions"], "context": context, "toolsets": [...]},
])

# 4. 汇总
from multi_agent import aggregate_results
summary = aggregate_results(results)
# → {"consensus_score": 78, "total_images": 9, "successful": 3}

vision 图片分析调用模板:

from image_analyzer import analyze_store_photo, parse_vision_response, generate_improvement_report, render_audit_report

# 1. 生成 prompt
action = analyze_store_photo("/path/to/store.jpg", "store_audit")

# 2. Agent 调用 vision_analyze(实际由 Agent 执行)
# vision_analyze(image=action["image_path"], question=action["prompt"])

# 3. 解析响应
parsed = parse_vision_response(vision_response)

# 4. 生成报告
report = generate_improvement_report(parsed, store_name="方庄店")
img = render_audit_report(report, "audit_report.png")

VI 检测(纯本地,无需 AI):

from vi_checker import full_vi_check, render_vi_report, DEFAULT_VI_CONFIG
result = full_vi_check("store.jpg", DEFAULT_VI_CONFIG, "方庄店")
img = render_vi_report(result, "vi_report.png")
# → 评分 65/100,违规:白超上限 / 主色集中

客流热力图:

from heatmap_gen import generate_heatmap
generate_heatmap(
    "csv:heatmap_data.csv",  # 或 "amap:API_KEY"
    store_locations=[{"lng": 116.43, "lat": 39.86, "name": "方庄店"}],
    output_path="heatmap.png"
)

能力自检一键运行:

python scripts/capability_check.py
# 输出 3 项检查:matplotlib / AI文生图 / Agent发送

AI 装修图生成(需配置文生图模型):

from ai_image_gen import generate_store_exterior, generate_dish_photo
generate_store_exterior(style="modern_chinese", output_path="store.png")
generate_dish_photo("宫保鸡丁", output_path="dish.png")

Web 界面:❌ 已删除(V1.3.1)

Agent 调用图片生成(一行代码):

from visualizer import plot_single_site
plot_single_site(
    center_lng=116.43, center_lat=39.86,
    address="北京方庄", radius_m=1500,
    facilities={"商场": [(lng, lat, "名称")]},
    output_path="output.png"
)
# 然后用 send_message(action="send", message="MEDIA:/abs/path/output.png")

19.10.5 图片智能压缩(image_compressor.py)

督导在门店用手机拍的照片(2-5MB)传到工作群经常被吐槽"太占内存"。本脚本提供 4 个档位的智能压缩:

4 档位:

档位 目标大小 最长边 适用场景
wechat 200-500KB 1920px 微信/飞书/钉钉群消息
report 50-150KB 1280px Word/PPT 报告插图
thumbnail 20-50KB 400px 列表缩略图/预览
email 400-800KB 2048px 邮件附件(可接受稍大)

4 阶梯压缩算法:

  1. EXIF 自动旋转(手机横屏照片方向修正)
  2. 智能缩尺寸(按最长边)
  3. 调整 JPEG quality(85→70→50)
  4. 转 WebP(同质量小 25-35%)

单图压缩:

python image_compressor.py photo.jpg --preset wechat
python image_compressor.py photo.jpg --use-for feishu  # 智能选档
python image_compressor.py photo.jpg --target-size 300 --format webp

批量压缩:

python image_compressor.py /path/to/photos/ --preset wechat --output /path/out/ --recursive
python image_compressor.py "*.jpg" --preset report

链式调用(被其他脚本集成):

from image_compressor import compress_for_wechat, compress_for_report, compress_for_thumbnail

# 压到微信合适大小
out_path = compress_for_wechat("store_photo.jpg")

# 集成到 report_generator.py
def generate_vi_report(image_path, ...):
    # 先压缩再插入报告
    thumb = compress_for_thumbnail(image_path)
    ...

实测效果(模拟 10MB 手机照片):

  • 单图:10582 KB → 490 KB(节省 95.4%)
  • 批量 5 张:10810 KB → 1158 KB(节省 89.3%)

19.10.6 天气 API 自动接入(weather_api.py · V1.3.6 新增)

客流预测需要天气数据,本脚本自动从和风天气 / 心知天气 / mock 三个数据源获取:

3 个 Provider:

Provider 是否需要 Key 限频 数据源
和风天气(qweather) ✅(QWEATHER_KEY) 1000 次/天 实测数据最准
心知天气(seniverse) ✅(SENIVERSE_KEY) 500 次/天 15 天预报
mock ❌ - 沙箱环境/无 Key 时降级

Key 配置:

export QWEATHER_KEY=xxx
export SENIVERSE_KEY=xxx

统一入口(带自动降级):

from weather_api import get_weather_forecast

# 沙箱环境/无 Key:自动降级到 mock(不抛异常)
forecast = get_weather_forecast(
    location="北京方庄",          # 支持 "城市名" 或 "lng,lat"
    days=7,
    provider="qweather",          # 缺 Key 时自动降级 mock
    use_mock_on_fail=True,        # 默认 True
)
# → [{"date": "...", "temp_max": 28, "temp_min": 20,
#    "precipitation": 0, "condition": "晴", "source": "..."}, ...]

# 与客流预测集成(一行集成)
from footfall_forecast import predict_week
results = predict_week(
    baseline=280, start_date="2026-06-15",
    weather_week=forecast,
)

CLI 模式(注意:INFO 信息走 stderr,JSON 干净输出到 stdout):

python weather_api.py --provider qweather --city 北京方庄 --days 7
python weather_api.py --provider mock --city 116.43,39.86 --days 5 --json

与客流预测联动公式:

最终客流 = 基线 × (工作日因子 × 节假日因子 × 天气因子 × 季节因子)
其中天气因子由 temp_max/precipitation 自动计算(参考 weather_factor() 函数)

19.10.7 PDF 报告生成(pdf_report.py · V1.3.6 新增)

为开店建议/客流预测生成可邮件发送的 PDF 报告。3 个场景:

函数 用途 输出页数
generate_site_pdf() 选址评估(封面+摘要+配套+风险+建议) 2-3 页
generate_footfall_pdf() 客流周报(封面+概览+明细表+因子+建议) 3-4 页
generate_comprehensive_pdf() 综合报告(选址+客流+建议) 4-5 页

3 个入口:

# 1. 选址 PDF
from pdf_report import generate_site_pdf
out = generate_site_pdf(
    store_name="方庄店", address="北京方庄", score=78,
    monthly_revenue=380000, payback_months=14, population=125000,
    facility_data={"商场": 5, "地铁": 2},
    risks=["自相竞争"], suggestions=["签 5 年租约"],
    output_path="/tmp/report.pdf",
)

# 2. 客流 PDF
from pdf_report import generate_footfall_pdf
from footfall_forecast import predict_week
results = predict_week(280, "2026-06-15")
out = generate_footfall_pdf("A001", "北京方庄", results, "/tmp/footfall.pdf")

# 3. CLI
python pdf_report.py --demo --output test.pdf     # 客流周报
python pdf_report.py --type site --data data.json --output site.pdf

依赖:

pip install fpdf2 pypdf    # fpdf2 生成 + pypdf 验证
# 中文字体:系统需装 wqy-zenhei(/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc)
# 降级:没字体也能跑,中文变方块但不崩

19.11 详细文档

→ 完整功能说明/参数详解/常见场景:references/geo-analysis.md → 4 个实战案例(数据+背景+决策+结果+教训):references/cases.md → API 速查(真实函数名/参数格式/返回 key):references/api-quickref.md ⚠️ 链式调用前必看

19.12 链式调用 30 秒探测术

调用本 Skill 任何 from scripts.xxx import ... 之前,先用三件套确认真实 API:

# 1. 列真实函数名(防 score_candidate 这种乌龙)
grep -E "^def [a-z]" /home/ubuntu/.hermes/skills/store-network-planner/scripts/xxx.py

# 2. dump 真实返回结构(防 tasks vs dispatches 这种乌龙)
python3 -c "
import sys; sys.path.insert(0, '/home/ubuntu/.hermes/skills/store-network-planner/scripts')
from xxx import func; import json
print(json.dumps(func(real_args), ensure_ascii=False, indent=2)[:1500])
"

# 3. 看函数签名
grep -A 20 "def target_func" /home/ubuntu/.hermes/skills/store-network-planner/scripts/xxx.py

完整战例 + 通用原则见 systematic-debugging/references/api-surfacing.md。

19.13 V1.3.6 踩坑防御(必读 · 新增 5 个坑)

本节专门记录 V1.3.5 → V1.3.6 期间真实踩中的 5 个坑。任何修改 V1.3.6 新模块的代码前必看。

坑 触发场景 表现 修复
坑 A from image_compressor import compress_for_wechat TypeError: compress_image() got an unexpected keyword argument 'description' PRESETS[&

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习