返回 Skill 列表
extension
分类: 内容与媒体无需 API Key

legal-qa-extractor

从律师与客户沟通记录中提取有价值的法律问答对,生成结构化知识库内容。本技能应在用户需要整理客户咨询记录、从对话中提取可复用法律知识、创建问答知识库、或准备内容营销素材时使用。支持严格客户信息脱敏处理。

person作者: jakexiaohubgithub

法律问答提取技能

概述

从律师与客户的沟通记录中提取有价值的法律问答对(客户问题 + 律师解答),生成结构化知识库内容。适用于将客户咨询转化为可复用的法律知识,供后续整理成文章、案例或学习材料。

核心价值:提取那些可以被其他客户复用的问答内容,而不是单一客户的具体案情。

核心原则

客户信息保护

绝对禁止在问答内容中包含:

  • ❌ 客户真实姓名
  • ❌ 企业/机构名称
  • ❌ 具体地址、联系方式
  • ❌ 任何可识别个人或企业的信息

脱敏处理标准

  • ✅ 客户姓名 → 使用"当事人"、"客户"、"甲/乙"等代称
  • ✅ 企业名称 → 使用"某公司"、"某企业"、"该企业"等代称
  • ✅ 具体信息 → 模糊化为"某地"、"某时间"、"相关人员"等
  • ✅ 客户原话 → 脱敏后引用:"客户询问..."而非"张总说..."

问答对的价值判断

提取的问答应该满足以下条件之一:

  • 普遍性:其他客户也可能遇到同类问题
  • 典型性:代表了某类法律场景的常见关切
  • 教育性:律师的解答有普法价值或指导意义
  • 复用性:可以独立成文或作为知识库条目

工作流程

步骤 1:分析输入内容

获取沟通记录文档和用户的具体要求,理解:

  • 文档中的沟通内容和情境
  • 用户希望重点关注哪些方面
  • 哪些问答具有复用价值

步骤 2:识别有价值的问答对

完整梳理文档中的问答内容,按以下维度识别价值:

问答识别维度

  1. 直接问答 - 客户明确提出问题,律师给出解答
  2. 追问回应 - 客户追问,律师进一步解释
  3. 风险提醒 - 律师主动提醒的风险点及应对建议
  4. 操作指引 - 涉及流程、步骤、注意事项的问答
  5. 普遍关切 - 其他客户也可能遇到的同类问题

问答提取方法

  • 语义分析:理解客户真实问题和律师核心观点
  • 逻辑归纳:将分散的对话整理为独立问答对
  • 价值评估:判断问答是否具有普遍适用性
  • 标准化表述:将口语化表达转化为规范的问答格式

步骤 3:生成结构化报告

输出文件保存至原文档的同一目录,文件命名:{原文档名}_法律问答提取_{YYYYMMDD}.md

输出格式详见 output-template.md

每个问答对包含以下部分:

  • 问题:客户提出的问题(标准化表述)
  • 律师解答:律师的核心观点和建议(300-500字)
  • 问题背景(可选):该问题出现的情境(200-300字)
  • 价值标签:普遍性/典型性/教育性/复用性
  • 适用场景:什么情况下读者会关心这个问答

步骤 4:问答分类与关联

提供以下分析维度:

  • 问答特征分析:重点问答数量、常规问答数量、价值分布
  • 领域分类:按法律领域或业务场景分类
  • 关联分析:哪些问答之间存在关联、可组合成文章

质量标准

  • 独立性:每个问答对可以独立理解,不依赖完整对话背景
  • 普遍性:问答内容对其他客户也有参考价值
  • 完整性:问题和解答都清晰完整,没有断章取义
  • 脱敏严格:严格遵循客户信息保护规则
  • 可复用:提取的问答可以直接用于文章、知识库或学习材料

输入要求

本技能接受以下类型的输入:

  1. 文档路径:用户提供的沟通记录文档路径
  2. 粘贴内容:用户直接粘贴的沟通记录内容
  3. 用户要求:用户希望重点关注哪些类型的问答

配置与归档

用户配置

本技能支持通过 config/.env 文件自定义扫描行为:

# 复制模板
cp config/.env.example config/.env

# 编辑配置
QA_EXTRACTOR_SCAN_PATHS=~/Desktop/Clawd/10 - ⚖️ 法律工作/工作文档/011 - 潜在项目
QA_EXTRACTOR_SCAN_DEPTH=3
QA_EXTRACTOR_FILE_TYPES=md,txt

扫描记录

技能会维护 archive/scan-log.json 记录扫描状态:

{
  "version": "1.1.0",
  "last_full_scan": "2026-05-10T23:00:00+08:00",
  "watch_paths": [
    {
      "path": "~/Desktop/Clawd/10 - ⚖️ 法律工作/工作文档/011 - 潜在项目",
      "last_scanned": "2026-05-10T23:00:00+08:00",
      "status": "active"
    }
  ],
  "projects": {
    "潜在项目_A": {
      "source_files": ["path/to/file1.md", "path/to/file2.md"],
      "last_extracted": "2026-05-10",
      "qa_count": 8,
      "output_file": "archive/extractions/2026-05-10_潜在项目_A_qa.md",
      "status": "active"
    }
  },
  "files": {
    "path/to/file.md": {
      "content_hash": "sha256:abc123...",
      "last_modified": "2026-05-09",
      "last_extracted": "2026-05-10",
      "qa_count": 5,
      "status": "active"
    }
  },
  "archived": {
    "path/to/old_project": {
      "archived_at": "2026-05-01",
      "reason": "moved_by_user"
    }
  }
}

字段说明:

| 字段 | 用途 | |------|------| | files.*.content_hash | 文件内容指纹,变化时触发重新提取 | | files.*.status | active / archived,归档后跳过扫描 | | projects.*.source_files | 同一项目的多份沟通记录,合并输出 | | projects.*.status | active / archived,项目归档后锁定 | | archived.* | 记录已移走的路径,防止重复扫描 |

增量扫描逻辑:

文件夹类型判断(用于识别归档与活动项目):

| 命名模式 | 类型 | 处理方式 | |----------|------|----------| | 纯数字 / 日期区间(如 2425 01-0626 01-06) | 归档容器 | 深度扫描内部子文件夹 | | 日期+姓名(如 260323 张美金...260404 顾忆芬...) | 直接项目 | 直接扫描该文件夹 | | 其他 | 项目 | 直接扫描该文件夹 |

  1. 遍历 watch_paths 下所有直接子文件夹
  2. 判断每个文件夹类型(归档容器 / 直接项目)
  3. 对归档容器递归扫描;对直接项目扫描内容文件
  4. 对每个文件计算 content_hash
  5. 若文件不在 scan-log,或 hash 与记录不一致 → 触发提取
  6. 若项目内所有文件均变化才触发提取
  7. 提取完成后,按项目合并多份记录,输出单份 QA 文件

抽取结果归档

抽取的问答对保存在 archive/extractions/ 目录,按项目聚合:

archive/
├── scan-log.json              # 扫描状态记录
└── extractions/
    ├── 2026-05-10_潜在项目_A_qa.md   # 项目A的多轮咨询合并
    ├── 2026-05-10_潜在项目_B_qa.md   # 项目B的单次记录
    └── 2026-05-11_潜在项目_C_qa.md   # 项目C(后续增量新增)

多轮咨询合并逻辑:

  • 同一项目文件夹内的所有 .md/.txt 文件视为同一项目的多轮沟通
  • 提取时按文件顺序(文件名或修改时间)整合所有问答对
  • 去重:相同问题的多次出现保留最新解答
  • 输出文件名:{日期}_{项目名}_qa.md

注意archive/ 目录不纳入 Git 版本控制。

适用场景

  • 整理客户咨询记录为可复用知识
  • 从对话中提取内容营销素材
  • 建立法律问答知识库
  • 准备普法文章的素材
  • 制作客户常见问题清单
  • 定时扫描项目文件夹,增量提取新内容