dealcenter 客户档案查读与回填
定位(先读这个)
本 skill 是回答用户问题时的辅助能力:在动手干活前提供客户过往信息,让回答更准;不是主要任务。由此推出两条铁律:
- 静默:查不到档案、某个维度读不了、工具调用报错/超时(通道坏了)——一律不说、不问、不推销建档,直接当没有档案,按正常流程回答用户。唯一例外:配置卡点(通道没接,见下节)不静默,引路一次。
- 不喧宾夺主:给用户的回复以原任务为主体。档案信息只用于把活干得更好,除非用户问,否则不单独汇报「我查了档案」。引路也一样:一句话给出口,原任务仍是主体。
档案服务名是 DealCenter(工具前缀 dealcenter.*,客户主体是 account 不是 company)——对用户提服务名时一律说 DealCenter,不称 CRM。连接器页的卡片名是 OmniMay MCP(以连接器页当前版本为准),引路到连接器页时一律称 OmniMay MCP。
配置卡点引路(铁律1 的唯一例外)
判定(满足其一即是——「通道没接」,不是「通道坏了」):
- 未安装:工具清单里根本没有
dealcenter.*工具(工具搜索不到该工具组、提示未安装/未接入/未连接) - 未授权:调用返回 401 / 未授权 / 授权过期类错误(已安装但未授权)
动作(按分支执行,说完立刻回到原任务,把手头能做的部分做完):
-
未安装 → 插一句引路:> OmniMay MCP 还没安装:到「连接器」页找到「OmniMay MCP」添加并点「连接」(首次会走浏览器授权),弄好后叫我重查就行。
-
未授权 → 插一句引路:> OmniMay MCP 还没授权:到「连接器」页找到「OmniMay MCP」点「连接」完成浏览器授权,弄好后叫我重查就行。
-
只说/做这一次:不追问、不展开、不等用户授权/安装完成才交付本轮原任务
-
用户明确要查档案而通道不通时,绝不答「没有档案 / 没有记录」——数据可能存在,只是通道没通;此时必须引路
何时使用 / 不使用
使用:
- 回答前需要了解客户以往档案信息(公司/商机/联系人/经历活动/文档)——典型:写跟进邮件、准备拜访、出方案、客户问「上次聊到哪了」
- 用户明确要求把信息记录/回填到档案("记一下""录到档案""更新商机阶段"),或对 skill 产出的建议回填项点头确认后
不使用:
- 任务与具体客户无关(通用翻译/PPT/方法论问答)
- 只查不写的场景不需要走写入流程;批量提取非结构化文本落库不归本 skill(按需走结构化回填流程分步录入)
一、读档流程
判断本次回答是否需要客户档案背景
├─ 不需要 → 直接执行任务
└─ 需要 → dealcenter.account.search(客户名)
├─ 0 命中 / 工具报错 → 静默继续,直接执行任务(不提"没查到",不建议建档)
├─ 1 命中 → dealcenter.account.get_full(id)
└─ 多命中 → 自行判断最符合的一家(用对话里的行业/业务/联系人线索),
判断依据充分就不问用户;实在判不出才问,一句话问清
*注:若工具清单里根本没有 `dealcenter.*` 工具,或调用返回 401/未授权 → 走「配置卡点引路」分支,不是 0 命中/运行失败*
→ 从 get_full 提取对当前任务有用的:公司基本面 / 商机与阶段 / 联系人 / 最近活动 / 文档
→ 需要更深时按需补:dealcenter.deal.get_full / dealcenter.activity.list_recent /
dealcenter.contact.search / dealcenter.doc.list_full(工具契约见 references/mcp-tools.md)
→ 带着档案背景执行原任务
读档纪律:
- 禁止脑补档案内容:引用的每一条过往信息(上次聊了什么、谁负责、什么阶段)必须来自工具实际返回的字段。档案里没有的不编、不补叙事,宁可不提。
- 未确认值要标注:档案字段有 suggested(AI 记的、未经销售确认)与 confirmed 之分。引用 suggested 值时向用户说明"这是之前 AI 记录的,未经确认"。
- 读档失败不重试超过 1 次,失败即静默放弃该维度。
二、写入流程(仅用户明确要求或确认后)
没有用户点头,一个写入工具都不调。 业务 skill 执行完产出值得入档的事实时,先评估信息质量:
- 高质量(明确、可验证、字段对齐契约,例如完整手机号 + 真实姓名 + 明确来源):用 1-2 句话问用户是否录入;问完不追问,不展开推荐
- 低质量(脱敏、残缺、纯推断、来源模糊):不主动提,绝不借机推荐建档;回复里也别再以任何形式把这条话题拽回来(不附条件、不建议补建、不问要不要挂补查清单)
只有用户明确说"记一下""录到档案""更新商机"等,或对建议项明确点头后,才进入写入执行。
有序四步(先查后建,防重复)
按 客户(account)→ 联系人/商机 → 活动 → 文档 顺序,每步先 search 再建:
| 步 | 查 | 建 | 必挂约束(缺则不建该项) |
|---|---|---|---|
| 1 客户 | account.search(名) |
account.create |
name |
| 2 联系人 | contact.search(核心词, account_id)(剥"总/经理"等称谓) |
contact.upsert |
account_id + contact_methods ≥1(缺真实联系方式则该项挂起,不造假值) |
| 3 商机 | deal.search(主体词),只看当前客户下的结果 |
deal.upsert |
account_id + name |
| 4 活动 | 不查(append-only),同次运行内 (deal_id, happened_at, summary) 三元组自去重 | activity.batch_create(单批 ≤100) |
deal_id(无商机则不建活动) |
| 文档 | doc.list_full(account_id) 按 file_uri 判重 |
doc.create |
account_id +(content 或 file_uri 二选一,见 mcp-tools.md) |
写入侧查重原则(不可妥协):每步 search 是写入的前置必做而非可省。如果 search 工具暂时不可用(故障面里的 404/-32603),该实体直接挂起 pending,绝不绕过查重直接建。account.create 是按名幂等的(同名返现有、不更新字段)所以客户步可建;contact/deal/doc 的 upsert 都不是名字幂等——查重缺位 = 必重。
sources 必填——第一次就带,不等报错
每次写入 sources[] 必填非空,格式逐字按契约:
[{ "kind": "chat_turn", "title": "用户原话前 80 字", "quote": "用户确认的那句原话", "occurred_at": "2026-09-04T14:30:00+08:00" }]
错误处置(这些不是失败)
| 响应 | 动作 |
|---|---|
| DUPLICATE_ACTIVITY_HINT / DUPLICATE_FILE_URI | 记 reused,简短汇报"已存在",不追问用户 |
| 409 AMBIGUOUS(多候选) | 先自行判断,判不出才问用户(写错污染库,标准比读侧严) |
| 400 MISSING_REQUIRED_FIELD | 缺真实值则该项挂起,绝不造假值占位 |
| 422 RENAME_NOT_ALLOWED | name 创建后只读,不改名绕过 |
| 404 REFERENCE_NOT_FOUND | 检查前置步骤是否被跳过,不硬建 |
写完简短汇报四态
一行一项列 created / reused / pending / skipped(pending 注明缺什么、等人定),不展开细节、不追问。
纪律红线
| 念头 | 正确做法 |
|---|---|
| "没查到档案,得告诉用户/问要不要继续" | 静默继续。查档是辅助,用户要的是任务本身 |
| "顺手建议用户建档,是增值服务" | 不推销。用户没问就不提 |
| "调研里发现了新联系人,借机提一句" | 信息质量门槛:脱敏/残缺/推断的不提;只有明确且可用才用 1-2 句话问是否录入 |
| "低质量信息虽不入档,但可以提一下'以后补齐再录'或问要不要挂补查清单" | 低质量就当不存在,回复里不重新引入话题、不附条件、不留钩子 |
| "档案里大概是聊过 XX,写进邮件" | 只引用工具实际返回的字段,没有就不提 |
| "sources 等服务端报错再补" | 第一次就带,格式按契约 |
| "字段名写 date/contact_ids 差不多就行" | 逐字按 references/mcp-tools.md 的字段契约 |
| "DUPLICATE 提示了,跟用户确认下" | 记 reused 汇报一句即可 |
| "多个候选,选最像的直接建" | 写入侧判不出必须问人;读入侧可自判但要有依据 |
| "工具报错了,告诉用户通道挂了/止步于此" | 先分清:未安装/未授权(工具缺失或 401)→ 引路到连接器页添加/连接「OmniMay MCP」;运行失败(超时/500/查不到)→ 静默降级 |
| "引路一次没反应,再催一下" | 只说一次,立刻回原任务;用户装好后叫你重查即可 |
| "通道没接,答'没有档案'也算如实" | 不是如实,是错误回答——数据可能存在只是通道没通。配置卡点必须引路,不假称查无档案 |
工具契约
工具名、参数、字段类型、错误码、当前故障面(哪些工具暂不可用及降级方式)全部在 references/mcp-tools.md——调工具前必读,通道口径变更只改该文件。
