# Visit Memo

> 客户经理走访纪要生成技能。将现场拜访的口述观察结构化记录为贷前尽调笔记,支持多轮增量更新与持久化保存。当用户在客户拜访现场口述企业经营状况、厂区观察、财务线索、风险信号、人物印象等信息,或要求记录、整理、更新拜访笔记时使用此技能。触发词包括:"拜访记录"、"走访纪要"、"visit memo"、"现场记录"、"记录拜访"、"整理笔记"、"拜访纪要"、"visit record"。不适用于:拜访前规划、授信审批决策、贷后管理报告、正式尽调报告生成、或无具体客户背景的一般咨询。

- Skill: `aliyun/visit-memo` (Agent Skill, multi-file: 15 files)
- Install (CLI): `npx skillmds@latest add aliyun/visit-memo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aliyun/visit-memo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aliyun (https://skillmd.com/u/aliyun)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/aliyun/visit-memo

---


# 拜访记录（Visit Memo）

当用户在客户拜访现场口述信息或要求记录拜访笔记时，按以下流程执行。

## 目标角色 (Target Role)

- **角色**：对公客户经理、风险经理
- **使用场景**：贷前尽调现场拜访、客户实地走访、风险排查拜访
- **输出用途**：将口述观察快速结构化为符合贷前尽调规范的记录
- **决策层级**：贷前调查基础材料，为尽调报告和授信申请提供依据
- **执行频率**：每次拜访现场执行，支持多轮增量更新

## 数据接入 (Data Sources)

### 必需数据
| 数据项 | 来源 | 获取方式 | 敏感级别 |
|--------|------|---------|----------|
| 客户经理口述信息 | 现场对话 | 语音转文本或手动输入 | 内部 |
| 客户基础档案 | ECIF系统 | API: /api/customer/profile | 内部 |
| 历史拜访记录 | 信贷系统影像档案 | API: /api/notes/list | 内部 |
| 风险预警信号 | 风险管理系统 | API: /api/risk/alerts | 机密 |

### 数据脱敏规则
- 客户身份证号：显示前3后4，中间用 * 替代
- 银行账号：仅显示后4位
- 客户商业机密信息（如核心客户名单）：在记录中使用"某客户"代替
- 敏感风险信号：仅在内部记录中标注，不对外披露

### 降级策略
- 如果 ECIF 系统不可用：标注"客户基础档案未核验"，继续记录口述信息
- 如果历史拜访记录不可用：标注"首次拜访，无历史记录"，从头开始记录
- 如果风险预警系统不可用：标注"风险预警未纳入"，仅基于现场观察识别风险
- 如果语音转文本不可用：提示用户手动输入或稍后补充

---

## 约束条件 (Constraints)

1. **忠实记录**:仅记录用户口述内容,不添加推断或评价,事实与判断分开标注
2. **追问克制**:每轮最多追问 1-2 个问题,优先追问风险维度,不打断用户叙述节奏
3. **增量合并**:新信息与已有记录合并,不覆盖、不丢失,修正时明确标注"(已更正)"
4. **风险前置**:观察到风险信号时,在记录末尾单独标注 ⚠️,不淹没在正文中
5. **模式灵活**:用户说"先不保存"时只展示不保存;用户转换话题时正常响应,无需退出仪式
6. **数据溯源**:每条记录须标注信息来源(口述/现场观察/系统查询)和时间戳
7. **合规边界**:不得在现场记录中做出授信决策建议,仅记录客观事实
8. **禁止跳过步骤**:不得跳过步骤0(数据确认)和步骤4(风险信号扫描),必须执行完整流程
9. **红线执行强制**:如触发任何红线(R1-R3),必须立即停止记录并提示用户,不得继续

### 金融合规红线（一票否决）

以下情况须立即停止记录并提示用户：
- R1：用户要求记录涉嫌财务造假的信息（须提示合规风险）
- R2：用户要求隐瞒已知风险信号（须提示如实记录义务）
- R3：用户要求伪造现场观察数据（须拒绝并记录合规事件）

---

## 审计追踪 (Audit Trail)

每次拜访记录须自动记录以下信息：

```json
{
  "memo_id": "VM-20260520-001",
  "customer_id": "CUST-XXXX",
  "visit_date": "2026-05-20",
  "record_time": "2026-05-20 14:30:00",
  "relationship_manager": "张三（工号：10086）",
  "visit_type": "首次拜访/回访/尽调/风险排查",
  "update_count": 1,
  "risk_signals_count": 2,
  "data_sources": ["口述", "现场观察", "ECIF系统"],
  "saved": true,
  "save_time": "2026-05-20 14:45:00"
}
```

---

## 结构化维度

### 1. 企业概况（现场可见事实）

- **厂区/办公环境**：面积估算、位置（园区/独立/合租）、整洁度、维护状态
- **员工规模与状态**：目测人数、着装规范、精神面貌、工作氛围
- **生产与设备**：生产线数量、设备品牌与新旧程度、开工率、自动化水平
- **经营活跃度**：库存可见量（原材料/在产/成品）、物流车辆、来访客户/供应商

### 2. 财务线索（口述与现场佐证）

- **营收情况**：年营收规模、近期趋势（增长/平稳/下滑）、季节性特征
- **利润与成本**：毛利率估算、主要成本构成（原材料/人工/能源）
- **资金状况**：现金流描述、回款周期、应收账款规模、资金缺口
- **负债情况**：银行借贷（机构/金额）、民间融资迹象、对外担保
- **票据与结算**：是否使用商业承兑汇票、主要结算银行

### 3. 上下游关系

- **主要客户**：前三大客户名称/行业、集中度、合作稳定性、账期（天数）
- **主要供应商**：核心原材料来源、议价能力、付款方式（预付/月结/票据）
- **行业地位**：市场份额估算、竞争格局、技术或品牌壁垒
- **产业链话语权**：是否有定价权，上下游账期差（体现流动资金压力）

### 4. 担保物与资产

- **不动产**：厂房/办公楼面积、产权性质（自有/租赁）、土地证/房产证状态
- **设备资产**：核心设备品牌、台套数、使用年限、是否已抵押
- **其他资产**：存货、应收账款、股权等可质押资产
- **已有抵押/质押**：已向哪些机构设置担保，是否有剩余担保空间

### 5. 风险信号识别

**经营类风险**
- 停工/减产迹象（设备停转、员工稀少、杂草丛生）
- 存货积压（成品堆放过多、原材料减少）
- 资产变卖迹象（设备被转移、厂区出租）

**财务类风险**
- 口述数字与现场规模明显不符（虚报收入/资产）
- 多头融资迹象（多家银行同时授信且资金用途模糊）
- 民间融资/高利贷迹象（紧张还款压力、不透明资金往来）

**关联方风险**
- 同一地址多家公司（空壳/代持风险）
- 不明身份人员频繁出入
- 实控人介绍与工商信息不符

**法律与合规风险**
- 现场张贴的诉讼/仲裁公告
- 被执行/查封迹象（设备贴有封条）
- 环保/安全问题（排放异常、危险品存储）

### 6. 人物印象

- **实控人/法人**：性格特征（稳重/冲动/油滑）、专业度（懂行/外行）、对银行态度、配合意愿
- **财务负责人**：账务熟悉程度、配合度、是否回避敏感问题
- **其他关键人**：股东、职业经理人、担保人等关键人物观察

### 7. 本次拜访成果（后期补充）

- 是否达成预设目标
- 获取的关键资料清单（报表/合同/证件复印件）
- 关键承诺与约定（下次提供材料/安排专项考察）
- 客户经理判断与初步意见

---

## 执行流程 (Workflow)

> 交互模式:模式 D - 对话辅助型(Dialogue-Assisted)

当用户在客户拜访现场口述信息或要求记录拜访笔记时,按以下流程执行:

### 步骤 0:数据确认与初始化(先读后写)

1. 确认客户身份:提取客户名称或ID
2. 读取访前规划(如有): `references/visit-memo-templates.md` 中的拜访目标清单
3. 读取历史拜访记录(如有):检查上次拜访时间和关键待办
4. 确认拜访类型:首次拜访/回访/尽调/风险排查
5. 初始化记录模板:调用 `assets/visit-memo-template.md`

> 📋 数据来源:`system_api`(ECIF系统、信贷系统影像档案)
> 📋 执行主体:`ai`
> 📋 确认机制:`none`
> ⚠️ 强制指令:不得跳过历史读取步骤,必须确认是否有待办事项需要跟进

### 步骤 1:首次输入记录(data_source: user_upload, executor: ai)

1. 提取用户口述信息,归类到7个结构化维度(查阅 `references/industry-observation-guide.md`)
2. 每条信息标注来源:(企业方口述)/(现场观察)/(CM判断)
3. 数字必须带单位(万元/亿元/平方米/天)
4. 输出结构化记录,调用笔记保存工具持久化

> *对接提示:映射到贵行客户笔记保存接口(如 save_client_note),传入客户ID和结构化内容*
> ✅ 记录成功 → 进入步骤4(风险扫描)
> ❌ 保存失败 → 标注"未保存",继续对话,稍后重试

### 步骤 2:后续增量合并(data_source: context, executor: ai)

1. 读取已有记录(信贷系统影像档案)
2. 将新信息合并到对应维度,不覆盖、不丢失
3. 新增内容标注"新增:",修正内容标注"已更正:"
4. 更新保存

> *对接提示:映射到贵行笔记读取接口(如 read_note),按客户ID获取已有记录后追加更新*
> ✅ 合并成功 → 进入步骤4(风险扫描)
> ⚠️ 历史记录不可用 → 标注"首次拜访,无历史记录",从头开始记录

### 步骤 3:信息修正(data_source: user_upload, executor: ai, confirmation: inform)

1. 用户说"刚才说错了"或"更正一下"时,定位具体字段修正
2. 标注"(已更正)",保留原值
3. 不丢失其他内容

> ✅ 修正成功 → 进入步骤4(风险扫描)
> ❌ 字段定位失败 → 提示用户明确修正目标

### 步骤 4:风险信号扫描(data_source: context, executor: ai)

1. 每次整理后,主动扫描风险信号维度(第5维度,查阅 `references/risk-signal-catalog.md`)
2. 发现异常时在记录末尾单独以 ⚠️ 标注
3. 不得因信息正面就跳过风险扫描

> ✅ 无风险信号 → 输出"本次拜访未发现明显风险信号"
> ⚠️ 发现风险信号 → 逐条列出,标注风险类型(经营类/财务类/关联方/法律合规类)

### 步骤 5:缺失追问(data_source: context, executor: human)

1. 检查关键维度空缺
2. 优先追问以下顺序:
   - 第一优先:风险信号维度(最重要)
   - 第二优先:担保物状态(授信决策核心)
   - 第三优先:财务线索中缺失的核心指标
3. 每轮最多追问1-2个问题,使用 `references/visit-memo-templates.md` 中的追问话术

> ⚠️ 强制指令:不得追问宽泛问题(如"还有什么要补充的吗"),必须精准指向缺失维度

### 步骤 6:不保存模式(data_source: user_upload, executor: ai)

1. 用户说"先不保存"或"只看不记"时,仅在对话中展示结构化内容
2. 不调用保存工具
3. 用户说"现在保存"时,执行步骤1或步骤2

### 步骤 7:自然交互与结束(data_source: user_upload, executor: ai)

1. 用户随时可补充,转换话题时正常响应
2. 用户说"记录完了"或"拜访结束"时:
   - 输出完整版本
   - 提醒用户记录本次成果与下一步约定(第7维度)
   - 生成审计日志

> ✅ 用户确认完成 → 输出最终版本 + 审计日志
> ⚠️ 用户未确认成果 → 提醒"请补充本次拜访成果与下一步约定"

---

## 交互模式 (Interaction Pattern)

> 模式 D - 对话辅助型(Dialogue-Assisted)

### 对话阶段

| 阶段 | 触发条件 | 行为 | 退出条件 |
|------|---------|------|----------|
| **开始** | 用户首次输入拜访信息 | 执行步骤0(数据确认),初始化记录模板 | 模板初始化完成 |
| **中间** | 用户持续补充信息 | 执行步骤1-5(记录→合并→修正→风险扫描→追问) | 用户说"记录完了"或转换话题 |
| **结束** | 用户说"记录完了"/"拜访结束" | 执行步骤7(输出完整版本+审计日志) | 用户确认完成 |

### 上下文管理 (Context Management)

**上下文累积规则**:
- 每轮对话累积信息到对应结构化维度,不覆盖历史内容
- 修正时保留原值,标注"(已更正)"
- 上下文窗口满时,自动摘要前3轮内容,保留关键数字和风险信号

**上下文重置条件**:
- 用户明确说"重新开始记录"
- 切换到另一个客户(客户ID变更)
- 拜访结束并保存后,自动清空当前会话上下文

**多轮对话限制**:
- 单轮拜访记录最多支持20轮增量更新
- 超过20轮时,提醒用户"当前记录轮次较多,建议先保存当前版本"

---

## 输出格式 (Output Format)

> 本输出可被 credit-due-diligence Skill 和 submit-credit-application Skill 解析使用

使用 `assets/visit-memo-template.md` 模板。输出必须包含以下7个章节:

| 章节 | 内容 | 下游可解析字段 |
|------|------|----------------|
| 1.企业概况 | 厂区/员工/生产/经营活跃度 | `factory_area`(string)、`employee_count`(int)、`production_lines`(int) |
| 2.财务线索 | 营收/利润/资金/负债/票据 | `annual_revenue`(number)、`gross_margin`(percent)、`cashflow_status`(enum) |
| 3.上下游关系 | 客户/供应商/行业地位/话语权 | `top3_customer_concentration`(percent)、`payment_terms`(string) |
| 4.担保物与资产 | 不动产/设备/其他资产/已有抵押 | `real_estate_ownership`(enum)、`existing_mortgage`(array) |
| 5.人物印象 | 实控人/财务负责人/其他关键人 | `controller_profile`(string)、`cooperation_level`(enum) |
| 6.本次拜访成果 | 目标达成/资料清单/承诺约定 | `goals_achieved`(bool)、`materials_obtained`(array) |
| 7.风险信号 | 经营类/财务类/关联方/法律合规类 | `risk_signals`(array)、`risk_level`(enum) |

**输出要求**:
- 每条信息必须标注来源:(企业方口述)/(现场观察)/(CM判断)
- 所有数字必须带单位(万元/亿元/平方米/天)
- 风险信号必须在末尾单独以 ⚠️ 标注,不淹没在正文中
- 最多2个追问,精准指向缺失维度

**免责声明**:
本记录仅为贷前调查基础材料,不构成审批依据。所有记录须经过客户经理确认后,才能用于后续尽调报告生成。

---



## 踩坑记录 (Gotchas)

### #1：口述信息与现场观察混淆
- **症状**：将客户经理的主观判断误标为客观事实
- **原因**：未严格区分“客户说”和“我看到”
- **解决**：所有信息必须标注来源——（企业方口述）、（现场观察）、（CM判断）

### #2：风险信号被淹没在正文中
- **症状**：重要风险信号（如民间融资）混杂在财务线索段落中，不易识别
- **原因**：未在记录末尾单独以 ⚠️ 标注
- **解决**：每次整理后必须扫描风险信号维度，在末尾单独列出

### #3：增量更新时覆盖历史内容
- **症状**：新信息替换了旧信息，导致数据丢失
- **原因**：未执行“增量合并”规则
- **解决**：任何更新必须保留原值，新增内容标注“新增：”，修正内容标注“已更正：”

### #4：追问过于宽泛
- **症状**：追问“还有什么要补充的吗”，用户不知从何说起
- **原因**：未针对具体缺失维度提问
- **解决**：使用追问话术参考表，精准指向缺失维度（如“您提到毛利15%，主要成本构成是什么？”）

---

## 示例 (Examples)

### 示例1：首次拜访记录

**用户输入**：
```
我刚拜访了明泰铝业，记录一下：
厂区大概50亩，在工业园区内，环境整洁。目测员工100人左右，都在正常生产。
有3条生产线，设备比较新，应该是近3年买的。开工率大概80%。
仓库里原材料和成品都不少，物流车来来往往挺忙。
张总说去年营收大概3亿，今年预计增长20%。毛利15%左右。
主要客户是汽车零部件厂商，前3大客户占比50%。
厂房是自有的，已经抵押给工行贷款2000万。
张总人很务实，对行业很懂行，配合度很高。
```

**AI 输出**：
```markdown
## 拜访记录 — 明泰铝业有限公司
> 记录时间：2026-05-20 14:30 | 拜访人：[待补充] | 拜访类型：首次

### 企业概况
- 厂区面积约50亩，位于工业园区内，环境整洁（现场观察）
- 目测员工约100人，着装规范，工作氛围正常（现场观察）
- 3条生产线，设备较新（近3年购置），开工率约80%（现场观察）
- 库存充足（原材料+成品），物流车辆频繁，经营活跃（现场观察）

### 财务线索
- 年营收约3亿元（2025年），2026年预计增长20%（企业方口述）
- 毛利率约15%（企业方口述）
- 主要成本构成：待补充（企业方口述）

### 上下游关系
- 主要客户：汽车零部件厂商（企业方口述）
- 前3大客户占比50%（企业方口述）
- 主要供应商：待补充

### 担保物与资产
- 厂房自有，已抵押给工行贷款2000万元（企业方口述）
- 设备资产：3条生产线（近3年购置）（现场观察）

### 人物印象
- 实控人张总：性格务实，专业度高（懂行），配合意愿强（CM判断）

### 本次拜访成果
- [待拜访结束后补充]

---
⚠️ 风险信号：本次拜访未发现明显风险信号

❓ 建议追问：
1. 您提到毛利15%，主要成本构成是什么？（原材料/人工/能源占比）
2. 除了工行2000万贷款，还有其他银行授信吗？
```

### 示例2：风险信号记录

**用户输入**：
```
补充一下，我刚才在厂区看到有几个车间没开工，设备停着。问了一下张总，说是有2条线停了，因为订单不足。
另外，我听说他在民间借了些钱，利息挺高的。
```

**AI 输出**：
```markdown
## 拜访记录 — 明泰铝业有限公司（更新）
> 记录时间：2026-05-20 15:00 | 拜访人：[待补充] | 拜访类型：首次
> 更新说明：新增信息已合并到对应维度

### 企业概况
- 厂区面积约50亩，位于工业园区内，环境整洁（现场观察）
- 目测员工约100人，着装规范，工作氛围正常（现场观察）
- 3条生产线，设备较新（近3年购置），开工率约80%（现场观察）
  - **已更正**：实际开工率约60%（3条线中2条正常运行，1条停机）（现场观察）
- 库存充足（原材料+成品），物流车辆频繁，经营活跃（现场观察）
  - **新增**：有2个车间未开工，设备停机，原因：订单不足（企业方口述）

### 财务线索
- 年营收约3亿元（2025年），2026年预计增长20%（企业方口述）
  - **风险信号**：订单不足可能影响营收增长预期
- 毛利率约15%（企业方口述）

### 上下游关系
- 主要客户：汽车零部件厂商（企业方口述）
- 前3大客户占比50%（企业方口述）

### 担保物与资产
- 厂房自有，已抵押给工行贷款2000万元（企业方口述）
- 设备资产：3条生产线（近3年购置，2条正常运行）（现场观察）

### 人物印象
- 实控人张总：性格务实，专业度高（懂行），配合意愿强（CM判断）

### 本次拜访成果
- [待拜访结束后补充]

---
⚠️ 风险信号：
1. **经营类风险**：2个车间停工，订单不足（开工率从80%降至60%）
2. **财务类风险**：疑似民间融资（高利息），待核实具体金额和利率

❓ 建议追问：
1. 民间借贷的具体情况？（金额、利率、期限、资金用途）
2. 订单不足的原因？（行业性问题还是企业自身问题）
```

---

## 适用范围限制 (Out of Scope)

本 Skill **不适用于**以下场景：

- ❌ **拜访前规划**：请使用 `pre-visit-plan` Skill 生成访前准备报告
- ❌ **授信审批决策**：本记录仅为贷前调查基础材料，不构成审批依据
- ❌ **贷后管理报告**：请使用贷后管理相关 Skill
- ❌ **正式尽调报告**：请使用 `credit-due-diligence` Skill 生成完整尽调报告
- ❌ **风险评估报告**：请使用风险评估相关 Skill

**边界说明**：
- 本 Skill 专注于**现场拜访的实时记录**，支持多轮增量更新
- 输出的是**结构化笔记**，不是正式的尽调报告或审批文件
- 所有记录须经过客户经理确认后，才能用于后续尽调报告生成

