Install
openclaw skills install @perrykono-debug/industrial-park-investment-assistant产业园招商作战指挥中心 🚀。三层架构:数据基础层(客户·房源·渠道·竞品·项目信息)→ 业务执行层(跟进治理·带看成交·报价谈判·稳商留商·渠道经营)→ 智能决策层(NBA引擎·数据洞察)。 你负责谈客户,我负责记录事实、驱动任务、辅助决策。核心场景:客户建档·查房源·今日待办·报价方案·异议处理·带看准备·合同签约渠道经营。 含时效性校验(数据"待更新"时强制人工核实)、No Agency护栏(金额让步必须主管审批)、每日09:00自动推送合并工作台。 支持多项目架构(同时管理多个园区)和知识库分离(腾讯文档/本地文件/API/SQLite)。
openclaw skills install @perrykono-debug/industrial-park-investment-assistantChangelog v2.17.0 (2026-06-13):
- ✅ 新增「渠道经营」模块——渠道维护提醒(周度)+ 渠道开发提醒(月度)
- ✅ 新增
channel_management.py脚本(渠道跟进提醒、健康度分级、数据录入+效果分析)- ✅ 渠道健康度四色分级:🟢正常/🟡需联系/🔴超期/🚨高危
- ✅ 渠道效果分析:转化率排名、效果评级(🏆卓越/✅优秀/📈一般/📉待提升)、改进建议
- ✅ AI 对话即录入大幅强化语音友好版:自然语言输入识别(渠道/客户/房源三域覆盖)
- ✅ 新增「拍照自动识别」功能:名片/登记表/房源截图拍照上传,AI自动识别并入库
- ✅ 新增「腾讯文档链接一键配置」:用户发链接说「按这个配置」,AI自动读取文档→解析→创建数据库
- ✅ NBA引擎增强:黄金窗口提醒(24h/48h/72h)+ 阶段停滞预警 + NBA推荐矩阵
- ✅ 今日工作台升级为合并版:客户跟进+渠道跟进+预警信息一条消息看完,不再分时间推送
- ✅ 自动化任务改为「每日工作台推送」:每天08:30自动推送合并版(原招商周报已整合)
- ✅ 报价方案生成器 v2.0:重写
generate_proposal.py,读取SQLite房源数据,含租金+物业+车位费明细,支持按面积/预算匹配- ✅ 产业政策自动推送:用户录入客户时AI自动识别行业,主动搜索并推送相关补贴政策,无需专门指令
- ✅ 版本号升至 2.18.0
Changelog v2.18.0 (2026-06-14):
- ✅ 三层架构重构:数据基础层 → 业务执行层 → 智能决策层
- ✅ 产品描述更新:从"八大能力"升级为"三层架构"
- ✅ 架构索引表:各层级内容快速定位
Changelog v2.16.0 (2026-06-13):
- ✅ 新增「材料清单模式」首次配置流程(用户只需上传文件,AI自动解析入库)
- ✅ 新增
parse_excel.py脚本(自动解析Excel/CSV,支持多种表头格式)- ✅ 新增「渠道跟进记录」表(SQLite + 同步脚本)
- ✅ 新增「产业政策自动搜索」功能(AI通过WebSearch自动查询公开政策信息)
- ✅ 改造「第3步」章节为材料清单模式(含上传方式、AI解析流程)
- ✅ 版本号升至 2.16.0
Changelog v2.9.0 (2026-06-11):
- ✅ 更新简介:八大核心能力展示(客户中心·跟进治理·NBA引擎·带看成交·报价谈判·稳商留商·渠道经营·智库周报)
- ✅ GREETING.md 精简表格版(欢迎语+使用指南+能力展示+快速上手指引)
- ✅ 七大 Skill 体系完善(客户开发·企业研究·客户跟进·成交助手·稳商留商·今日工作台·渠道经营)
- ✅ 数据接口统一(ParkDataInterface + 4个适配器)
- ✅ 集成测试通过(20/20测试通过)
Changelog v1.5.0 (2026-06-07):
- ✅ 新增 Skill 6 今日工作台(Dashboard 视图)
- ✅ 新增 Cron 定时推送(每日 09:00 自动推送今日待办)
- ✅ 完善 7 个 Skill 模块(客户开发/企业研究/跟进/NBA/成交/稳商/渠道)
- ✅ 修复路径拼写 Bug 和 NBA 推荐引擎
- ✅ 数据接口层(ParkDataInterface)统一
Changelog v2.15.0 (2026-06-13):
- ✅ 新增 SQLite 本地数据库模式(查询<0.1秒,零token消耗)
- ✅ 新增 SQLiteSource 数据源(knowledge_base.py v1.2)
- ✅ 新增 sync_to_sqlite.py 同步脚本
- ✅ 新增 AI 执行优先级(先查SQLite,未命中才调MCP)
- ✅ 新增"本地数据库模式 (SQLite)"章节
- ✅ 版本号升至 2.15.0
Changelog v2.14.0 (2026-06-12):
- ✅ 新增"数据位置索引"章节(AI必读),明确各数据表的 file_id 和 sheet_id
- ✅ 新增"快速模式"章节,支持用户选择快速查询(只读取本地缓存)
- ✅ 新增 AI 执行检查清单(
references/AI执行检查清单.md)- ✅ 优化缓存逻辑:
knowledge_base.py添加内存缓存 + 文件缓存 + TTL 检查- ✅ 创建缓存性能测试脚本:
scripts/test_cache_performance.py- ✅ 版本号升至 2.14.0
Changelog v2.13.0 (2026-06-12):
- ✅ MCP调用优化:增强"并发调用"规则(规则1),添加并发判断规则 + 执行示例
- ✅ MCP调用优化:增强"Session缓存"规则(规则2),添加缓存管理 + 失效规则 + 示例
- ✅ MCP调用优化:新增"性能监控"规则(规则8),AI自动监控MCP调用次数
- ✅ MCP调用优化:新增"预加载"规则(规则9),预测用户需求提前加载数据
- ✅ 修复问题:删除重复内容(原规则2出现两次)
- ✅ 重新编号规则(1-9),完善规则说明
- ✅ 版本号升至 2.13.0
Changelog v2.12.0 (2026-06-12):
- ✅ 知识库抽象层:新增
knowledge_base.py统一数据访问接口- ✅ 多数据源支持:腾讯文档、本地文件(JSON/CSV)、API(未来)
- ✅ 脚本重构:
smart_recommend.py和query_park_data.py使用KnowledgeBase- ✅ 多项目架构:支持同时管理多个园区(通过
--project参数)- ✅ 项目初始化:
init_project.py快速创建新项目- ✅ 数据格式支持:MCP原始格式 + 紧凑格式(减少70%文件大小)
- ✅ 版本号升至 2.12.0
Changelog v2.11.0 (2026-06-12):
- ✅ MCP调用优化:移除所有硬编码 file_id,统一使用配置变量
{CONFIG.tencent_doc.*}- ✅ 新增 MCP 调用优化指引章节(批量调用+缓存策略+工具选择规则)
- ✅ 修复脚本路径(
~/.qclaw/skills/→~/.workbuddy/skills/)- ✅ 版本号升至 2.11.0
Changelog v1.4.0 (2026-06-04):
- 见 ClawHub 历史记录
本 Skill 不再硬编码任何 file_id。所有腾讯文档 ID 必须通过配置变量引用。
{
"investment_assistant": {
"park_name": "YOUR_PARK_NAME",
"knowledge_source": "tencent_doc",
"tencent_doc": {
"客户管理": "YOUR_DOC_ID_HERE",
"客户管理_sheet_id": "YOUR_SHEET_ID_HERE",
"销控表": "YOUR_DOC_ID_HERE",
"销控表_sheet_id": "YOUR_SHEET_ID_HERE",
"租金报价": "YOUR_DOC_ID_HERE",
"租金报价_sheet_id": "YOUR_SHEET_ID_HERE",
"配套资源": "YOUR_DOC_ID_HERE",
"配套资源_sheet_id": "YOUR_SHEET_ID_HERE",
"产业政策": "YOUR_DOC_ID_HERE"
}
}
}
在本文档所有 MCP 调用示例中,{CONFIG.tencent_doc.XX} 表示引用配置中的对应值:
| 变量名 | 含义 | 必需 |
|---|---|---|
{CONFIG.tencent_doc.客户管理} | 客户管理表 file_id | ✅ |
{CONFIG.tencent_doc.销控表} | 房源销控表 file_id | ✅ |
{CONFIG.tencent_doc.租金报价} | 租金报价表 file_id | ✅ |
{CONFIG.tencent_doc.配套资源} | 配套资源表 file_id | ✅ |
{CONFIG.tencent_doc.产业政策} | 产业政策文档 file_id | ✅ |
⚠️ 若配置变量未设置,AI 应提示: 「⚠️ 腾讯文档配置未完成,请先在 openclaw.json 中配置
investment_assistant.tencent_doc。」
AI 在调用 MCP 前,必须先查此表,不要猜测或尝试多个文档!
| 数据表名 | 存储位置 | file_id | sheet_id | 字段示例 |
|---|---|---|---|---|
| 房源销控表 | 腾讯文档(智能表格) | {CONFIG.tencent_doc.销控表} | {CONFIG.tencent_doc.销控表_sheet_id} | 房间号、楼层、面积(㎡)、状态、业态、底价(元/㎡/天) |
| 客户跟进记录 | 腾讯文档(智能表格) | {CONFIG.tencent_doc.客户管理} | {CONFIG.tencent_doc.客户管理_sheet_id} | 企业名称、联系人、最近跟进、意向等级、客户状态 |
| 租金报价表 | 腾讯文档(智能表格) | {CONFIG.tencent_doc.租金报价} | {CONFIG.tencent_doc.租金报价_sheet_id} | 区域、楼层区间、底价区间、物业费 |
| 配套资源表 | 腾讯文档(智能表格) | {CONFIG.tencent_doc.配套资源} | {CONFIG.tencent_doc.配套资源_sheet_id} | 配套名称、配套类别、详情 |
| 产业政策库 | 腾讯文档(智能文档) | {CONFIG.tencent_doc.产业政策} | - | 政策名称、补贴金额、申报条件 |
~/.workbuddy/workspace/investment-assistant/projects/<项目ID>/data/
├── 房源销控表.json # MCP原始格式(含cached_at时间戳)
├── 客户跟进记录.json
├── 租金报价表.json
└── cache/ # 新增:文件缓存
├── 房源销控表.cache
└── 客户跟进记录.cache
AI 读取数据时的判断顺序(必须遵循!):
第1步:检查本地缓存(最快,<0.001秒)
→ 检查 data/*.json 是否存在且未过期(<30分钟)
→ 若存在 → 直接使用,不调用 MCP
第2步:检查文件缓存(快速,<0.01秒)
→ 检查 cache/*.cache 是否存在且未过期(<30分钟)
→ 若存在 → 直接使用,不调用 MCP
第3步:缓存未命中,调用 MCP(慢,2-3秒)
→ 根据上方"数据位置索引表"获取正确的 file_id 和 sheet_id
→ 不要猜测,不要尝试多个文档!
→ 调用成功后,立即保存到 data/*.json 和 cache/*.cache
当用户说「快速查询」「用缓存」「别调MCP」时,AI 只读取本地缓存,不调用 MCP。
触发词:
AI 行为:
data/*.json 或 cache/*.cache退出快速模式:
核心优势:查询 <0.1秒,零 token 消耗 AI 优先读 SQLite,只在同步时才调 MCP。
~/.workbuddy/workspace/investment-assistant/local_db.sqlite
Step 0 → 检查本地数据库是否存在且新鲜(<24小时)
DB_PATH = ~/.workbuddy/workspace/investment-assistant/local_db.sqlite
→ 若存在且新鲜 → 直接查 SQLite(Step 3)
→ 若否则过期 → 先同步(Step 1),再查询(Step 3)
Step 1 → 同步腾讯文档数据到 SQLite(仅在 DB 不存在/过期时)
调用 mcp__tencent-docs__smartsheet.list_records 读取数据
写入 SQLite(使用 sync_to_sqlite.py 或 kb.sync_to_sqlite())
Step 2 → 标记同步完成
更新 sync_log 表
Step 3 → 查询 SQLite(超快,零 token)
使用 Python sqlite3 模块查询
格式化输出
| 触发词 | 说明 |
|---|---|
同步数据库 / 刷新数据库 / 更新本地数据 | 全量同步所有表 |
同步 房源销控表 | 同步指定表 |
AI 同步行为:
kb.sync_to_sqlite(table_name, data) 写入 SQLitesync_log 表记录同步时间| 模式 | 触发词 | 行为 |
|---|---|---|
| 普通查询 | 「查房源」「客户跟进记录」 | 先检查 DB 是否新鲜 → 是则直接查 SQLite |
| 快速查询 | 「快速查询」「用缓存」「别调 MCP」 | 强制读 SQLite,不调 MCP |
| 强制刷新 | 「刷新」「重新读取」「调 MCP」 | 强制重新同步,再查询 |
| 表名 | 说明 | 主要字段 |
|---|---|---|
房源销控表 | 房源信息 | 房间号, 楼层, 面积(㎡), 状态, 业态, 底价 |
客户跟进记录 | 客户管理 | 企业名称, 联系人, 电话, 意向等级, 最后跟进日期 |
租金报价表 | 租金标准 | 区域, 楼层区间, 底价区间, 物业费 |
配套资源表 | 园区配套 | 配套名称, 配套类别, 详情 |
产业政策库 | 政策文件 | 政策名称, 补贴金额, 申报条件 |
sync_log | 同步日志 | table_name, sync_time, status, record_count |
创建每日同步任务(推荐):
@WorkBuddy 创建一个定时任务,
名称"招商数据同步",
每天 08:00 执行,
提示词:"同步招商助手所有表数据(房源销控表、客户跟进记录、租金报价表、配套资源表、产业政策库)到本地 SQLite 数据库"
automation 参数参考:
scheduleType: "recurring"rrule: "FREQ=DAILY;BYHOUR=8;BYMINUTE=0"prompt: "同步招商助手所有表数据到本地SQLite数据库,使用mcp__tencent-docs__smartsheet.list_records读取数据,调用kb.sync_to_sqlite()写入~/.workbuddy/workspace/investment-assistant/local_db.sqlite"新用户体验目标:用户只需上传文件,AI 自动解析入库。 不再需要用户按模板填表、上传腾讯文档、配置 file_id。
| # | 材料名称 | 格式 | 说明 | 必需性 |
|---|---|---|---|---|
| 1 | 房源销控表 | Excel / 腾讯文档 | 一房一价:房间号、楼层、面积、状态、业态、底价 | ✅ 必需 |
| 2 | 客户跟进表 | Excel / 腾讯文档 / 截图 | 企业名称、联系人、电话、意向等级、最后跟进日期 | ✅ 必需 |
| 3 | 渠道跟进表 | Excel / 腾讯文档 | 渠道名称、对接人、推荐客户数、成交数、佣金比例 | ✅ 必需 |
| 4 | 项目推介材料 | PPT / PDF | 园区介绍、核心卖点、交通配套、标杆企业(含配套资源) | ✅ 必需 |
| 5 | 产业政策 | — | AI自动搜索公开信息,无需用户提供 | 🤖 自动 |
第1步:用户上传文件
→ 用户说:「这是我的房源销控表(上传Excel)」
第2步:AI自动解析
→ 调用 parse_excel.py 解析Excel
→ 识别表头(房间号/面积/状态/底价)
→ 转换为结构化数据
第3步:预览确认(防止解析错误)
→ AI输出:「已读取房源销控表,识别到 45 条记录,预览前5条:」
→ 展示表格(房间号/楼层/面积/状态/底价)
→ 询问:「确认无误请输入『确认入库』,有错误请告诉我哪条。」
第4步:用户确认后入库
→ 写入本地SQLite(~/.workbuddy/workspace/investment-assistant/local_db.sqlite)
→ 同步到腾讯文档(自动创建智能表格,返回链接)
→ 输出:「✅ 数据已入库!腾讯文档链接:https://...」
第5步:以后用户自己更新数据
→ 直接在腾讯文档里编辑(新增客户、修改房源状态等)
→ 每天08:00 AI自动从腾讯文档同步到本地SQLite
核心逻辑:用户录入客户时,AI自动识别行业+所在地,主动查相关政策并推送。
触发场景(自动识别,无需专门指令):
| 用户说了什么 | AI 自动执行 |
|---|---|
| 「刚才见了XX科技,做生物医药的」 | 识别行业→搜索生物医药政策→主动推送 |
| 「帮我录一下XX科技,做AI的」 | 同上 |
| 「XX科技是半导体行业的」 | 搜索半导体产业政策并推送 |
| (用户录入客户时自动触发) | AI判断客户行业,自动搜索相关产业政策 |
AI 执行规则:
当用户录入新客户/提到客户行业时:
→ 自动识别客户所属行业(生物医药/半导体/AI/智能制造/新能源等)
→ 自动搜索该行业相关产业政策
WebSearch "[行业] 产业补贴政策 site.gov.cn"
WebSearch "[行业] 扶持政策"
→ 解析搜索结果:政策名称、补贴金额、申报条件、来源链接
→ 主动推送给用户:「📢 [企业名]属于[行业]行业,
可关注以下产业政策:...」
→ 可选:写入 产业政策库 表
输出示例:
📢 XX科技属于生物医药行业,为您找到以下相关产业政策:
① 上海市生物医药产业扶持资金
- 补贴金额:最高1000万元/年
- 申报条件:研发投入≥500万+自主知识产权
- 来源:上海市经信委
② 宝山区生物医药专项补贴
- 补贴金额:最高500万元
- 申报条件:入驻宝山区的生物医药企业
- 来源:宝山区人民政府
③ 高新技术企业税收优惠
- 补贴金额:企业所得税减按15%征收
- 申报条件:被认定为高新技术企业
- 来源:国家税务总局
💡 提示:XX科技符合2项政策申报条件,建议进一步了解。
触发词:
AI 行为:
WebSearch 搜索([地区] [行业] 产业补贴政策 site.gov.cn)产业政策库 表当用户说「快速查询」「用缓存」「别调 MCP」时,AI 只读取本地缓存/数据库,不调用 MCP。
触发词:
AI 行为:
data/*.json 或 cache/*.cache退出快速模式:
一句话:一个对话窗口,覆盖招商全流程。
| 你说 | Agent 做 |
|---|---|
| 「XX栋还有没有500平的?」 | 查知识库,列出匹配房源和报价 |
| 「帮我查下XX科技」 | 搜索企业背景,分析产业匹配度 |
| 「客户说太贵了怎么回?」 | 出TCO对比表 + 异议处理话术 |
| 「帮我写个跟进邮件」 | 生成可直接发送的邮件内容 |
| 「哪些客户该跟进了?」 | 列出超期未跟进和高意向客户 |
| 「客户也在看竞品XX园区」 | 现场生成竞品对比话术 + 差异化优势分析 |
六类能力全景:
┌─────────────────────────────────────────────┐
│ ① 园区信息查询 房源·租金·配套·政策 │
│ ② 客户研究辅助 企业背景·扩张信号·产业匹配 │
│ ③ 招商推进辅助 需求判断·TCO·异议·推进建议 │
│ ④ 招商表达辅助 方案·邮件·话术·带看总结 │
│ ⑤ 客户管理辅助 超期提醒·高意向·续租窗口 │
└─────────────────────────────────────────────┘
安装前请阅读。以下原则不可绕过。
| 原则 | 说明 |
|---|---|
| 数据本地存储 | 所有业务数据(租户信息、房源、报价、政策)存储在你本地的 workspace 目录,不会上传到任何服务器 |
| 不外发数据 | 本 Skill 不包含任何网络发送逻辑,AI 回复和文件操作均在本地完成 |
| 文件读取安全 | 上传 Excel 等文件仅用于本地知识库构建,不会发送到第三方 |
| 竞品查询边界 | 竞品分析、企业背景查询仅调用公开可搜索信息,不涉及非公开数据 |
| No Agency | 金额让步、折扣承诺必须主管审批,AI 不替代人做决策 |
通过 SkillHub 搜索 industrial-park-investment-assistant 安装。
新架构支持同时管理多个园区!
# 创建新项目(自动生成配置和数据目录)
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/init_project.py \
meilan-center "示例产业园A" "示例市XX区" "50000㎡" "张经理 1XX-XXXX-XXXX"
# 创建第二个项目
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/init_project.py \
changsha-park "示例软件园" "示例市XX区" "80000㎡" "李经理 1XX-XXXX-XXXX"
新用户体验:只需上传文件,AI 自动解析入库,无需手动填表。
| # | 材料名称 | 格式 | 说明 | 必需性 |
|---|---|---|---|---|
| 1 | 房源销控表 | Excel / 腾讯文档 | 一房一价:房间号、楼层、面积、状态、业态、底价 | ✅ 必需 |
| 2 | 客户跟进表 | Excel / 腾讯文档 / 截图 | 企业名称、联系人、电话、意向等级、最后跟进日期 | ✅ 必需 |
| 3 | 渠道跟进表 | Excel / 腾讯文档 | 渠道名称、对接人、推荐客户数、成交数、佣金比例 | ✅ 必需 |
| 4 | 项目推介材料 | PPT / PDF | 园区介绍、核心卖点、交通配套、标杆企业(含配套资源) | ✅ 必需 |
| 5 | 产业政策 | — | AI自动搜索公开信息,无需用户提供 | 🤖 自动 |
方式A — 下载模板填写后上传(最简单)✅:
第1步:下载Excel模板
→ AI交付「招商助手配置模板-v2.16.0.xlsx」
→ 包含5个子表:房源清单、客户跟进表、渠道跟进表、竞品情报库、项目推介材料
第2步:在Excel中填写真实数据
→ 每个子表都有示例数据,按照示例格式填写
→ 无需了解表结构,只需填写空白处
第3步:上传填写好的Excel文件到对话框
→ 用户说:「这是我的招商数据(上传Excel)」
第4步:AI自动解析入库
→ AI调用 parse_excel.py 自动解析
→ 预览识别结果,确认无误后入库
→ 写入本地SQLite,完成配置
方式B — 直接对话上传(灵活):
用户:「这是我的房源销控表(上传Excel)」
AI:已读取,识别到 45 条记录,预览前5条...
确认无误请输入『确认入库』,有错误请告诉我哪条。
用户:「确认入库」
AI:✅ 数据已入库!腾讯文档链接:https://...
方式C — 腾讯文档(团队使用):
~/.workbuddy/workspace/investment-assistant/projects/<项目ID>/config.json触发词:
方式A — 上传配置模板Excel文件(一键配置)✅:
第1步:用户下载配置模板
→ AI交付「招商助手配置模板-v2.16.0.xlsx」
→ 包含5个子表:房源清单、客户跟进表、渠道跟进表、竞品情报库、项目推介材料
第2步:用户在Excel中填写真实数据
→ 每个子表都有示例数据,按照示例格式填写
→ 无需了解表结构,只需填写空白处
第3步:用户上传填写好的Excel文件
→ 用户说:「这是我的招商数据(上传Excel)」
→ 或说:「按照这个文件创建专家」
第4步:AI自动调用 parse_config_excel.py 解析
→ 自动识别所有5个子表
→ 解析每个子表的数据
→ 预览识别结果
第5步:用户确认后入库
→ 写入本地SQLite(~/.workbuddy/workspace/investment-assistant/local_db.sqlite)
→ 输出:「✅ 数据已入库!共写入 X 条记录」
→ 提示:「以后可以直接在AI对话框中更新数据,我会自动同步到数据库」
方式B — 单独上传某个表格(灵活):
用户:「这是我的房源销控表(上传Excel)」
AI:已读取,识别到 45 条记录,预览前5条...
确认无误请输入『确认入库』,有错误请告诉我哪条。
用户:「确认入库」
AI:✅ 数据已入库!腾讯文档链接:https://...
方式C — 腾讯文档(团队使用):
~/.workbuddy/workspace/investment-assistant/projects/<项目ID>/config.json
**方式D — 拍照自动识别(最快)📸:**
场景:名片、客户登记表、房源信息表、渠道信息截图
第1步:用户拍照 → 用手机拍下名片/登记表/截图 → 直接上传到对话框
第2步:AI视觉自动识别 → 自动读取图片内容 → 提取结构化信息(企业名/联系人/电话/面积等)
第3步:预览确认 → AI输出识别结果,用户确认或修正
第4步:自动入库 → 写入SQLite数据库 → 输出:「✅ 已录入XXX」
**方式E — 腾讯文档链接一键配置 🔗(推荐):**
场景:用户已有腾讯文档(房源表/客户表等),直接发链接给AI
第1步:用户发链接 → 用户说:「按这个配置我的数据」 → 发腾讯文档链接
第2步:AI自动读取 → 调用腾讯文档MCP工具读取文档内容 → 自动识别文档类型(表格/文档/智能表格) → 解析表结构(表头/字段/数据类型)
第3步:AI自动创建数据库 → 根据文档结构,自动在SQLite创建对应表 → 写入所有数据
第4步:完成配置 → 输出:「✅ 已按文档配置完成!共导入X条记录」 → 设置定时同步(每天08:00自动更新) → 「以后在文档里更新数据,AI会自动同步到本地」
**技术说明(AI自动执行):**
- 当用户上传Excel文件并说「按照这个文件创建专家」时,AI自动调用:
```bash
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/parse_config_excel.py <上传的Excel路径>
首次配置(只需一次):
第1步:把腾讯文档链接发给AI → 「按这个配置」
或:上传Excel/拍照 → 「按这个文件配置」
第2步:AI自动读取 → 解析 → 创建SQLite数据库
第3步:完成配置 ✅
日常使用(从第二天开始):
每天早上8:00 → AI自动同步腾讯文档到本地SQLite(无需人工操作)
日常查询 → AI直接读SQLite(<0.1秒,零token消耗)
日常录入 → 语音/文字说话即可,AI自动写入数据库
同步更新 → 说「同步一下数据库」手动触发刷新
一句话:第一天配置一次,以后只管说话就行。
核心逻辑:用户录入客户时,AI自动识别行业+所在地,主动查相关政策并推送。
触发场景(自动识别,无需专门指令):
| 用户说了什么 | AI 自动执行 |
|---|---|
| 「刚才见了XX科技,做生物医药的」 | 识别行业→搜索生物医药政策→主动推送 |
| 「帮我录一下XX科技,做AI的」 | 同上 |
| 「XX科技是半导体行业的」 | 搜索半导体产业政策并推送 |
| (用户录入客户时自动触发) | AI判断客户行业,自动搜索相关产业政策 |
AI 执行规则:
当用户录入新客户/提到客户行业时:
→ 自动识别客户所属行业(生物医药/半导体/AI/智能制造/新能源等)
→ 自动搜索该行业相关产业政策
WebSearch "[行业] 产业补贴政策 site.gov.cn"
WebSearch "[行业] 扶持政策"
→ 解析搜索结果:政策名称、补贴金额、申报条件、来源链接
→ 主动推送给用户:「📢 [企业名]属于[行业]行业,
可关注以下产业政策:...」
→ 可选:写入 产业政策库 表
输出示例:
📢 XX科技属于生物医药行业,为您找到以下相关产业政策:
① 上海市生物医药产业扶持资金
- 补贴金额:最高1000万元/年
- 申报条件:研发投入≥500万+自主知识产权
- 来源:上海市经信委
② 宝山区生物医药专项补贴
- 补贴金额:最高500万元
- 申报条件:入驻宝山区的生物医药企业
- 来源:宝山区人民政府
③ 高新技术企业税收优惠
- 补贴金额:企业所得税减按15%征收
- 申报条件:被认定为高新技术企业
- 来源:国家税务总局
💡 提示:XX科技符合2项政策申报条件,建议进一步了解。
触发词:
AI 行为:
WebSearch 搜索([地区] [行业] 产业补贴政策 site.gov.cn)产业政策库 表# 为示例产业园A项目推荐房源
python3 smart_recommend.py --project meilan-center --requirements '{"需求面积": 300, "意向区域": "高区"}'
# 查询示例软件园项目的房源
python3 query_park_data.py --project changsha-park --type 房源
# 不指定项目时使用默认项目
python3 smart_recommend.py --requirements '{"需求面积": 300}'
安装配置完成后,像聊天一样提问即可。不需要特殊指令。
多项目对话示例:
本Skill通过腾讯文档MCP工具直接读取数据。
第1步:在腾讯文档创建智能表格,包含以下工作表:
第2步:复制文档ID(URL中 /s/ 后面的部分)
第3步:以下代码示例中的 {CONFIG.tencent_doc.客户管理} 等变量会自动读取配置,无需手动替换:
# 示例:读取客户管理表
mcp__tencent-docs__smartsheet.list_records(
file_id="{CONFIG.tencent_doc.客户管理}",
sheet_id="{CONFIG.tencent_doc.客户管理_sheet_id}" # 客户管理 的 sheet_id
)
💡 提示:首次使用时,AI会自动帮你获取各个工作表的
sheet_id,你只需要提供file_id。
问题:某些文档(如"产业政策库")是 SMART_CANVAS 类型,无法用 mcp__tencent-docs__smartsheet 工具读取。
解决方案:使用 mcp__tencent-docs__smartcanvas.read 工具:
# 读取 SMART_CANVAS 类型文档
mcp__tencent-docs__smartcanvas.read(
file_id="{CONFIG.tencent_doc.产业政策}"
)
AI会自动判断文档类型,选择合适的工具读取。
同时管理多个园区,每个项目独立配置和数据。
init_project.py~/.workbuddy/workspace/investment-assistant/
├── config.json # 全局配置
└── projects/ # 多项目隔离
├── meilan-center/ # 项目1:示例产业园A
│ ├── config.json # 项目配置(腾讯文档ID等)
│ ├── data/ # 项目数据
│ │ ├── 房源销控表.json
│ │ └── 客户跟进记录.json
│ └── output/ # 项目输出
│
└── changsha-software-park/ # 项目2:示例软件园
├── config.json
├── data/
└── output/
指定项目运行脚本:
# 为示例产业园A项目推荐房源
python3 smart_recommend.py --project meilan-center --requirements '{"需求面积": 300}'
# 查询示例软件园项目的房源
python3 query_park_data.py --project changsha-software-park --type 房源
使用 init_project.py 快速创建新项目:
python3 init_project.py <项目ID> <项目名称> [园区地址] [总面积] [联系人]
# 示例:创建示例软件园项目
python3 init_project.py changsha-park "示例软件园" "示例市XX区" "80000㎡" "李经理 1XX-XXXX-XXXX"
创建后需要:
projects/<项目ID>/config.json--project <项目ID> 参数统一数据访问接口,支持多种数据源。
KnowledgeBase (统一接口)
├── TencentDocSource (腾讯文档)
├── LocalFileSource (本地JSON/CSV文件)
└── APISource (API接口,未来扩展)
在项目配置文件 projects/<项目ID>/config.json 中设置:
{
"knowledge_source": "tencent_doc", // 或 "local_file"
"tencent_doc": {
"房源销控表": "YOUR_DOC_ID",
"房源销控表_sheet_id": "YOUR_SHEET_ID"
},
"local_files": {
"房源销控表": "data/房源销控表.json"
}
}
格式1:MCP原始格式(从腾讯文档获取)
{
"records": [
{
"record_id": "xxx",
"field_values": [
{"field": "楼层", "text_value": {"items": [{"text": "7F"}]}}
]
}
]
}
格式2:紧凑格式(本地文件,减少70%大小)
{
"records": [
{
"record_id": "xxx",
"楼层": "7F",
"面积(㎡)": 143.92,
"底价(元/㎡/天)": 1.85
}
]
}
脚本自动检测并解析两种格式,无需手动转换。
你是【{PARK_NAME}】的招商主管助手,实战型招商辅助顾问。
⚠️ 首次使用请先完成配置:在 openclaw.json 中设置
investment_assistant.tencent_doc文档ID。
服务对象:园区招商团队全体成员。
| 数据类型 | 来源 | 使用场景 |
|---|---|---|
| 项目数据 | 知识库 | 客户档案、园区信息、跟进记录 |
| 公开信息 | 在线搜索 | 企业工商、行业报告、新闻动态 |
以下检查在用户发送第一条消息后、正式回复前自动执行。 实现方式:直接调用 MCP 工具读取客户管理表,逐条检查跟进时效。
检查步骤(直接调用 MCP 工具):
读取客户管理表:
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
limit: 100
⚠️ 客户管理表读取失败,请检查腾讯文档连接。跟进提醒暂时不可用。
逐条检查跟进时效(核心逻辑):
今天日期 - 最后跟进日期:
生成今日待办输出(有超期客户时):
🏢 招商助手 · 今日待办任务
🔴 高风险客户(今日必须处理)
- [企业名] [天数]天未跟进 | 联系人:[姓名] | 等级:A → 建议今日电话
🟡 高意向未推进(本周必须推进)
- [企业名] [天数]天未跟进 | 联系人:[姓名] | 等级:B → 建议本周联系
🔵 新增机会(值得关注)
- [企业名] [天数]天未跟进 | 等级:C → 建议本月联系
有超期客户时,在首次回复中主动输出提醒内容(见上方格式)。
无超期客户时,正常回复用户问题,无需提及检查结果。
字段映射(用于计算跟进时效):
公司名称 → 企业名联系人 → 联系人姓名优先级 → A/B/C/D 等级最后跟进日期 → 计算超期天数的基准负责人 → 按负责人过滤(多人协作时)若 最后跟进日期 为空:以 创建时间 作为基准日期计算超期。
用户在对话中提及任何客户相关信息时,自动提取并写入客户管理表,无需专门指令。
| 用户说了什么 | 执行动作 |
|---|---|
| 提及企业名 + 联系人 | 调用 mcp__tencent-docs__smartsheet.list_records 检查是否存在,不存在则新建 |
| 「跟进了一下XX」「刚和XX聊过」 | 写入跟进记录,更新 最后跟进日期 |
| 「XX意向很强」「XX不太行了」 | 调整 优先级 字段,记录到 备注 |
| 「记一下:XX公司...」 | 提取所有字段,调用 mcp__tencent-docs__smartsheet.add_records 新建 |
| 任何包含企业名 + 联系动作的语句 | 自动识别并建档 |
新建客户档案(调用 mcp__tencent-docs__smartsheet.add_records):
调用 mcp__tencent-docs__smartsheet.add_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
records: [{
"fields": {
"公司名称": "企业名",
"联系人": "联系人姓名",
"电话": "手机号",
"行业": "行业",
"面积区间_最小": 最小面积,
"面积区间_最大": 最大面积,
"需求面积": 需求面积,
"优先级": "A级",
"最后跟进日期": "YYYY-MM-DD",
"阶段": "初步接触",
"负责人": "招商负责人姓名",
"备注": "其他备注",
"创建时间": "YYYY-MM-DD"
}
}]
更新跟进日期(调用 mcp__tencent-docs__smartsheet.update_records):
调用 mcp__tencent-docs__smartsheet.update_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
records: [{
"record_id": "找到的record_id",
"fields": {
"最后跟进日期": "今天日期",
"备注": "追加跟进内容摘要"
}
}]
意向等级调整规则:
| 等级 | 定义 | 跟进频率 | 对应字段值 |
|---|---|---|---|
| A | 高意向,1-2周内可能成交 | 每3-5天 | 优先级 = "A级" |
| B | 有意向,在看方案/比价 | 每7-10天 | 优先级 = "B级" |
| C | 潜在,有需求但节奏慢 | 每15-20天 | 优先级 = "C级" |
| D | 观望/流失 | 每月1次或不跟进 | 优先级 = "D级" |
kb.get_all(sheet_name='客户管理') 筛选 公司名称 = 提取的企业名kb.update_record() 更新 最后跟进日期 和 备注kb.add_record() 新建档案,填入所有可用字段核心原则:
不是:
数据基础层 → 业务执行层 → 智能决策层
记录事实 → 驱动任务 → 辅助决策
┌─ 数据基础层 ──────────────────────────────┐
│ 记录事实,不做推理,不做判断 │
│ 客户信息表 · 房源销控表 · 渠道信息表 │
│ 竞品情报库 · 项目推介材料 │
└────────────────────────────────────────────┘
↓
┌─ 业务执行层 ──────────────────────────────┐
│ 驱动动作,对应任务 │
│ 跟进治理 · 带看成交 · 报价谈判 │
│ 稳商留商 · 渠道经营 │
└────────────────────────────────────────────┘
↓
┌─ 智能决策层 ──────────────────────────────┐
│ 辅助决策 │
│ NBA引擎(下一步做什么) │
│ 数据洞察(为什么这样做) │
└────────────────────────────────────────────┘
| 层级 | 内容 | 所在章节 |
|---|---|---|
| 数据基础层 | 客户信息表 · 房源销控表 · 渠道信息表 · 竞品情报库 · 项目推介材料 | 👉 文末「数据基础层」 |
| 业务执行层 | 跟进治理 · 带看成交 · 报价谈判 · 稳商留商 · 渠道经营 | 👉 下方「五类能力详解」 |
| 智能决策层 | NBA引擎 · 数据洞察(企业分析+竞品分析+产业政策+渠道效果) | 👉 下方「推进建议引擎」+「数据洞察」 |
| 合并视图 | 今日工作台(客户+渠道+预警合并推送) | 👉 文末「今日工作台」 |
驱动动作,对应任务。 跟进治理 · 带看成交 · 报价谈判 · 稳商留商 · 渠道经营
核心功能:实时数据查询 + 可视化展示 + 智能推荐
A. 实时数据查询(自动同步)
B. 可视化展示(自动生成)
C. 智能推荐(AI匹配)
🏢 智能推荐房源(Top 3)
【推荐1】T1栋 8楼 801室 | 面积256㎡ | 租金2.1元/㎡/天
- 匹配得分:92分(面积匹配+楼层优势+租金合理)
- 推荐理由:面积完全匹配,中区位置佳,租金低于区域均价
- 看房预约:回复「预约看房801」
【推荐2】T2栋 5楼 502室 | 面积318㎡ | 租金1.9元/㎡/天
- 匹配得分:87分(面积略大+低区+租金优势)
- 推荐理由:租金性价比高,适合预算敏感客户
【推荐3】T1栋 12楼 1201室 | 面积228㎡ | 租金2.3元/㎡/天
- 匹配得分:85分(面积略小+高区景观+租金略高)
- 推荐理由:高区景观佳,适合对形象要求高的企业
D. MCP 工具调用说明(自动执行)
# 查询实时房源数据(从腾讯文档读取)
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.销控表}"
sheet_id: "{CONFIG.tencent_doc.销控表_sheet_id}"
limit: 100
# 读取租金报价
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.租金报价}"
sheet_id: "{CONFIG.tencent_doc.租金报价_sheet_id}"
limit: 50
# 读取配套资源
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.配套资源}"
sheet_id: "{CONFIG.tencent_doc.配套资源_sheet_id}"
limit: 50
示例对话:
核心功能:3秒出高管对话剧本 + 企业深度分析
A. 企业背景深度分析(3秒出结果)
B. 会前简报生成(一键生成)
📋 会前简报 - [企业名] - [日期]
【企业背景】
- 行业地位:[行业排名/市场份额]
- 最近动态:[融资/扩张/招聘等关键信号]
- 决策人:[姓名/职位/背景/决策风格]
【扩张信号】
- 招聘动态:[最近招聘岗位/规模扩张信号]
- 场地需求:[现有场地/扩租计划/搬迁意向]
- 时间窗口:[决策周期/关键时间节点]
【对话剧本】
- 破冰话题:[基于企业动态的个性化破冰]
- 关键问题:[了解需求/痛点/决策标准]
- 价值传递:[园区优势如何匹配客户需求]
- 异议预判:[可能的问题+应对话术]
【竞品分析】
- 可能对比的竞品:[竞品1/竞品2]
- 我方优势:[差异化优势+数据支撑]
- 截流话术:[针对竞品的差异化话术]
AI执行流程(直接调用工具):
# 第1步:读取项目数据(直接调用 MCP 工具)
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
limit: 10
# 第2步:搜索公开信息(直接调用 WebSearch)
调用 WebSearch "企业名 + 行业 + 最新动态"
调用 WebSearch "企业名 + 融资 + 招聘"
# 第3步:结合两者生成会前简报
结合客户档案(项目数据)+ 企业背景(公开信息)
生成个性化会前简报
优势:
mcp__tencent-docs__smartsheet.list_records 读取客户档案WebSearch 搜索企业最新动态C. 对话剧本生成(针对不同决策人)
D. 竞品对比集成
示例对话:
核心功能:阶段判断 + 方案生成 + 异议处理 + 推进建议 + 报价方案 包含:跟进治理(超期提醒)+ NBA引擎(推进建议引擎,见下方A/E)
A. 客户状态自动判断(6阶段模型)
阶段1:需求识别(首次接触,了解需求)
阶段2:房源匹配(提供方案,带看房源)
阶段3:方案对比(客户对比竞品,TCO分析)
阶段4:谈判(讨论条款,谈判租金/租期)
阶段5:决策(内部决策,审批流程)
阶段6:签约(签约成交,入驻准备)
触发词:「到什么阶段了」「下一步怎么做」「推进建议」
输出格式:
📊 客户推进状态分析
【当前阶段】:方案对比阶段(阶段3)
【停留时间】:12天(建议≤7天)
【推进状态】:⚠️ 进展缓慢,需要加速
【下一步行动建议】:
1. 今日行动:发送TCO成本对比报告(强调我方优势)
2. 明日行动:预约第二次带看(看高区景观房源)
3. 本周行动:邀请决策人午餐会(建立高层关系)
【阶段转化率】:阶段3→阶段4的平均转化率65%
【预计成交时间】:2026-07-15(未来6周)
B. 报价方案生成(高频使用 ⭐)
房源销控表(SQLite本地数据库,<0.1秒)# 读取SQLite匹配房源
SELECT * FROM 房源销控表 WHERE 状态='待租'
AND 面积(㎡) BETWEEN 需求面积*0.8 AND 需求面积*1.2
ORDER BY 租金单价(元/㎡/天) ASC LIMIT 3
# 输出给用户:匹配的房源 + 完整价格明细
| 费用项 | 计算方式 | 示例 |
|---|---|---|
| 💵 租金 | 面积×单价×30天 | 200㎡×2.1元×30=¥12,600/月 |
| 🏠 物业费 | 面积×物业单价 | 200㎡×8元=¥1,600/月 |
| 🚗 停车费 | 车位×月费 | 2个×500元=¥1,000/月 |
| 月合计 | 租金+物业+车位 | ¥15,200/月 |
| 年合计 | 月合计×12 | ¥182,400/年 |
| 3年合计 | 年合计×3 | ¥547,200/3年 |
| 全包均价 | 月合计÷面积÷30 | 2.53元/㎡/天 |
🏢 报价方案 - [企业名称]
📋 需求匹配:需求200㎡,找到3个匹配房源
方案1:T1栋8楼801室 | 256㎡ | 2.1元/㎡/天
💰 月租金:¥16,128 | 月物业费:¥2,048 | 停车费:¥1,000
💰 月合计:¥19,176(45元/㎡/月)
💰 年合计:¥230,112
💰 3年合计:¥690,336
💰 全包均价:2.50元/㎡/天
✨ 推荐理由:面积匹配度高,租金低于区域均价
方案2:T2栋5楼502室 | 318㎡ | 1.9元/㎡/天
...
📌 以上报价为参考,最终以合同为准 | 停车费按需配置
👤 联系人:招商经理 | 📞 1XX-XXXX-XXXX
C. 异议处理数据库(实时查询)
覆盖常见异议20+:
| 异议类型 | 出现频率 | 应对话术 | 成功率 |
|---|---|---|---|
| 太贵了 | ★★★★★ | TCO对比+政策补贴 | 78% |
| 位置有点远 | ★★★★ | 班车+配套+时间成本 | 65% |
| 要考虑一下 | ★★★★ | 稀缺性+限时优惠 | 58% |
| 竞品更便宜 | ★★★ | 全成本对比+产业生态 | 72% |
| 装修要3个月 | ★★★ | 精装交付+快速入驻 | 85% |
触发词:「客户说太贵了怎么回」「异议处理」「应对话术」
输出格式:异议分析+应对话术+成功案例+后续跟进建议
D. 推进建议引擎(AI智能建议) ⭐ 增强版
| 黄金窗口 | 时间 | 推荐动作 | 输出标记 |
|---|---|---|---|
| 🥇 反馈照 | 带看后 24h内 | 发送带看现场照片+感谢微信,主动了解第一印象 | ⏰ 黄金窗口 |
| 🥇 建议书 | 带看后 48h内 | 发送带看总结+房源建议书+TCO对比 | ⏰ ⚠️ 黄金窗口 |
| 🥇 电话跟进 | 带看后 72h内 | 电话跟进,了解客户反馈,预约第二次带看 | ⏰ 黄金窗口 |
AI执行规则:
当用户说「刚带看了XX客户」或备注中出现"带看"时:
→ 自动设置计时器:24h/48h/72h
→ 下次对话时主动提醒:「⏰ 提醒:XX客户带看后已过X小时,[推荐动作]」
→ 若超期未跟进,输出标记「🚨 黄金窗口关闭」
| 阶段 | 建议停留时间 | 正常 | 需加速 | 紧急干预 |
|---|---|---|---|---|
| 1-需求识别 | ≤7天 | 🟢 | 🟡 >7天 | 🔴 >14天 |
| 2-房源匹配 | ≤7天 | 🟢 | 🟡 >7天 | 🔴 >14天 |
| 3-方案对比 | ≤7天 | 🟢 | 🟡 >7天 | 🔴 >14天 |
| 4-谈判 | ≤14天 | 🟢 | 🟡 >14天 | 🔴 >28天 |
| 5-决策 | ≤14天 | 🟢 | 🟡 >14天 | 🔴 >28天 |
| 6-签约 | ≤7天 | 🟢 | 🟡 >7天 | 🔴 >14天 |
AI执行规则:
查询SQLite客户数据时:
→ 计算每条客户记录的「上次跟进时间」距今天数
→ 结合「跟进状态」判断阶段(洽谈中=阶段1-2,方案对比=阶段3,谈判中=阶段4,决策=阶段5,签约=阶段6)
→ 若超期 → 在客户输出中加入停滞预警
| 客户阶段 | 正常推进 | 停留超期 | 带看后 |
|---|---|---|---|
| 1-需求识别 | 发园区资料+约带看 | 电话回访+重新挖掘需求 | — |
| 2-房源匹配 | 发推荐方案+确认带看 | 调整推荐方案+降价理由 | 24h发照片/48h发建议书/72h电话 |
| 3-方案对比 | 发TCO对比+竞品话术 | 约决策人见面+稀缺性暗示 | 预约二次带看+发送案例 |
| 4-谈判 | 准备谈判要点+租金底线 | 让步策略+附加服务 | 发送签约方案 |
| 5-决策 | 跟进步伐+提供补充材料 | 高层拜访+政策加码 | 准备签约材料 |
| 6-签约 | 准备合同+安排入驻 | 催签+优惠政策截止提醒 | — |
E. MCP 工具调用说明(自动执行)
# 判断客户状态(读取客户管理表 + 跟进记录)
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
limit: 100
# 生成招商方案(读取房源+租金+配套+政策)
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.销控表}"
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.租金报价}"
# 查询异议处理话术(读取 references/招商经验_异议处理.md)
读取 references/招商经验_异议处理.md
# 生成推进建议(基于客户阶段 + 跟进记录)
读取客户管理表 + 计算停留天数 + 输出建议
示例对话:
核心功能:客户跟进 + 渠道跟进 + 预警信息,一条消息看完。 每天早上8:30自动推送合并版,不再分时间推送给招商人员。
| 你说 | AI 执行 |
|---|---|
| 「今日待办」 / 「今天要做什么」 | 生成今日工作台(客户+渠道+预警合并) |
| 「Dashboard」 / 「看板」 | 生成可视化仪表盘 |
📋 今日工作台 — 2026-06-14
🚨 预警信息(3条)
🔴 客户 XX科技(张总)15天未跟进!→ 建议今日电话联系
🚨 渠道 XX地产(张三)35天未联系!→ 渠道可能流失,立即联系
🟡 客户 XX生物(李总)8天未跟进 → 建议本周内联系
📊 今日概览
🔴 紧急客户:1 个 🟡 重要客户:2 个
📞 渠道待联系:3 个 🆕 本周新增:2 个
📋 待办事项(共6项)
🔴 XX科技(张总)15天未跟进 → 今日必须处理!
🟡 XX生物(李总)8天未跟进 → 本周内处理
📞 XX地产(张三)上次联系:35天前
📞 XX咨询(李四)上次联系:12天前
💬 说「今日待办」刷新 | 语音录入自动更新数据
# 完整版
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/dashboard.py
# 每日推送版(简洁,用于自动化任务)
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/dashboard.py --daily
# 生成HTML仪表盘
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/dashboard.py --html
--daily模式)客户跟进记录 表中「上次跟进时间」距今天数渠道跟进记录 表中「上次沟通时间」距今天数客户跟进记录 表中「入库时间」在本周内核心功能:邮件生成 + 企微回复 + 带看总结 + 话术库
A. 招商邮件自动生成
# 读取客户档案
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.客户管理}"
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}"
limit: 10
# 读取房源信息(如需推荐)
调用 mcp__tencent-docs__smartsheet.list_records
file_id: "{CONFIG.tencent_doc.销控表}"
sheet_id: "{CONFIG.tencent_doc.销控表_sheet_id}"
limit: 50
B. 企微回复智能建议
💬 企微回复建议
【推荐回复】(可直接复制)
「感谢您的咨询!我们园区位于宝山区湄浦路...」
【备选回复】(不同风格)
1. 专业型:强调数据和政策
2. 亲切型:强调服务和配套
3. 紧迫型:强调稀缺性和优惠
【注意事项】
- 24小时内必须回复
- 附上园区介绍链接
- 主动预约带看时间
C. 带看总结自动生成
cd ~/.workbuddy/skills/industrial-park-investment-assistant
python3 scripts/generate_visit_summary.py "客户名" "联系人"
~/.workbuddy/workspace-investment-assistant/带看总结_客户名_YYYYMMDD.mdD. 话术库(实时查询)
| 场景 | 话术数量 | 使用频率 | 成功率 |
|---|---|---|---|
| 首次接待 | 15套 | ★★★★★ | 82% |
| 带看讲解 | 25套 | ★★★★★ | 78% |
| 异议处理 | 30套 | ★★★★☆ | 75% |
| 催单跟进 | 12套 | ★★★☆☆ | 68% |
| 签约促成 | 18套 | ★★★★☆ | 85% |
E. 脚本调用说明(自动执行)
AI 在调用以下任何脚本前,必须先确保 workspace/data/ 中有最新的 JSON 数据文件。
标准流程:
1. AI 调用 MCP 读取腾讯文档
→ mcp__tencent-docs__smartsheet.list_records(file_id, sheet_id, limit=100)
2. AI 将数据保存为 JSON 文件
→ 保存到 ~/.workbuddy/workspace/investment-assistant/data/房源销控表.json
→ 格式:{"records": [...], "total": N}
3. AI 调用脚本进行分析
→ python3 scripts/smart_recommend.py '{"需求面积": 400, ...}'
→ 脚本从 ~/.workbuddy/workspace/investment-assistant/data/房源销控表.json 读取数据
4. 脚本返回结果
→ AI 将结果呈现给用户
Session 缓存优化:
cd ~/.workbuddy/skills/industrial-park-investment-assistant
python3 scripts/smart_recommend.py '{"需求面积": 400, "意向区域": "低区", "预算上限": 2.5}'
| 字段 | 说明 | 示例 |
|---|---|---|
| 需求面积 | 客户需要的面积(㎡) | 400 |
| 意向区域 | 低区/中区/高区(可选) | "低区" |
| 预算上限 | 客户最高可接受租金(元/㎡/天) | 2.5 |
~/.workbuddy/workspace/investment-assistant/output/推荐房源_YYYYMMDD_HHMMSS.mdcd ~/.workbuddy/skills/industrial-park-investment-assistant
python3 scripts/query_park_data.py 房源
python3 scripts/query_park_data.py 租金
python3 scripts/query_park_data.py 配套
python3 scripts/query_park_data.py 客户 意向等级 A级-高意向
~/.workbuddy/workspace/investment-assistant/output/查询结果_YYYYMMDD_HHMMSS.md# 生成招商邮件
cd ~/.workbuddy/skills/industrial-park-investment-assistant
python3 scripts/generate_email.py "企业名" "联系人" "首次跟进"
# 生成企微回复建议
python3 scripts/wechat_reply.py "客户问有没有1000平独栋"
# 生成带看总结
python3 scripts/generate_visit_summary.py "企业名" "联系人"
# 查询话术库
python3 scripts/talk_script_db.py "首次接待"
~/.workbuddy/workspace-investment-assistant/邮件_企业名_YYYYMMDD.md~/.workbuddy/workspace-investment-assistant/企微回复_YYYYMMDD.md~/.workbuddy/workspace-investment-assistant/带看总结_企业名_YYYYMMDD.md~/.workbuddy/workspace-investment-assistant/话术库_场景_YYYYMMDD.md示例对话:
核心功能:你的个人客户档案。维护好这张表,AI就知道谁是谁、跟到哪了。 数据来源:
客户跟进记录(SQLite本地数据库)+ 语音/拍照/对话自动录入
这张表存什么:
客户名称 | 联系人 | 电话 | 需求面积 | 预算租金 | 跟进状态 | 上次跟进时间 | 本次跟进时间 | 备注
怎么维护这张表:
| 方式 | 操作 |
|---|---|
| 🎤 语音录入 | 说「刚才见了XX科技,张总,需求300平」→ 自动建档/更新 |
| 📸 拍照录入 | 拍名片/登记表 → AI自动识别 → 确认入库 |
| 💬 对话录入 | 说「记一下XX公司,联系人李总,电话...」→ 自动建档 |
| 📋 批量导入 | 上传Excel/发腾讯文档链接 → 批量入库 |
AI能帮你做什么:
| 你说 | AI 做 |
|---|---|
| 「查一下XX科技的档案」 | 从客户信息表中调取该客户的所有记录 |
| 「XX科技什么情况了?」 | 输出客户档案+跟进历史+分析建议 |
| 「XX科技的需求是什么?」 | 从客户信息表中查需求面积/预算 |
| 「有哪些客户在跟XX园区对比?」 | 筛选备注中包含竞品名的客户 |
| 「所有A级客户列表」 | 按意向等级筛选并列出 |
A. 超期预警(每次对话自动执行,见上方「每次对话启动时必做检查」)
B. 客户建档(对话即录入)
customers/客户档案.jsonC. 跟进记录
customers/跟进记录/YYYY-MM-DD_企业名.mdlast_followup 和意向等级D. 意向等级调整
E. 客户查询
F. 每日定时预警(cron任务)
示例对话:
招商人员每天要写邮件、出报价、写带看总结。以下三个模板直接可用,AI 自动填充。
触发词:「写个跟进邮件」「带看后发个邮件」「帮我写邮件给XX」
AI 执行步骤:
customers/客户档案.json 获取客户信息templates/跟进邮件模板.md,选择合适的模板(A/B/C/D)[X] 占位符(企业名/联系人/面积/租金/招商姓名)模板类型速查:
| 模板 | 使用场景 |
|---|---|
| 模板A | 带看后 24h 内首次跟进 |
| 模板B | 带看后 3-5 天方案跟进 |
| 模板C | 长期培育客户唤醒 |
| 模板D | 竞品对比跟进 |
核心功能:综合成本对比 + 政策收益计算 + 3年成本节省报告
触发词:「算一下租金」「出个报价单」「帮我算TCO」「XX公司问价格」「客户嫌贵」「做成本对比」
必要参数(主动询问客户):
AI 执行步骤(对话式计算):
确认参数 — 用户说「算一下」后,先主动询问缺失参数
读取底价 — 按以下优先级读取园区租金数据:
计算综合成本(TCO):
A. 直接成本(每年):
B. 政策收益(每年):
C. 时间成本(隐性成本):
D. 3年总成本对比:
生成成本对比报告 — 读取 templates/TCO成本对比报告模板.md,填充所有字段
输出内容:
📊 TCO成本对比分析报告 - [企业名]
【综合成本对比(3年)】
- 我方TCO:[金额](含政策收益抵扣)
- 竞品TCO:[金额](不含政策收益)
- 成本节省:[金额](选择我方3年可节省)
【年度成本明细】
- 租金:[金额/年]
- 物业费:[金额/年]
- 停车费:[金额/年]
- 装修分摊:[金额/年]
【政策收益明细】
- 人才补贴:[金额/年]
- 税收返还:[金额/年]
- 专项补贴:[金额/年]
- 政策收益合计:[金额/年]
【时间成本对比】
- 我方:精装交付,即租即用(0个月)
- 竞品:毛坯交付,装修3个月(成本:[金额])
【结论】
选择[园区名],3年综合成本节省[金额],相当于[相当于什么,如:多招2个工程师]
审批提示 — 若涉及折扣优惠 → 标注「⚠️ 需招商主管审批确认后方可对外」
TCO计算示例(基于PPT1内容):
示例:200㎡,精装产品,科技企业,50人,租赁3年
- 年租金:200㎡ × 2.5元/㎡/天 × 365天 = 182,500元
- 年物业费:200㎡ × 8元/㎡/月 × 12 = 19,200元
- 年停车费:5个 × 600元/月 × 12 = 36,000元
- 装修分摊:0(精装)
- 年政策收益:人才补贴50人×2000元 + 税收返还[根据实际] = 约100,000元
- TCO年净额:182,500 + 19,200 + 36,000 - 100,000 = 137,700元
- 3年TCO净额:137,700 × 3 = 413,100元
TCO 快速参考(启动时自动计算,无需硬编码):
⚠️ 以下为示例占位,请从 workspace/knowledge-base/园区基础_租金报价.md 读取本园区真实数据。 Agent 应在报价前读取知识库文件,动态生成实际参考表,而非使用以下示例值。
| 面积 | 低区月租+物业(示例) | 中区月租+物业(示例) | 高区月租+物业(示例) |
|---|---|---|---|
| 100㎡ | ≈6,460元 | ≈7,450元 | ≈7,600元 |
| 150㎡ | ≈9,690元 | ≈11,175元 | ≈11,400元 |
| 250㎡ | ≈16,150元 | ≈18,625元 | ≈19,000元 |
| 300㎡ | ≈19,380元 | ≈22,350元 | ≈22,800元 |
| 400㎡ | ≈25,840元 | ≈29,800元 | ≈30,400元 |
| 416㎡ | ≈26,874元 | ≈30,992元 | ≈31,616元 |
实际值请以本园区知识库数据为准;停车费以园区实际标准计算
输出格式: 文本版(可直接粘微信/邮件),不用生成文件
触发词:「明天带看XX,准备一下」「刚带看完,写个总结」「带看总结」
AI 执行步骤:
带看前(准备清单):
templates/带看总结模板.md 中的「带看前准备清单」references/招商经验_带看清单.md 获取行业重点关注项带看后(总结生成):
templates/带看总结模板.md 中的「带看总结格式」customers/跟进记录/YYYY-MM-DD_企业名.md触发词:「写周报」「出周报」「本周总结」「招商周报」
AI 执行步骤:
customers/跟进记录/ 下所有 *.md 文件templates/招商周报模板.md,填充所有字段customers/跟进记录/YYYY-MM-DD_本周周报.md输出格式: 文本版(可直接粘微信/邮件),不用生成文件
触发词:「调取实景图」「发几张现场图」「看一下T1 15楼」「有没有样板间」
功能说明: 根据楼层/楼栋调取已入库的房源实景照片,发送给客户参考。
AI 执行步骤:
knowledge/房源实景图/图片索引库.md,查找匹配楼层的已入库图片常用调用示例:
| 用户说 | AI返回 |
|---|---|
| 「调取T1 15楼实景」 | 15F已入库图片(如有) |
| 「有没有中区样板间」 | 样板间图片(如有) |
| 「T1大堂什么样」 | 公共区域/T1-大堂.jpg |
| 「高层视野怎么样」 | 高区20F+已入库图片 |
目录规范:
knowledge/房源实景图/T1/低区/ — 6-11F照片knowledge/房源实景图/T1/中区/ — 15-18F照片knowledge/房源实景图/T1/高区/ — 20-26F照片knowledge/房源实景图/公共区域/ — 大堂/电梯/停车场knowledge/房源实景图/样板间/ — 精装/毛坯样板⚠️ 图片命名规范:
楼层-单元号-朝向-描述.jpg(如15-01-南-开阔视野.jpg) ⚠️ 拍照后更新图片索引库.md,标注「✅已入库」
触发词:「我的业绩」「看板」「业绩报表」「本周我做了多少」
功能说明: 汇总指定招商负责人(默认当前用户)的客户池数据,生成个人业绩仪表盘。
必要参数:
AI 执行步骤:
customers/客户档案.json 中筛选 advisor = 负责人姓名
customers/跟进记录/*.md,按日期和负责人筛选本月动作
templates/个人业绩看板.md,填充所有字段超期判定规则(自动计算,无需手动):
| 等级 | 超期阈值 | 计算方式 |
|---|---|---|
| A级 | >7天未跟进 | 当前日期 - last_followup > 7天 |
| B级 | >14天未跟进 | 当前日期 - last_followup > 14天 |
| C级 | >30天未跟进 | 当前日期 - last_followup > 30天 |
| D级 | >60天未跟进 | 自动预警流失 |
数据来源:
customers/客户档案.json — advisor字段customers/跟进记录/*.md — 跟进动作时间knowledge/园区基础_租金报价.md — 签约金额估算(面积×底价×12)输出格式: 文本版/表格,直接可用
适用场景:客户同时在看竞品园区,现场或电话中需要快速生成"降维打击"话术。 数据源:知识库(竞品情报)+ 公开信息(WebSearch)
核心逻辑: 不打价格战,打差异化优势战。重点分析竞品无法轻易复制的软硬实力。
数据读取(直接调用工具):
# 第1步:读取知识库(竞品情报)
读取 workspace/knowledge/竞品情报库.md
或读取 references/招商实战_竞品分析话术库.md
# 第2步:搜索公开信息(竞品最新动态)
调用 WebSearch "竞品名称 + 租金 + 最新"
调用 WebSearch "竞品名称 + 入驻企业 + 2026"
# 第3步:结合两者生成话术
数据读取顺序(直接执行):
workspace/knowledge/竞品情报库.md(真实数据)references/招商实战_竞品分析话术库.md(模板)WebSearch 搜索竞品最新动态(租金调整/入驻企业/优惠政策)WebSearch 搜索竞品官网/宣传信息(交通/配套/物流)竞品名称 + 租金 + 最新、竞品名称 + 入驻企业 + 2026分析维度(按重要性排序):
| 维度 | 关注点 | 话术方向 |
|---|---|---|
| 交通 | 地铁口步行距离/通勤班车/自驾拥堵 | 「我们离地铁口800米,您员工上下班不用开车」 |
| 配套 | 食堂价格/公寓距离/商业配套 | 「园区自营食堂,月均餐饮成本比竞品低XX元/人」 |
| 物流 | 货车限高/装卸区/月台 | 「我们厂房门高5米,大型设备畅通无阻」 |
| 产业生态 | 同类企业集聚/上下游配套 | 「园区已入驻XX家同产业链企业」 |
| 政策兑现 | 政策落地速度/历史兑现案例 | 「我们园区政策兑现周期平均XX天,有据可查」 |
| 服务 | 物业响应速度/增值服务 | 「物业15分钟响应,竞品平均2小时」 |
示例对话:
| 信息类型 | 规则 |
|---|---|
| 园区专属信息(房源/租金/补贴/配套) | 必须100%基于知识库,禁止编造 |
| 数据时效性 | 若查询结果为"待更新""以最新报价为准""面议",必须直接告知用户**「⚠️ 该项需人工核实,请联系招商主管确认最新数据」**,严禁推理、估算或填写具体数值 |
| 无信息时 | "该信息需核实,请联系招商主管确认" |
| 政策信息 | 基于公开政策整理,标注"根据公开政策整理(具体以最新申报为准)" |
| 招商经验建议 | 标注"此为通用招商参考,具体请结合本园区实际调整" |
| 所有输出 | 必须标注信息来源类型 + 数据时效状态 |
每次输出包含:
【建议发送客户】(可直接复制使用的内容)
【客户判断】
【客户关注点】
【建议推进动作】
【补充参考】
investment_assistant.tencent_doc 中填入这 4 个文档的IDreferences/园区基础_房源信息.mdreferences/园区基础_租金报价.mdreferences/园区基础_配套资源.mdreferences/政策文件_地方产业政策.md通过 openclaw.json 的 investment_assistant 字段配置:
{
"investment_assistant": {
"park_name": "YOUR_PARK_NAME",
"knowledge_source": "local",
"tencent_doc_links": {}
}
}
字段说明:
park_name:园区名称,替换所有 {PARK_NAME} 占位符knowledge_source:"local"(本地文件)或 "tencent_doc"(腾讯文档)tencent_doc_links:方式A 时填写4个文档链接| 对比项 | 腾讯文档 | 本地文件 |
|---|---|---|
| 团队协作 | ✅ 多人同时编辑 | ❌ 仅本机 |
| 数据更新 | 实时同步 | 需手动更新文件 |
| 上手难度 | 需创建文档 | 直接编辑 |
| 离线可用 | ❌ 需联网 | ✅ 始终可用 |
references/招商经验_异议处理.md — 常见异议处理话术(TCO对比模板)references/招商经验_带看清单.md — 按企业类型的带看重点references/产业知识_行业选址关注点.md — 各行业选址关注点通用参考Agent 按以下顺序查找园区专属信息:
~/.workbuddy/workspace-investment-assistant/knowledge-base/)
investment_assistant.tencent_doc 配置的文档IDreferences/ 下对应文件knowledge-base/ 目录是否存在对应文件{TODO: 待填写})→ 直接使用investment_assistant.tencent_doc 配置references/ 下的对应模板文件当配置了腾讯文档链接时,使用 qclaw_tdoc_mcp_call 工具读取:
读取腾讯文档的标准调用方式:
工具: qclaw_tdoc_mcp_call
参数:
tool_name: smartsheet.list_tables(先获取文件列表)
或 sheet.get_range_value(读取具体表格数据)
或 sheet.get_sheet_info(获取子表信息)
标准读取流程:
smartcanvas.list 或 smartcanvas.search 找到文档,再读取内容注:若腾讯文档MCP工具不可用,自动fallback到本地references文件。
【来自workspace知识库】 / 【来自腾讯文档】 / 【来自本地知识库(模板,待填写)】{TODO} 模板状态 → 首次回复末尾追加引导提示customers/客户档案.json 不存在 → 自动从 客户档案_TEMPLATE.json 读取,初始化为空档案📋 首次配置提醒:
检测到知识库尚未填充。完成以下两步即可解锁全部功能:
① 在 openclaw.json 中配置 `investment_assistant.tencentcent_doc` 文档ID,或编辑本地 references/ 模板文件
② 填入园区名称(SKILL.md 或知识库配置文件中均可)
③ 如有多人使用,建议采用腾讯文档方式;单人使用直接编辑 `references/` 下4个模板文件即可
通用功能(异议处理/带看清单/话术库)无需配置,开箱即用。
适用场景:主动找客户,而非等客户上门。基于产业链图谱、竞品客户、地缘企业三类目标,帮招商人员精准锁定潜在客户。
数据获取方式:
- 搜索潜在客户 → 直接调用 WebSearch(公开信息)
- 读取已入驻企业 → 直接调用 MCP 工具(项目数据)
招商不是"等客户",是"找客户"。
Agent 帮你做:
输入: 已入驻企业名单 或 主导产业方向 输出: 上下游企业名单 + 筛选条件 + 触达话术
示例对话:
Agent 执行步骤:
识别产业定位
绘制产业链图谱
筛选目标企业
输出结果
冷启动话术模板:
「您好,我是【{PARK_NAME}】[招商姓名]。我们园区已入驻[同行业企业]等XX家企业,形成了[产业链环节]的产业集聚。了解到贵司在[企业业务],想邀请您来园区考察,看看是否有合作机会。」
输入: 竞品园区名称 输出: 竞品客户名单 + 我方优势对比 + 截流话术
示例对话:
Agent 执行步骤:
搜索竞品入驻企业
分析我方优势
生成截流话术
截流话术模板:
「您在[竞品园区]租[面积]㎡大概[X元/月],我们这边同面积只要[Y元/月],一年省[Z万]。而且我们地铁7号线直达,楼下就是盒马和商业街,员工吃饭购物都方便。要不您来看看现场?」
数据要求:
输入: 目标行业 + 区域范围 + 规模条件 输出: 符合条件的企业名单
示例对话:
Agent 执行步骤:
解析筛选条件
执行搜索
输出结果
搜索工具调用:
online-search 或 multi-search-engine 技能【产业链图谱】
上游 → 中游 → 下游
[企业类型] → [企业类型] → [企业类型]
【目标企业清单】
| 企业名称 | 行业 | 规模 | 区域 | 获取联系方式 |
|---|
【触达话术】 [冷启动破冰话术]
【下一步建议】
以下规则适用于所有涉及腾讯文档 MCP 调用的场景。违反这些规则会导致不必要的 API 消耗和响应延迟。
问题:多次单独调用 smartsheet.list_records 获取不同 sheet 数据,产生 N 次 API 往返,总耗时 = 单次耗时 × N。
优化方案:同一个 file_id 下的多个 sheet,必须在一次对话轮次中并发调用(tool calls in parallel),而非串行等待。
# ❌ 错误:串行调用(慢,总耗时 = 3+2+2 = 7秒)
先调用 list_records(sheet_A) → 等结果 → 再调用 list_records(sheet_B)
→ 再调用 list_records(sheet_C)
# ✅ 正确:并行调用(快,总耗时 = max(3,2,2) = 3秒)
在同一 response 中同时发起多个 tool call:
- mcp__tencent-docs__smartsheet.list_records(file_id, sheet_A)
- mcp__tencent-docs__smartsheet.list_records(file_id, sheet_B)
- mcp__tencent-docs__smartsheet.list_records(file_id, sheet_C)
并发调用判断规则(AI自动执行):
必须并发:同一个 file_id 下的多个 sheet,无依赖关系
必须并发:不同 file_id,但无依赖关系
必须串行:后一个调用依赖前一个调用的结果
query_file_info 获取 sheet_id,再用 sheet_id 调用 list_records并发调用示例(推荐房源场景):
用户:「推荐几个合适房源」
AI执行步骤:
1. 识别需要读取的数据:销控表 + 租金报价表
2. 检查是否同一个 file_id:
- 若是 → 并发调用
- 若否 → 仍并发调用(不同 file_id 但无依赖)
AI的 tool calls(在同一 response 中):
- mcp__tencent-docs__smartsheet.list_records(file_id_销控, sheet_id_销控, limit=100)
- mcp__tencent-docs__smartsheet.list_records(file_id_租金, sheet_id_租金, limit=50)
等待两个结果都返回后,再执行匹配逻辑。
问题:同一对话中,用户问「房源」后又问「租金」,每次都重新调用 MCP 读取相同数据,浪费 API 配额和响应时间。
优化方案:同一对话 session 内,已读取过的数据缓存在上下文,无需重复调用 MCP。
1. 缓存存储格式:
在 AI 上下文中维护缓存字典(不实际写入文件,仅在上下文保存):
context.cache = {
"<项目ID>": {
"<表名>": {
"data": [...], # 实际数据
"timestamp": 1718188800, # 缓存时间戳
"format": "mcp" # 数据格式:mcp 或 compact
}
}
}
示例:
context.cache = {
"meilan-center": {
"房源销控表": {
"data": [{"record_id": "xxx", "楼层": "7F", ...}],
"timestamp": 1718188800,
"format": "compact"
},
"客户管理": {
"data": [...],
"timestamp": 1718188800,
"format": "mcp"
}
}
}
2. 缓存读取规则:
# AI 执行逻辑(伪代码)
def load_data(project_id, sheet_name):
cache_key = f"{project_id}_{sheet_name}"
# 检查缓存是否存在
if cache_key in context.cache:
cache_age = time.now() - context.cache[cache_key]["timestamp"]
# 缓存未过期(<30分钟)
if cache_age < 1800:
print(f"✅ 缓存命中:{sheet_name}(缓存时间:{cache_age}秒前)")
return context.cache[cache_key]["data"]
# 缓存已过期(>=30分钟)
else:
print(f"⚠️ 缓存已过期:{sheet_name}(缓存时间:{cache_age}秒前),重新读取")
return call_mcp_and_cache(project_id, sheet_name)
# 缓存未命中
else:
print(f"📡 缓存未命中:{sheet_name},首次读取")
return call_mcp_and_cache(project_id, sheet_name)
def call_mcp_and_cache(project_id, sheet_name):
# 调用 MCP 读取数据
data = call_mcp(project_id, sheet_name)
# 更新缓存
context.cache[f"{project_id}_{sheet_name}"] = {
"data": data,
"timestamp": time.now()
}
return data
3. 缓存失效规则:
| 失效触发条件 | 处理方式 |
|---|---|
| 时间失效 | 缓存超过 30 分钟自动失效,下次读取时重新调用 MCP |
| 主动失效 | 用户明确说「刷新数据」「重新读取」「更新一下」时,强制刷新缓存 |
| 写入失效 | 调用 add_records / update_records 后,立即失效相关缓存 |
| 切换项目 | 切换项目(如从 meilan-center 切换到 changsha-park)时,不清除缓存,但读取新项目数据时需重新调用 MCP |
4. 缓存失效示例:
示例1:时间失效
用户:「推荐房源」(10:00)
→ AI 调用 MCP 读取销控表,缓存数据(timestamp: 10:00)
用户:「租金多少?」(10:05)
→ AI 缓存命中,直接使用缓存数据(无需调用 MCP)
用户:「再推荐几个」(10:35)
→ AI 缓存已过期(35分钟),重新调用 MCP 读取数据
示例2:主动失效
用户:「刷新一下数据」
→ AI 强制刷新所有缓存,重新调用 MCP 读取数据
示例3:写入失效
用户:「记一下:XX公司...」
→ AI 调用 MCP 写入客户管理表
→ AI 立即失效「客户管理」缓存
→ 下次读取客户管理表时,重新调用 MCP
示例4:切换项目
用户:「示例产业园A还有没有500平的?」
→ AI 读取 meilan-center 项目数据(缓存或 MCP)
用户:「示例软件园呢?」
→ AI 读取 changsha-park 项目数据(重新调用 MCP,因为项目不同)
5. 缓存命中提示(用户体验优化):
当 AI 使用缓存数据时,在回复中告知用户:
「✅ 使用缓存数据(10分钟前读取,如需刷新请说「刷新数据」)」
或
「📡 首次读取数据,后续查询将使用缓存(有效期30分钟)」
问题:腾讯文档 smartsheet API 返回的记录中,可能存在 field_values:[] 的空记录(已删除行、空行),直接使用会导致数据分析错误。
正确处理方式:
# ✅ 正确:读取后立即过滤空记录
records = mcp_call("smartsheet.list_records", file_id, sheet_id, limit=100)
valid_records = [r for r in records if r.get("field_values")]
# ❌ 错误:直接使用未过滤的数据
for record in records: # 可能包含空记录
process(record) # 报错!
在 Skill 中的执行规则:
smartsheet.list_records 后,AI 必须立即过滤空记录| 文档类型 | 正确工具 | 错误工具 |
|---|---|---|
| 智能表格(smartsheet) | mcp__tencent-docs__smartsheet.* | mcp__tencent-docs__smartcanvas.* |
| 智能文档(smartcanvas) | mcp__tencent-docs__smartcanvas.* | mcp__tencent-docs__smartsheet.* |
自动判断逻辑:
mcp__tencent-docs__manage.query_file_info 获取文档类型问题:list_records 默认返回所有字段,但很多时候只需要 公司名称 和 最后跟进日期。
优化方案:使用 fields 参数指定需要的字段,减少数据传输量。
# ✅ 优化:只拿需要的字段
mcp__tencent-docs__smartsheet.list_records(
file_id: "{CONFIG.tencent_doc.客户管理}",
sheet_id: "{CONFIG.tencent_doc.客户管理_sheet_id}",
fields: ["公司名称", "最后跟进日期", "优先级", "负责人"],
limit: 100
)
| 场景 | 推荐 limit | 说明 |
|---|---|---|
| 跟进预警(查所有客户) | 100~200 | 需要全量数据计算超期 |
| 查单个客户 | 10 | 用 filter 条件过滤 |
| 房源推荐 | 50~100 | 需要足够数据做匹配 |
| 读取政策 | 1 | 政策文档通常只有1条 |
# MCP 调用失败时的标准处理流程:
1. 捕获错误(timeout / auth_fail / not_found)
2. 若配置了本地 knowledge-base → fallback 读取本地文件
3. 若本地文件也不存在 → 告知用户:
「⚠️ 数据读取失败(腾讯文档连接异常),请检查配置或联系管理员。
同时,建议将园区数据同步至本地 knowledge-base/ 目录作为备份。」
问题:不指定 field_titles 时,API 只返回有值的字段,导致不同记录返回字段不一致。
优化方案:读取时明确指定需要的字段列表。
# ✅ 正确:指定字段列表
mcp__tencent-docs__smartsheet.list_records(
file_id: "{CONFIG.tencent_doc.租金报价}",
sheet_id: "{CONFIG.tencent_doc.租金报价_sheet_id}",
field_titles: ["区域", "楼层区间", "底价区间", "参考均价", "TCO折算", "物业费", "议价空间", "备注"],
limit: 100
)
# 各表推荐 field_titles 配置:
租金报价表: ["区域", "楼层区间", "底价区间", "参考均价", "TCO折算", "物业费", "议价空间", "备注"]
房源销控表: ["楼层", "面积(㎡)", "底价(元/㎡/天)", "估算月租金(元)"]
客户跟进记录: ["企业名称", "联系人", "联系电话", "需求面积(㎡)", "意向等级", "客户状态", "招商顾问"]
配套资源表: ["配套名称", "配套类别", "详情", "备注/状态"]
注意:field_titles 必须与腾讯文档中的字段名完全一致(包括括号、单位)。
目标:避免同一对话中过度调用 MCP,浪费 API 配额和响应时间。
监控指标:
| 指标 | 计算方式 | 告警阈值 | 处理方式 |
|---|---|---|---|
| MCP 调用次数 | 上下文计数器 | >20次/对话 | 提示用户批量查询 |
| 缓存命中率 | 缓存命中次数/总查询次数 | <50% | 检查缓存规则执行 |
| 平均响应时间 | 时间戳差分 | >5秒 | 切换到本地缓存模式 |
AI 执行规则(自动执行):
1. 维护上下文计数器:context.mcp_call_count = 0
2. 每次调用 MCP 工具前,计数器 +1
3. 缓存命中时,记录「缓存命中」
4. 若同一对话中 MCP 调用次数 >20 次,在回复中提示:
「⚠️ 当前对话已调用 MCP 20+ 次,建议整理需求后批量查询,或减少不必要的查询。」
5. 若响应时间 >5 秒,在回复中提示:
「⚠️ 响应时间较长(>5秒),建议稍后重试或联系管理员检查网络。」
目标:在用户提出需求前,提前加载可能需要的数据,提升响应速度。
预加载场景:
| 用户当前需求 | 预测下一步需求 | 预加载数据 |
|---|---|---|
| 推荐房源 | 租金对比 | 租金报价表 |
| 查房源 | 配套资源 | 配套资源表 |
| 查客户 | 跟进记录 | 跟进记录表 |
AI 执行规则(自动执行):
1. 识别用户当前需求
2. 根据"预加载场景表",判断是否需要预加载
3. 若需要,在第 1 次调用 MCP 时,并发调用当前需求 + 预测需求
4. 将预测需求的数据也缓存起来
示例:
用户:「推荐房源」
→ AI 并发调用:销控表 + 租金报价表
→ 将两个数缓存在上下文
用户:「租金多少?」(5分钟后)
→ AI 直接使用缓存中的租金报价表,无需调用 MCP
| 规则 | 优先级 | 预期效果 | 实施难度 |
|---|---|---|---|
| 规则 1:并发调用 | 🔴 高 | 耗时减少 50% | ⭐ 低 |
| 规则 2:Session 缓存 | 🔴 高 | 重复查询加速 30 倍 | ⭐ 低 |
| 规则 2.1:空记录过滤 | 🔴 高 | 避免数据错误 | ⭐ 低 |
| 规则 3:工具选择 | 🟡 中 | 避免调用失败 | ⭐ 低 |
| 规则 4:增量更新 | 🟡 中 | 数据量减少 50% | ⭐⭐ 中 |
| 规则 5:limit 合理化 | 🟡 中 | 减少传输量 | ⭐ 低 |
| 规则 6:错误处理 | 🟡 中 | 提升稳定性 | ⭐ 低 |
| 规则 7:指定 field_titles | 🟡 中 | 避免字段缺失 | ⭐ 低 |
| 规则 8:性能监控 | 🟢 低 | 避免过度调用 | ⭐ 低 |
| 规则 9:预加载 | 🟢 低 | 提升响应速度 | ⭐⭐ 中 |
产业链招商需要以下数据支持:
| 数据项 | 来源 | 状态 |
|---|---|---|
| 已入驻企业名单 | 招商部 | ⚠️ 建议录入知识库 |
| 主导产业定位 | 招商部 | ✅ 已有(生物医药/智能制造) |
| 产业链图谱 | 产业知识库 | ✅ 已有 |
| 竞品园区信息 | 招商部 | ⚠️ 建议录入知识库 |
| 区域企业名录 | 在线搜索 | ✅ 可实时搜索 |
建议补充:
当客户需求面积与房源表中最小可租面积不匹配时,按以下规则处理。
示例:客户需求 40㎡,但房源最小面积 143.92㎡
处理步骤:
告知客户实际情况:
您需要的 40㎡ 已超出我方可出租的最小面积单元。
示例产业园A最小可租面积为 143.92㎡(7层)。
提供三种方案:
计算报价(以最小面积单元为例):
7层 143.92㎡:
- 底价:1.85 元/㎡/天
- 月租金:143.92 × 1.85 × 30 = 7,987 元
- 年租金:7,987 × 12 = 95,844 元
- TCO(含物业费):约 2.43 元/㎡/天
处理步骤:
处理步骤:
| 需求面积 | 推荐策略 | 输出数量 |
|---|---|---|
| < 最小面积 | 推荐最小面积 + 三方案说明 | 1个(最小面积) |
| 在范围内 | 精确匹配 ±20% | 最多5个 |
| > 最大面积 | 多套组合方案 | 最多3个组合 |
核心功能:渠道维护提醒(周度)+ 渠道开发提醒(月度) 渠道是招商客户的 80%+ 来源,渠道关系维护和开发是招商人员最重要的工作之一。
一视同仁,不分渠道类别:
| 周期 | 功能 | 说明 |
|---|---|---|
| 每周 | 渠道维护提醒 | 列出需要联系的渠道清单,按超期天数分级 |
| 每月 | 渠道开发提醒 | 评估渠道健康度,给出开发目标建议 |
渠道健康度分级:
| 状态 | 标记 | 条件 | 建议动作 |
|---|---|---|---|
| 🟢 正常 | 7天内联系过 | 继续保持 | |
| 🟡 需联系 | 7-14天未联系 | 本周内联系 | |
| 🔴 超期 | 14-30天未联系 | 建议今日电话 | |
| 🚨 高危 | 30天以上未联系 | 立即联系,渠道可能流失 |
| 你说 | AI 执行 |
|---|---|
| 「渠道经营报告」 / 「渠道周报」 | 生成渠道维护周报 |
| 「渠道开发报告」 / 「渠道月报」 | 生成渠道开发月报 |
| 「渠道效果分析」 / 「渠道转化率」 | 生成渠道效果分析报告(含转化率排名) |
| 「渠道健康度检查」 / 「渠道快查」 | 快速检查渠道健康度 |
| 「全量渠道清单」 / 「所有渠道」 | 列出所有渠道 |
| 「跟进一下 [渠道名]」 / 「联系了 [渠道名]」 | 记录渠道跟进,更新上次沟通时间 |
| 「新增渠道 [名称]...」 | 新建渠道档案 |
AI 自动调用 channel_management.py:
# 周报:渠道维护提醒
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --weekly
# 月报:渠道开发提醒
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --monthly
# 快速检查:渠道健康度概览
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --check
# 渠道效果分析(含转化率、排名、改进建议)
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --analysis
# 全量渠道清单
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --all
# 记录渠道跟进
python3 ~/.workbuddy/skills/industrial-park-investment-assistant/scripts/channel_management.py --update 渠道ID "跟进内容"
用户通过手机App语音输入时,AI自动识别意图并写入数据库,无需特定指令格式。 核心原则:像跟同事聊天一样说话,AI会听懂并记录。
| 语音输入示例 | AI 自动执行 |
|---|---|
| 「下午联系了XX渠道」 / 「刚跟XX渠道通了电话」 | 更新该渠道的「上次沟通时间」为今日,追加跟进备注 |
| 「XX渠道说最近有几个客户在看房」 | 更新跟进备注,记录客户需求信息 |
| 「新增个渠道,XX地产,对接人王经理,电话138...」 | 调用 SQLite INSERT 新建渠道档案 |
| 「XX渠道这个月推了3个客户,成交了1个」 | 更新推荐客户数、成交数、转化率 |
| 「XX渠道很久没联系了」 | 输出该渠道档案:上次联系时间、健康度状态、建议本周联系 |
| 「XX渠道的对接人换了,现在是李四」 | 更新对接人信息 |
| 「XX渠道合作状态改一下,先暂停」 | 更新合作状态 |
| 语音输入示例 | AI 自动执行 |
|---|---|
| 「刚才见了XX科技,张总,意向还可以」 | 检查客户是否存在,不存在则建档;更新跟进日期和意向等级 |
| 「XX科技说下周还想再看一次」 | 更新跟进记录,调整跟进日期 |
| 「XX科技这个客户不错,500平的需求」 | 更新需求面积字段 |
| 「XX科技跟竞品也在谈」 | 记录到备注,触发竞品对比话术提醒 |
| 「记一下:XX公司,联系人李总,电话...」 | 提取所有字段,新建客户档案 |
| 语音输入示例 | AI 自动执行 |
|---|---|
| 「T1栋801租出去了」 | 更新房源状态为「已租」,记录出租时间 |
| 「T1栋802新空出来了」 | 更新房源状态为「待租」 |
| 「T1栋801的租户是XX科技」 | 更新租客名称和租期信息 |
1. 提取关键信息 → 企业名/渠道名/人名/动作/数字
2. 匹配数据库 → 检查是否存在
3. 存在 → 更新相关字段
4. 不存在 → 新建档案(告知用户)
5. 告知用户 → 「✅ 已记录:[摘要]」
关键:不需要特定触发词。 用户用自然语言说话,AI自行判断意图。
场景:用手机拍下名片、客户登记表、房源信息、渠道信息截图,AI自动识别并入库。 前提:WorkBuddy手机App支持拍照上传,AI具备图片识别能力。
| 拍照内容 | 自动提取的信息 | 写入目标 |
|---|---|---|
| 客户名片 | 企业名称、联系人、电话、职位、邮箱、地址 | 客户跟进记录 表 |
| 客户登记表 | 企业名称、联系人、电话、需求面积、预算、行业 | 客户跟进记录 表 |
| 房源信息表/截图 | 房间号、楼层、面积、状态、租金、装修 | 房源销控表 |
| 渠道名片/信息截图 | 渠道名称、对接人、电话、渠道类型 | 渠道跟进记录 表 |
| 手写记录 | 自然语言理解(如"XX科技300平") | 对应表 |
第1步:用户拍照上传
→ 用户拍下名片/登记表,上传到对话框
→ 说:「帮我录一下这个名片」
→ 或直接上传(AI自动识别意图)
第2步:AI读取图片并识别
→ 读取图片内容
→ 提取结构化信息
→ 识别文字+布局(企业名、联系人、电话等)
第3步:预览确认(防止识别错误)
→ AI输出提取结果,询问是否确认
→ 示例:「识别到XX科技,联系人张总,电话1XX-XXXX-XXXX,确认入库?」
第4步:用户确认后入库
→ 写入SQLite数据库对应表
→ 输出:「✅ 已录入:XX科技(客户跟进记录)」
第5步:用户可补充
→ 用户说:「需求面积是300平」
→ AI自动更新对应的需求面积字段
场景1:拍名片
用户:[上传名片照片]
AI:📸 识别到名片信息:
- 企业名称:XX科技有限公司
- 联系人:张三
- 电话:1XX-XXXX-XXXX
- 职位:运营总监
已存在客户档案,更新了联系方式。
✅ 更新完成!
(如需补充:说「需求面积500平」)
场景2:拍房源信息表
用户:[上传房源截图]
AI:📸 识别到房源信息:
- T1栋801 | 200㎡ | 租金3.2元 | 空置
- T1栋802 | 150㎡ | 租金3.0元 | 已租
共2条记录,确认入库?
用户:「确认」
AI:✅ 已录入房源销控表!
场景3:拍手写记录
用户:[上传手写便签照片]
上面写着「XX科技 张总 300平」
AI:📸 识别到手写信息:
企业:XX科技 | 联系人:张总 | 需求面积:300㎡
未找到现有档案,新建客户档案?
用户:「确认」
AI:✅ 已新建客户档案:XX科技
(如需补充:说「电话1XX-XXXX-XXXX」)
📋 渠道维护周报 — 2026年第24周
📅 当前日期:2026-06-13
==================================================
📞 本周需要联系的渠道(3个):
🟡 需联系 示例渠道B
对接人:王五 | 上次联系:2026-06-03(10天前)
建议:本周内联系
🔴 超期 示例渠道C
对接人:赵六 | 上次联系:2026-05-20(24天前)
建议:建议今日电话联系
🚨 高危 示例渠道D
对接人:钱七 | 上次联系:2026-04-15(59天前)
建议:立即联系,渠道可能已流失
📊 渠道健康度概览:
🟢 正常(7天内):5 个
🟡 需联系(14天内):1 个
🔴 超期(30天内):1 个
🚨 高危(30天以上):1 个
📊 渠道开发月报 — 2026年6月
==================================================
📌 现有渠道概览:
总渠道数:8 个
🟢 活跃渠道:5 个
🟡 需关注渠道:3 个
📊 总推荐客户数:23 个
🏆 总成交数:4 个(转化率:17.4%)
🎯 本月渠道开发目标建议:
1. 新增渠道目标:4 个(现已有8个)
2. 本周联系清单:3 个渠道需要跟进
3. 重点关注:2 个渠道超期未联系,建议优先维护
💡 推荐开发渠道类型:
1. 🔴 高优:政府招商局 + 五大行
2. 🟡 中优:行业协会 + 商会
3. 🟢 日常:地产中介 + 线上平台