构建特定人物(上级/合作伙伴/客户)的本地数字分身,辅助汇报演练、风格化起草、决策预判。当用户粘贴某人物的发言、邮件、聊天记录、会议纪要、批注,或提供包含其内容的网页URL,或说出"投喂语料""练习汇报""模拟 NPC 反应""按X总风格起草""预演一下""数字分身""人格画像""压力测试我的方案"等意图时,自动...
把零散的 NPC 语料,蒸馏成可演练的数字分身。
启用本Skill的明确信号(任一即触发):
不要触发的场景:
text
存储: ~/npc-distill/memory-{npc_id}.md (单文件,纯Markdown)
代号: L001, L002, L003... (永远不要写真名)
脚本: scripts/*.py (纯Python,需要 pyyaml + Python 3.9+)
模板: templates/*.md (5个工作流)
5 个核心工作流(按用户意图加载对应模板):
用户意图加载输出投喂文本templates/ingest-text.md解析→展示→入库投喂URLtemplates/ingest-url.md抓取→筛选→入库压测方案templates/rehearse-pressure.md5个尖锐提问演练对话templates/rehearse-dialogue.md多轮角色扮演起草内容templates/draft-with-critique.md初稿+自我批判+定稿
pip install pyyaml>=6.0情况处理用户粘贴的文本里没识别出明显说话人询问"这段是 L001 说的全部,还是其中部分?"文本超长(>5000 字)提示"内容较多,我拆成几段逐一确认"文本含他人隐私(电话/账号/身份证)警告并询问是否要脱敏用户中途改主意不写入任何文件,清空临时抽取结果update_memory.py --signals 生成骨架条目(scene/channel=未知, weight=1.0, 无内容/判断)绕过脚本,手动 patch: 用 patch 工具将骨架行替换为完整内容。参见下方"已知局限"
update_memory.py --signals JSON 解析不完整#症状: 传入结构完整的 signals JSON 后,脚本只提取了 date/attribution/weight, scene, channel, tags, 场景背景, 内容, 抽取信号, 我的判断 等字段全部丢失:
text
## C-20260521-005 · (未命名)
- date: 2026-05-21
- scene: 未知
- channel: 未知
- attribution: paraphrased
- weight: 1.0
根因: update_memory.py 的 --signals 解析器只读取 signals JSON 的顶层字段,未展开 corpus 子结构。
解决方案: 不用 --signals,直接通过 patch 或 write_file 手动追加 corpus 条目到 # 语料库 区域。步骤:
text
1. 用 read_file 确认当前最后一个 corpus 条目和格式
2. 用 patch 将新条目追加到合适的顺序位置
3. 更新 YAML frontmatter 中的 evidence_count、updated 日期
4. 更新 画像综述 中的 evidence_count 引用(脚本通常不同步这里)
update_memory.py 更新 frontmatter 中的 evidence_count,但不更新 # 画像综述 概要行中的数字(例如 evidence_count = 2 停留在初始值)。每次 add_corpus 后需手动修正概要行。用 patch 搜索 > 号 + evidence_count 关键词定位。
· 标题)不被脚本填充#--signals JSON 中的 corpus.scene 被忽略,条目显示为 C-20260521-005 · (未命名)。手动修改为有意义的中文标题。