/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) |
双向联动机制:
- sales-visit 写入明道云后 → 同步调用本技能的写入流程,将拜访摘要追加到对应客户文件
- 本技能加载客户记忆后 → 对 sales-visit 对话提供上下文预填(已有联系人、历史机会等)
- 两个技能可同时激活,互不冲突
文件体系
memory/customers/
├── INDEX.md ← 总索引(轻量,\x3C2KB)
├── {客户名}.md ← 普通客户(\x3C30KB 单文件)
├── {客户名}/ ← 超大客户(≥30KB 自动分层)
│ ├── INDEX.md ← 客户摘要 + 子文件索引
│ ├── contacts.md ← 联系人详情
│ ├── opportunities.md ← 机会详情
│ ├── projects.md ← 项目详情
│ ├── contracts.md ← 合同详情
│ ├── deliveries.md ← 交付详情
│ └── communication-log.md ← 沟通记录(按时间)
└── ...
超大文件分层机制
触发条件:当客户 .md 文件超过 30KB 或 500 行时,自动执行分层拆分。
拆分流程:
- 创建
{客户名}/子目录 - 创建
{客户名}/INDEX.md(保留基本信息 + 联系人概要 + 各子文件链接 + 最近 3 条沟通记录) - 将详细内容拆分到对应子文件
- 删除原单文件
{客户名}.md - 更新
INDEX.md中的链接指向{客户名}/INDEX.md
分层后的加载策略:
- 对话中首次加载:仅读
{客户名}/INDEX.md(摘要,\x3C3KB) - 需要具体信息时:按需加载对应子文件(如只需联系人则只加载
contacts.md) - INDEX.md 保持最新摘要(最近联系人、活跃机会数、项目状态等)
{客户名}/INDEX.md 格式(分层后的轻量入口)
---
name: \x3C客户全称>
industry: \x3C行业>
status: \x3C状态>
file_count: \x3C子文件数>
updated: \x3C日期>
---
# \x3C客户名称>
## 概要
- 规模/行业/主营
- 状态:跟进中(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: \x3C客户全称>
industry: \x3C行业>
status: \x3C状态>
created: \x3C创建日期>
updated: \x3C最近更新日期>
---
# \x3C客户名称>
## 基本信息
- 全称/简称/规模/所属行业/主营业务
- 组织架构(IT部门/采购部门/业务部门)
- 已有系统(数据平台/BI工具等)
- 近期动态
## 联系人
### \x3C姓名> - \x3C职位>
- 角色:\x3C决策人/影响者/使用者/Champion/Coach>
- 联系方式:\x3C电话/微信/邮箱>
- 性格特点/沟通偏好:
- 最近沟通:YYYY-MM-DD,\x3C要点>
- 关系评估:
## 项目机会
### \x3C机会名称>
- 产品方向:ONN/IOC/EA/数字孪生
- 阶段:Discover/Scope/Go-No-Go/Validate/Business Case/Negotiate
- MEDDIC 状态:
- M(衡量标准)/ E(经济决策人)/ D(决策标准)/ D(决策流程)/ I(痛点)/ C(内部支持者)
- 金额预估 / 关键节点 / 竞品情况
## 项目
### \x3C项目名称>
- 合同编号 / 状态 / 开始日期 / 计划交付日期
- 项目经理(我方/客户方)
- 关键里程碑 / 当前风险/卡点
## 合同
### \x3C合同名称>
- 金额 / 付款方式 / 签署日期 / 有效期
- 主要条款摘要 / 回款节点
## 交付
### \x3C交付批次>
- 交付内容 / 交付日期
- 验收状态:已验收/待验收/有遗留问题
- 遗留问题
## 沟通记录
### YYYY-MM-DD \x3C主题>
- 参与人(我方+客户方):
- 要点:1. ... 2. ...
- 下一步:
- 相关文件/链接:
执行流程
对话中:识别与加载
- 识别客户:从对话中提取客户名称(全称或简称),模糊匹配 INDEX.md 中的已有客户
- 加载记忆:找到已有客户 → 读取其文件(普通客户读全文,超大客户读 INDEX.md 摘要)→ 将关键信息注入当前对话上下文
- 新客户:INDEX.md 未找到 → 标记为新客户,对话后创建
对话后:写入更新(必须执行)
- 更新基本信息:新获取的公司信息追加到"基本信息"区块
- 更新联系人:新联系人或已有联系人的新信息,追加/更新到"联系人"区块
- 更新机会:MEDDIC 各维度有进展则更新对应字段
- 追加沟通记录:在"沟通记录"区块末尾追加本次对话摘要
- 更新 frontmatter:修改
updated字段为当前日期 - 更新 INDEX.md:已有客户更新"最近更新"和"状态";新客户新增一行
- 超大文件检查:写入后检查文件大小,超过 30KB 或 500 行则执行分层拆分
- 确认:告知用户"已更新 {客户名} 的记忆文件"
读取原则(追问或新对话时)
- 先查 INDEX.md 确认客户是否存在
- 存在 → 加载摘要(普通客户读全文,超大客户读 INDEX.md)→ 按需加载子文件
- 不存在 → 标记为新客户
联动其他技能
| 技能 | 联动方式 |
|---|---|
| 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 保持轻量摘要(\x3C3KB)
- ✅ 更新 frontmatter 的
updated时间戳 - ✅ 与 sales-visit 双向联动:明道云写入 ≠ 本文件可跳过
- ❌ 不创建"联系人单独文件"或"项目单独文件"(除非客户已分层)
- ❌ 不覆盖已有信息,增量追加(除非是同一字段的修正更新)
- ❌ 不编造未在对话中出现的信息
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install crm-memory - After installation, invoke the skill by name or use
/crm-memory - Provide required inputs per the skill's parameter spec and get structured output
What is Crm Memory?
面向对象的客户记忆体系。聊起任何客户、联系人、项目机会、项目、合同、交付相关话题时激活。 自动维护 memory/customers/ 下的客户索引和详情文件,支持超大客户文件自动分层拆分。 与 sales-visit(明道云写入)双向联动:sales-visit 写入后同步更新本记忆文件, 本记忆文件加载的上下... It is an AI Agent Skill for Claude Code / OpenClaw, with 50 downloads so far.
How do I install Crm Memory?
Run "/install crm-memory" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Crm Memory free?
Yes, Crm Memory is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Crm Memory support?
Crm Memory is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Crm Memory?
It is built and maintained by Andy Ren (@andyrenxu7255); the current version is v1.0.1.