Skill: andyrenxu7255/crm-memory (version 1.0.1)

--- name: crm-memory description: > 面向对象的客户记忆体系。聊起任何客户、联系人、项目机会、项目、合同、交付相关话题时激活。 自动维护 memory/customers/ 下的客户索引和详情文件，支持超大客户文件自动分层拆分。 与 sales-visit（明道云写入）双向联动：sales-visit 写入后同步更新本记忆文件， 本记忆文件加载的上下文可为 sales-visit 对话预填。对话后自动写入更新。 触发词（极宽）：任何客户名称、人名、项目名、合同、交付、拜访、POC、投标、签单。 version: 1.1.0 author: Dick Dunkel license: MIT-0 tags: [memory, customer, crm, knowledge-base, mingdao] category: sales created_by: agent --- # 客户记忆管理 > **定位**：整个销售智能体记忆体系的基石。所有与客户、联系人、机会、项目、合同、交付相关的对话信息，最终都应沉淀到本技能维护的文件体系中。让 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 格式（分层后的轻量入口） ```markdown --- 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 格式 ```markdown # 客户记忆索引 > 最近更新: 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 格式（普通客户，未分层） ```markdown --- 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 双向联动：明道云写入 ≠ 本文件可跳过 - ❌ 不创建"联系人单独文件"或"项目单独文件"（除非客户已分层） - ❌ 不覆盖已有信息，增量追加（除非是同一字段的修正更新） - ❌ 不编造未在对话中出现的信息


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (CRITICAL)