租金评估系统技能
> 📮 联系方式:<邮箱/企业微信> | MCP 服务需授权,见下方「🔧 启动自检」。
功能清单(共 82 个工具)
> 完整工具清单(含 action / 参数 / 返回值)见 references/tools.md。实际调用前用 ToolSearch 按工具名检索最新 schema,避免凭记忆传参。
展示规则(面向用户)
核心原则:面向用户时只展示中文标签,禁止暴露数据库字段名。
| 场景 | ✅ 正确 | ❌ 错误 |
|---|---|---|
| 展示缓存字段映射 | 评估目的 → 为委托人拟招租... |
evaluationPurpose → 为委托人拟招租... |
| 展示项目信息状态 | 评估目的:市场租金 |
evaluationPurpose:市场租金 |
| 展示可修改字段列表 | 估价目的、价值类型、报告出具日 |
evaluationPurpose、valueType、reportIssueDate |
| 展示 missing 字段 | 缺少:评估目的、评估基准日 |
缺少:evaluationPurpose、evaluationBaseDate |
| 用户说"改个字段" | 从 label 推测 key(内部使用) | 让用户提供 key |
字段名只在:调用 API 传参 / resolve 的 changes dict / save 的 key 中使用。向用户输出的任何文本(缓存摘要、映射表、状态报告、提示语)一律用中文标签。
🔴 环境及展示规则总表
| 类型 | 规则 |
|---|---|
| 展示 | 所有因素/查勘/修正表格:必须用 show_widget 渲染 HTML widget,禁止纯文本/Markdown/JSON |
| 展示 | widget_code 禁止添加 h1/h2/h3 标签(标题由 show_widget title 控制)、emoji、底部注释行 |
| 展示 | 空单元格显示 —(禁止 -、空白) |
| 交互 | 修改因素值:必须用 smart_modify(下拉自动匹配),禁止 directly save |
| 交互 | 修正值修改后:smart_modify 自动保存,禁止再调 save |
| 交互 | needsAiMatch 项不可忽略,必须 AI 推理后以 resolvedValues 重调 |
| 交互 | survey update 前必须先调 form 获取 key,禁止跳过 form 直接 update |
🔴 跨项目数据隔离红线(最高优先级)
核心原则:正在操作哪个项目,就只能读写哪个项目的数据。
- 拷贝附件 ≠ 授权读取项目信息。
attachment_copy_from_project仅拷贝附件文件,绝不复制项目信息 / 评估对象信息 / 房产信息 / 查勘信息。不得把"拷贝了某项目的附件"当作"可以读取该项目信息来填充当前项目"的依据。 - 禁止跨项目填充。 除非用户在对话中明确授权(如"用项目X的委托人信息填一下当前项目"),否则在操作用当前项目(
session.project_id)时,禁止project_select到另一个项目去读取其project_info/property_info/survey/evaluation_object/comparison/case等数据,再回填当前项目。 - 缺字段的正确做法。 当前项目缺失必填字段时,必须向用户询问并引导补充,不得静默切换到源项目取数填充。
- 合法例外。 用户明确说"参考 / 复制项目X的XX信息" → 视为授权,可读取;回复中须注明数据来源("以下信息取自项目X")。
核心能力
通过 rent-evaluator MCP 连接器调用租金评估系统 API,支持:
- 两阶段登录(获取机构 → 选择机构登录)
- 项目列表查询、新建、进入(支持按名称/编号/创建人精确过滤)
- 项目状态查看、项目信息查询
- 数据字典管理(自动缓存 + 预热高频字典)
- 项目信息完善:附件上传 → AI 识别 → 线上查看器对照确认/修改提取结果 → MCP 补充项目级字段
- 查勘作业:表单查看、记录增删改、现场人员查询、字段同步
- 图片管理:上传、列表查询、分类修改、批量删除
- 案例管理:案例库查询、个人案例、案例录入/修改/删除、手动/自动选案例
- PDF 识别结果对照(线上查看器,一行代码打开,无需本地服务)
🔧 启动自检 — MCP 连接器(首次加载必执行)
本 Skill 依赖 rent-evaluator-http MCP 连接器。加载后第一件事:用 ToolSearch 检测它是否已配置。
1. ToolSearch(tool_names=["mcp__rent-evaluator-http__session_status"])
2. 如果返回 0 条 → MCP 未配置 / 未启用,进入 MCP 自动配置流程
3. 如果返回 1 条 → MCP 已就绪,跳过配置,直接进入正常流程
MCP 自动配置流程
> MCP 连接器是本 Skill 的必要依赖。缺失时 Skill 无法执行任何评估操作——自动检测并写入配置,用户只需一键「信任」。
流程:Glob 定位目标 → Python 精确写入 → Read 验证
0. 🔴 先确认 MCP 访问权限:
告知用户:
"本 Skill 依赖的内部 MCP 服务(rental-mcp.yunping.com)需要授权才能访问。
请联系我们开通权限:
📮 <联系邮箱/企业微信>
申请时请提供:机构名称、使用人数、预计使用频率"
1. 🔴 Glob 列出 ~/.workbuddy/ 下所有 *mcp.json(防御降级匹配):
```bash
ls -la ~/.workbuddy/*mcp.json
```
目的:明确目录下有哪些候选文件(mcp.json / .mcp.json)。
⛔ 此处绝不使用 Read 工具——Read 对 mcp.json 不存在时
会自动降级匹配 .mcp.json,导致后续写到错误文件。
2. 🔴 强制 Python 精确路径写入(跨平台 + 精确路径 + 不用 Read 降级):
用 Python 的 os.path 解析精确路径,确保无论是否存在 .mcp.json,
都只操作 mcp.json(不带点号前缀);
会话隔离由 MCP OAuth 授权保证,无需手动配置 headers。
```python
import os, json
config_dir = os.path.join(os.path.expanduser("~"), ".workbuddy")
# ⛔ 必须精确指定 'mcp.json',不可用通配或 glob 匹配
mcp_path = os.path.join(config_dir, "mcp.json")
# macOS → /Users/xxx/.workbuddy/mcp.json
# Windows → C:\Users\xxx\.workbuddy\mcp.json
new_entry = {
"rent-evaluator-http": {
"url": "https://rental-mcp.yunping.com/mcp",
"description": "租金评估系统(HTTP 远程)"
}
}
# 读取现有配置
existing = {}
if os.path.exists(mcp_path):
try:
with open(mcp_path, "r", encoding="utf-8") as f:
existing = json.load(f)
except json.JSONDecodeError:
print("ERROR: mcp.json 格式损坏")
exit(1)
# 如果已存在该连接器,跳过
servers = existing.get("mcpServers", {})
if "rent-evaluator-http" in servers:
print("OK: 连接器已配置")
exit(0)
# 合并并写入(仅操作 mcp.json,不碰 .mcp.json)
# 会话隔离由 OAuth 授权保证, 不需要 headers.Mcp-Session-Id
servers["rent-evaluator-http"] = new_entry["rent-evaluator-http"]
existing["mcpServers"] = servers
os.makedirs(config_dir, exist_ok=True)
with open(mcp_path, "w", encoding="utf-8") as f:
json.dump(existing, f, ensure_ascii=False, indent=2)
print("OK: 已写入 mcp.json")
```
3. 🔴 Python 脚本执行后,Read 验证写入结果:
```bash
# ⛔ Read 前先用 Glob 确认目标文件存在
ls -la ~/.workbuddy/mcp.json
```
确认输出中存在 mcp.json(不是 .mcp.json)后,再 Read 该文件验证内容。
4. 告知用户最终步骤:
"✅ 连接器 rent-evaluator-http 已自动写入 mcp.json。
请打开 WorkBuddy 左侧【连接器管理 → 自定义连接器】,
找到 rent-evaluator-http,点击「信任」按钮启用。
完成后告诉我,我继续帮你。"
5. 用户确认已信任 → 重新 ToolSearch 验证 → 进入正常流程
前置条件
rent-evaluator-http MCP 连接器在连接器管理页面启用(状态为绿色)。
如未启用 → Skill 仍可加载,启动自检流程会输出配置指南,不会崩溃或报错。
工具发现(关键步骤)
> 完整 MCP 工具清单(82 个)见 references/tools.md。实际调用时优先用 ToolSearch 按工具名检索最新 schema,避免凭记忆传参。
数据字典操作
> 字典编号(fjlx / HOUSE_USAGE / pgUseCode 等)、dict 用法、resolve 映射与缓存字段映射见 references/dict.md。
🔴 执行红线速查(最高优先级 · 常驻上下文)
> 以下 6 条是最容易导致「一键出报告」流程出错的硬约束。加载本 Skill 后必须全程牢记,长流程中不得稀释。
| # | 红线 | 违反后果 |
|---|---|---|
| 1 | 一键出报告必须跑完 Phase 1→5,直到生成报告才算结束,禁止中途交还用户 | 只建项目/填查勘就停,漏掉案例/比较法/报告 |
| 2 | 查勘永远 survey_update 默认表「查勘信息」;仅当用户原话含"新建/创建/新增"才允许 survey_create |
误建"新增查勘信息N"空表,默认表留空 |
| 3 | 拷贝已识别附件后,必须回目标项目调 attachment_extract_status 重建本地缓存;禁止手写/猜缓存 |
项目信息字段缺失、靠猜值 |
| 4 | 项目信息必须从 extract_cache.json 映射 + resolve 填充,禁止猜值/直接存中文 |
字典校验失败、字段错填 |
| 5 | Phase 出口闸门必须逐项核对,全部满足后才能 TaskUpdate completed;闸门中的步骤遇到 MCP 工具报错 → 必须先 Read 对应 references/<module>.md 找替代方案(curl HTTP 端点等),禁止直接跳过 |
图片未上传就标 completed、关键步骤漏执行 |
| 6 | project_select 会清空缓存 → 拷贝顺序必须:源项目选附件 → 切回目标项目 → 再触发缓存 |
切来切去导致缓存丢失 |
⚠️ 能力边界速览(常驻)
> 以下情况本技能搞不定,须按指定方式处理,不得硬试或假装成功。完整清单见 references/limits.md。
| 情况 | 正确处理 |
|---|---|
| MCP 未配置/未授权 | 走启动自检输配置指南,不执行任何评估操作 |
| token 过期 | 仅提示用户手动重登,禁止自动重登/跳转;流程中断等用户重启 |
| 缺必填字段 | 必须问用户,禁止猜值/跨项目取数 |
| 楼盘搜索无结果 | 直接告知"未找到",禁止换词重试/扩大范围 |
| 拷贝附件 | 仅拷文件,绝不读源项目信息填充当前项目 |
🗺️ 我能帮你做什么(直接照着说)
> 除了"一键出报告"全流程,你随时可以只做其中一步、或单纯问我问题。下面是能力地图,挑一句照说即可,不用记工具名。
- 登录 / 换机构:"登录租金系统" · "切换机构"
- 项目:"进望京那个项目" · "新建一个项目" · "看项目状态" · "补全项目信息"
- 附件 & 识别:"上传这份合同" · "识别附件" · "看提取结果" · "把XX项目的附件复制过来"
- 评估对象 & 查勘:"建个评估对象" · "填查勘" · "查勘信息怎么改"
- 图片:"传几张现场图" · "图片分类改一下" · "删掉这张图"
- 案例:"加个可比案例" · "选案例" · "查案例库"
- 比较法 & 修正:"填比较法" · "修正因素怎么改" · "看修正公式"
- 报告:"生成报告" · "下载报告" · "看报告列表" · "定稿"
- 字典 / 字段:"用途代码是什么" · "查字典"
- 问问题 / 求助:"你能做什么" · "这个字段啥意思" · "流程怎么走"
🧭 模式路由
| 用户意图 | 触发话术示例 | 路由文件 | 动作 |
|---|---|---|---|
| 全流程出报告 | "一键出报告" / "自动评估" / "出报告" | references/oneclick.md |
先 TaskCreate 规划 Phase 1-5,逐个完成,禁止中途交还 |
| 登录 / 换机构 | "登录租金系统" / "切换机构" | references/login.md |
按登录 Playbook 执行 |
| 项目(选项目 / 新建 / 状态 / 信息) | "进XX项目" / "新建项目" / "看项目状态" / "补全项目信息" | references/login.md · references/attachment.md |
按对应阶段执行 |
| 附件 & 识别 & 项目信息 | "上传附件" / "识别这份合同" / "看提取结果" / "复制XX项目附件" | references/attachment.md |
按附件 Playbook 执行 |
| 评估对象 & 查勘 & 房产 | "建评估对象" / "填查勘" / "查勘信息怎么改" | references/object_survey.md |
按对象/查勘 Playbook 执行 |
| 图片管理 | "传现场图" / "改图片分类" / "删图片" | references/image.md |
按图片 Playbook 执行 |
| 案例管理 | "加案例" / "选案例" / "查案例库" | references/case.md |
按案例 Playbook 执行 |
| 比较法 & 修正 | "填比较法" / "修正因素怎么改" / "看修正公式" | references/comparison.md |
按比较法 Playbook 执行 |
| 报告生成 | "生成报告" / "下载报告" / "看报告列表" / "定稿" | references/report.md |
按报告 Playbook 执行 |
| 字典 / 字段 | "查字典" / "用途代码是什么" | references/dict.md |
调 dict 工具 |
| 问问题 / 求助 | "你能做什么" / "这个字段啥意思" / "流程怎么走" | 无(直接解释) | 见下方「问 vs 做」 |
💡 问 vs 做(重要)
用户的话分两类,处理方式不同:
- 「做」(有副作用,要调工具):如"帮我生成报告" / "上传附件" → 进入上表对应 Playbook 执行。
- 「问」(纯咨询,无副作用):如"生成报告要几步" / "修正公式怎么填" / "这个字段啥意思" → 不进入任何 Phase 流程,直接基于
references/原文解释即可;必要时加载对应文件引用。
> 判断不清时:用户没说"帮我 / 给我 / 上传 / 生成 / 创建"等动作词,大概率是「问」,优先解释而非执行。
> 📌 完整的一键出报告 Playbook(资料预检、场景 A/B、Phase 1-5 详细步骤、出口闸门)见 references/oneclick.md。本速查仅用于入口判断与防早停。
📂 参考文档索引(按需加载)
进入对应场景时,用 Grep 在 references/ 中检索关键词并 Read 该文件,再执行。
| 场景 | 加载文件 | grep 关键词 |
|---|---|---|
| 登录 / 选项目 / 通用作业 | references/login.md | 第一阶段 第二阶段 |
| 附件 / 识别 / 缓存 / 复制 / 项目信息 | references/attachment.md | extract_cache 4e project_info |
| 评估对象 / 查勘 / 房产信息 | references/object_survey.md | §6a 查勘信息 2-C |
| 图片管理 | references/image.md | 第七阶段 |
| 案例管理 | references/case.md | 第八阶段 |
| 比较法 / 修正 / 其他坐落 / 评估结果 | references/comparison.md | 第九阶段 比较法 |
| 报告生成 | references/report.md | 第十五阶段 |
| 一键出报告全流程 | references/oneclick.md | 一键出报告模式 Phase |
| 字典 / resolve 映射 | references/dict.md | 字典 resolve |
| 完整工具清单 | references/tools.md | mcp__rent-evaluator |
| 对话示例参考 | references/examples.md | 评估对象创建 |
| 边界与忌讳 / 已知坑 | references/limits.md | 能力边界 已知坑 |