Skip to main content

people-kb

名片知识库 / 人物志。在日常对话中被动感知用户聊到的人(朋友、同事、家人、合作方都记), 一人一档持续沉淀到知识库,让 Agent 越来越懂用户身边的人。三件事: ① 被动记录 — 对话里出现某个具体的人+关于 ta 的信息时,主动沉淀到 `人物 - {名字}`; ② 召回 — 再次聊到这个人时,先召回 memory 里的一句话指针,再 knowledge_search 拉全量档案补进上下文; ③ 去重与整理 — 按月去重,定期合并同一个人的零散记录。 存储走知识库(scene=work/life),不占用 memory(人物档案会越来越大)。

الانتقال إلى التثبيت

معلومات المصدر

المستودع
llm011/ethan-agent
آخر نشاط في المصدر
٨ أغسطس ٢٠٢٦ في ١٤:٥٦
لغة SKILL.md المكتشفة
الصينية
النجوم
٨
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
4 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
people-kb
version
1.0.0
description
名片知识库 / 人物志。在日常对话中被动感知用户聊到的人(朋友、同事、家人、合作方都记), 一人一档持续沉淀到知识库,让 Agent 越来越懂用户身边的人。三件事: ① 被动记录 — 对话里出现某个具体的人+关于 ta 的信息时,主动沉淀到 `人物 - {名字}`; ② 召回 — 再次聊到这个人时,先召回 memory 里的一句话指针,再 knowledge_search 拉全量档案补进上下文; ③ 去重与整理 — 按月去重,定期合并同一个人的零散记录。 存储走知识库(scene=work/life),不占用 memory(人物档案会越来越大)。
trigger
记一下.*(是谁|这个人|他是|她是)|记到people|整理进people|归到people|人物档案|这个人|我同事|我朋友|我的朋友|我的同事|我们组的|团队成员|认识了|介绍下.*(是谁)|.*最近怎么样|.*是个什么样的人|谁是|关于.*的信息
author
Ethan Agent
license
MIT
platforms
["linux","macos","windows"]
metadata
{"ethan":{"tags":["People","Knowledge","Relationship","Recall"]}}
# People KB(名片知识库 / 人物志) > 把用户身边的人沉淀成一人一档的「人物志」,日积月累,让 Agent 越来越懂这些人。 > 数据写知识库(`scene` 区分 work/life),memory 里只放一句话「指针」用于召回。 ## 🎯 核心理念 - **朋友、同事、家人、合作方都记** —— 不只是打工场景。是「你认识的人」的知识库。 - **被动感知**:不需要用户显式说"记一下"。只要对话里出现**一个具体的人 + 一条关于 ta 的信息**,就应该沉淀。 - **档案是活的**:每次聊到都可能补充,档案随时间变厚,画像越来越准。 - **存储在知识库、索引在 memory**:全量档案放知识库(可以很大);memory 里只留一句话指针,负责"下次聊到这个人时把 ta 捞回来"。 ## 🚫 硬规则 ### R1:写档案只用 knowledge_* 工具 人物档案的所有写入必须通过 `knowledge_add` / `knowledge_edit`,禁止 `file_write` / `shell`。路径由后端管理,不要自己拼 vault 路径。 - 新建 → `knowledge_add(title, content, tags, scene)` - 追加 → `knowledge_edit(source, content, mode="append", scene)` - 整篇改写 → `knowledge_edit(source, content, mode="replace", scene)` ### R2:档案条目命名固定为 `人物 - {名字}` - 标题:`人物 - {名字}`(如 `人物 - 张三`) - tags:`["people", "{名字}"]`(外加关系标签,如 `"colleague"` / `"friend"` / `"family"`) - scene:**同事/工作关系 → `work`;朋友/家人/生活关系 → `life`**(拿不准默认 work) - title 里禁止出现 `/`、`\`、连续 `-`、前后空格 ### R3:memory 指针(召回索引,务必写) **首次为某人建档、或档案有重要更新(换了关系/职业/重要标签)时**,用 `memory_write` 写一条极短的人物指针: - `memory_type="relationship"` - `content`:一句话,形如 `"用户的同事张三,负责支付方向,是直属下属;详细档案见知识库人物-张三"` - 只写**身份锚点**(谁、什么关系、一句话画像),**不要**把事件流水写进 memory —— 那些留在知识库档案里 - 同一个人只维护**一条**指针(内容变化时 memory_write 会按内容 supersede,直接用最新的一句话覆盖式重写即可) 作用:下次用户提到这个人时,`recall_memory` 会先召回这句指针,Agent 据此知道"这是用户认识的人",再 `knowledge_search` 拉全量档案。 ## ⚡ 快速路径 ### 被动记录(核心,默认行为) **触发**:对话中出现一个具体的人 + 关于 ta 的可沉淀信息。**判断标准**——满足下面任一条就该记: - 提到某人的**身份/关系**("我同事张三"、"我朋友小林"、"我妹") - 提到某人**做了什么 / 发生了什么**("张三今天把支付联调搞定了"、"小林最近换工作了") - 提到某人的**特点/偏好/近况**("张三特别较真"、"小林喜欢滑雪"、"李姐孩子刚上小学") **不记**:泛指的人("有个用户"、"某个同事"没点名)、纯路人、一次性无信息量的提及。 **流程**: 1. 提取 `{名字}`、`{关系}`(同事/朋友/家人/合作方/…)、`{信息}`、`{scene}`(按 R2) 2. `knowledge_search(query="人物 {名字}", scene=...)` 找档案: - **不存在** → `knowledge_add` 建档(见 `references/profile-format.md` 的新建模板),并按 **R3** 写 memory 指针 - **存在** → `knowledge_read` 读全文,按月去重(见 `references/recall-and-dedup.md`)后 `knowledge_edit` 追加时间线条目 3. 回复确认:记到了谁、记了什么(一句话,别啰嗦) > **低打扰原则**:被动记录时不要每条都追问。信息明确就直接记+一句话确认;只在关系/名字有歧义时才问。 ### 召回(聊到熟人时补上下文) **触发**:用户消息里出现一个可能是"用户认识的人"的名字,或问"X 最近怎么样 / X 是谁 / X 是个什么样的人"。 **流程**: 1. `recall_memory` 命中人物指针 → 确认这是用户认识的人 2. `knowledge_search(query="人物 {名字}", scene="work")` + 生活向再搜 `scene="life"`,找到档案 3. `knowledge_read` 读全文,把关系、画像、最近时间线提炼进当前回答的上下文 4. 若用户是在"聊这个人的新情况",顺带走一遍**被动记录**把新信息沉淀进去 ### 显式整理 **触发**:「把 xxx 整理进 people」「记到 people 里」「给 X 建个档案」。 1. 从消息/上下文提取 `{名字}: {信息}` 列表 2. 逐个走**被动记录**流程(建档 or 追加 + 指针) 3. 回复:列出写入了哪些人、各写了什么 ## 🗂️ 与其他技能的关系 | 技能 | 关系 | |---|---| | `team-manager` | **消费者**:绩效/CR/群扫描识别出的工作事件,写进本技能的 `人物 - {名字}` 时间线(带 `[亮点]/[问题]` 工作标签)。存储格式归本技能管。 | | `task-and-schedule-manager` | 「X 生日 6.1」「下周约 X 吃饭」这类含人物的时间信号,转交 task-and-schedule-manager 建提醒;人物本身信息留在这里。 | | `recall_memory` / `memory_write` | 人物指针的读写通道(R3)。 | ## 🧹 定期整理(建议配定时任务) 同一个人可能被零散记了多条、或名字写法不一("张三" vs "老张")。建议用 `task-and-schedule-manager` 配一个低频任务(如每月)做整理,prompt 见 `references/recall-and-dedup.md` 的「定期整理」章节:合并重名档案、去重时间线、补全画像摘要、刷新 memory 指针。 ## ⚠️ 约束 - **隐私边界**:人物档案仅存本地知识库,绝不发送到任何外部渠道/群/个人。 - **客观记录**:时间线以事实为主;主观印象放"画像"段落并注明是印象。 - **敏感信息**:薪资、绩效评级、健康隐私等,除非用户明确要求,否则不写档案。 - **不臆造**:拿不准名字/关系时先问,不要猜一个写进去。 ## 📎 详细规范 - `references/profile-format.md` — 人物档案的结构、新建/追加模板、字段规则 - `references/recall-and-dedup.md` — 召回流程、按月去重、memory 指针写法、定期整理 prompt
عرض على GitHub