Crm Memory

Other

面向对象的客户记忆体系。聊起任何客户、联系人、项目机会、项目、合同、交付相关话题时激活。 自动维护 memory/customers/ 下的客户索引和详情文件,支持超大客户文件自动分层拆分。 与 sales-visit(明道云写入)双向联动:sales-visit 写入后同步更新本记忆文件, 本记忆文件加载的上下文可为 sales-visit 对话预填。对话后自动写入更新。 触发词(极宽):任何客户名称、人名、项目名、合同、交付、拜访、POC、投标、签单。

Install

openclaw skills install crm-memory

客户记忆管理

定位:整个销售智能体记忆体系的基石。所有与客户、联系人、机会、项目、合同、交付相关的对话信息,最终都应沉淀到本技能维护的文件体系中。让 agent 不再"健忘"。

触发条件(极度宽泛)

以下任一意图或关键词出现即激活:

  • 用户提及公司/机构/单位名称(含简称)
  • 用户提及人名(张三、李总、王处等)
  • "XX客户"、"XX项目"、"XX合同"、"XX交付"
  • "拜访XX"、"见XX"、"和XX开会"、"XX说了"
  • "POC"、"投标"、"签单"、"回款"、"续签"
  • "XX银行"、"XX大学"、"XX医院"、"XX局"
  • "帮我记一下XX"、"补充XX的信息"

与 sales-visit 技能的关系

维度crm-memory(本技能)sales-visit
存储本地 MD 文件(Agent 记忆)明道云 MCP(团队CRM系统)
触发任何客户话题"记录拜访""写拜访"
写入时机对话后自动用户确认后写入
读取时机对话前加载上下文渐进式追问收集字段
用户Agent 自身一线销售(WeCom)

双向联动机制

  1. sales-visit 写入明道云后 → 同步调用本技能的写入流程,将拜访摘要追加到对应客户文件
  2. 本技能加载客户记忆后 → 对 sales-visit 对话提供上下文预填(已有联系人、历史机会等)
  3. 两个技能可同时激活,互不冲突

文件体系

memory/customers/
├── INDEX.md                          ← 总索引(轻量,<2KB)
├── {客户名}.md                        ← 普通客户(<30KB 单文件)
├── {客户名}/                          ← 超大客户(≥30KB 自动分层)
│   ├── INDEX.md                      ← 客户摘要 + 子文件索引
│   ├── contacts.md                   ← 联系人详情
│   ├── opportunities.md              ← 机会详情
│   ├── projects.md                   ← 项目详情
│   ├── contracts.md                  ← 合同详情
│   ├── deliveries.md                 ← 交付详情
│   └── communication-log.md          ← 沟通记录(按时间)
└── ...

超大文件分层机制

触发条件:当客户 .md 文件超过 30KB 或 500 行时,自动执行分层拆分。

拆分流程

  1. 创建 {客户名}/ 子目录
  2. 创建 {客户名}/INDEX.md(保留基本信息 + 联系人概要 + 各子文件链接 + 最近 3 条沟通记录)
  3. 将详细内容拆分到对应子文件
  4. 删除原单文件 {客户名}.md
  5. 更新 INDEX.md 中的链接指向 {客户名}/INDEX.md

分层后的加载策略

  1. 对话中首次加载:仅读 {客户名}/INDEX.md(摘要,<3KB)
  2. 需要具体信息时:按需加载对应子文件(如只需联系人则只加载 contacts.md
  3. INDEX.md 保持最新摘要(最近联系人、活跃机会数、项目状态等)

{客户名}/INDEX.md 格式(分层后的轻量入口)

---
name: <客户全称>
industry: <行业>
status: <状态>
file_count: <子文件数>
updated: <日期>
---

# <客户名称>

## 概要
- 规模/行业/主营
- 状态:跟进中(1个活跃机会)

## 联系人概览(共 N 人)
| 姓名 | 职位 | 角色 | 最近沟通 |
|------|------|------|---------|
| 张三 | IT总监 | Champion | 2026-05-20 |

## 活跃机会
| 机会 | 产品 | 阶段 | 金额 |
|------|------|------|------|
| 智能问数 | ONN | Scope | 80万 |

## 最近动态
- 2026-05-20 技术交流,演示POC结果
- 2026-05-15 初次拜访信息中心主任

## 子文件索引
| 文件 | 内容 | 行数 | 大小 |
|------|------|------|------|
| [contacts.md](contacts.md) | 联系人详情 | 45 | 3KB |
| [opportunities.md](opportunities.md) | 机会详情 | 80 | 5KB |
| [communication-log.md](communication-log.md) | 沟通记录 | 320 | 18KB |

总索引 INDEX.md 格式

# 客户记忆索引

> 最近更新: YYYY-MM-DD HH:MM | 客户总数: N

| 客户名称 | 行业 | 状态 | 联系人 | 最近更新 | 文件 |
|---------|------|------|--------|---------|------|
| XX银行 | 金融 | 项目中 | 张处/李总 | 2026-05-21 | [XX银行](XX银行/INDEX.md) |
| YY大学 | 教育 | 跟进中 | 王主任 | 2026-05-20 | [YY大学.md](YY大学.md) |

链接指向 {客户名}.md(普通客户)或 {客户名}/INDEX.md(超大客户)。

状态枚举:潜在 / 跟进中 / POC中 / 投标中 / 已签约 / 实施中 / 已交付 / 休眠


{客户名}.md 格式(普通客户,未分层)

---
name: <客户全称>
industry: <行业>
status: <状态>
created: <创建日期>
updated: <最近更新日期>
---

# <客户名称>

## 基本信息
- 全称/简称/规模/所属行业/主营业务
- 组织架构(IT部门/采购部门/业务部门)
- 已有系统(数据平台/BI工具等)
- 近期动态

## 联系人
### <姓名> - <职位>
- 角色:<决策人/影响者/使用者/Champion/Coach>
- 联系方式:<电话/微信/邮箱>
- 性格特点/沟通偏好:
- 最近沟通:YYYY-MM-DD,<要点>
- 关系评估:

## 项目机会
### <机会名称>
- 产品方向:ONN/IOC/EA/数字孪生
- 阶段:Discover/Scope/Go-No-Go/Validate/Business Case/Negotiate
- MEDDIC 状态:
  - M(衡量标准)/ E(经济决策人)/ D(决策标准)/ D(决策流程)/ I(痛点)/ C(内部支持者)
- 金额预估 / 关键节点 / 竞品情况

## 项目
### <项目名称>
- 合同编号 / 状态 / 开始日期 / 计划交付日期
- 项目经理(我方/客户方)
- 关键里程碑 / 当前风险/卡点

## 合同
### <合同名称>
- 金额 / 付款方式 / 签署日期 / 有效期
- 主要条款摘要 / 回款节点

## 交付
### <交付批次>
- 交付内容 / 交付日期
- 验收状态:已验收/待验收/有遗留问题
- 遗留问题

## 沟通记录
### YYYY-MM-DD <主题>
- 参与人(我方+客户方):
- 要点:1. ... 2. ...
- 下一步:
- 相关文件/链接:

执行流程

对话中:识别与加载

  1. 识别客户:从对话中提取客户名称(全称或简称),模糊匹配 INDEX.md 中的已有客户
  2. 加载记忆:找到已有客户 → 读取其文件(普通客户读全文,超大客户读 INDEX.md 摘要)→ 将关键信息注入当前对话上下文
  3. 新客户:INDEX.md 未找到 → 标记为新客户,对话后创建

对话后:写入更新(必须执行)

  1. 更新基本信息:新获取的公司信息追加到"基本信息"区块
  2. 更新联系人:新联系人或已有联系人的新信息,追加/更新到"联系人"区块
  3. 更新机会:MEDDIC 各维度有进展则更新对应字段
  4. 追加沟通记录:在"沟通记录"区块末尾追加本次对话摘要
  5. 更新 frontmatter:修改 updated 字段为当前日期
  6. 更新 INDEX.md:已有客户更新"最近更新"和"状态";新客户新增一行
  7. 超大文件检查:写入后检查文件大小,超过 30KB 或 500 行则执行分层拆分
  8. 确认:告知用户"已更新 {客户名} 的记忆文件"

读取原则(追问或新对话时)

  1. 先查 INDEX.md 确认客户是否存在
  2. 存在 → 加载摘要(普通客户读全文,超大客户读 INDEX.md)→ 按需加载子文件
  3. 不存在 → 标记为新客户

联动其他技能

技能联动方式
sales-visit写入明道云后 → 同步更新本记忆文件;本记忆加载 → 为 sales-visit 预填上下文
customer-research调研完成后,关键发现写入客户文件
customer-visit-prep拜访准备时读取客户文件获取历史;准备内容写入文件
meddic-b2b-sales-review (review-visit)复盘后 MEDDIC 状态更新 + 沟通记录写入
bid-management / bid-compliance-check投标活动写入对应客户文件
任何技能涉及客户信息变更都应触发本技能的写入流程

质量标准

  • ✅ 对话后必须写入,不依赖用户提醒
  • ✅ 同一客户的所有信息集中在一个文件(或一个目录)
  • ✅ INDEX.md 保持更新,确保召回效率
  • ✅ 写入结构化(按区块),不是流水账
  • ✅ 文件超过 30KB/500行 自动分层为子目录
  • ✅ 分层后的 INDEX.md 保持轻量摘要(<3KB)
  • ✅ 更新 frontmatter 的 updated 时间戳
  • ✅ 与 sales-visit 双向联动:明道云写入 ≠ 本文件可跳过
  • ❌ 不创建"联系人单独文件"或"项目单独文件"(除非客户已分层)
  • ❌ 不覆盖已有信息,增量追加(除非是同一字段的修正更新)
  • ❌ 不编造未在对话中出现的信息