关于 enrich
enrich 是用于从外部来源补充人物和公司页面的技能,会按实体重要性分层开展研究,并要求事实附带引用、时间线和双向链接。
主要功能
- 01按重要性分三级补充信息
- 02从脑库和外部来源查找资料
- 03记录带引用的事实与时间线
- 04关联人物、公司及相关页面
- 05保存原始数据以保留来源
适用场景
- 01更新脑库中已有的人物或公司页面
- 02为重要联系人开展深入资料整理
- 03批量处理一组有价值的实体
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ garrytan/ gbrain --skill enrich安装后在 Claude Code 中输入/enrich确认已加载。
详细介绍
Enrich 技能
从外部来源丰富人物和公司页面。投入的精力与其重要性相匹配。
约定
本技能保证:
- 每个经过丰富的页面都有带内联引用的编译真相(State 部分)
- 每个经过丰富的页面都有带日期条目的时间线
- 反向链接是双向创建的
- 分层丰富:Tier 1(完整)、Tier 2(中等)、Tier 3(精简),依据重要程度划分
- 没有桩页面:每个新页面都有来自网络搜索或现有 brain 上下文的实质内容
归档规则: 创建任何新页面之前,请先阅读
skills/_brain-filing-rules.md。
约定: Iron Law 反向链接请参见
skills/conventions/quality.md。
每一次提及拥有 brain 页面的人物或公司时,都必须从该实体的页面创建一个指向提及方页面的反向链接。未链接的提及就是一个损坏的 brain。格式请参见 skills/_brain-filing-rules.md。
理念
一个 brain 页面应当读起来像一份情报档案,而不是 LinkedIn 的抓取结果。事实只是基本门槛,价值在于质感——他们相信什么,在构建什么,是什么驱动他们,又将走向何方。
引用要求(强制)
约定: 引用格式和来源优先级请参见
skills/conventions/quality.md。
当来源存在冲突时,需同时附上两方引用,并注明矛盾之处。
何时进行丰富
主要触发条件
- 用户在对话中提及某个实体
- 实体出现在会议记录或邮件中
- 出现带有重要背景信息的新联系人
- 实体登上新闻或发生重大事件
- 任何导入(ingest)流水线遇到值得关注的实体
不要丰富
- 没有关系信号的随意提及
- 机器人/垃圾账号
- 与用户工作没有实质关联的实体
- 同一页面在过去一周内已被丰富过(除非有新信号值得再次丰富)
丰富层级
按重要程度调整丰富力度。不要在低价值实体上浪费 API 调用。
| 层级 | 对象 | 投入 | 来源 |
|---|---|---|---|
| 1(关键) | 核心圈子、密切合作者、关键联系人 | 完整流程 | 所有可用 API + 深度网络研究 |
| 2(重要) | 偶尔有互动的人、行业人物 | 中等 | 网络研究 + 社交 + brain 交叉引用 |
| 3(一般) | 值得追踪但不关键 | 轻量 | brain 交叉引用;若已知 handle,则进行社交查询 |
丰富流程(7 步)
第 1 步:识别实体
从传入的信号中提取人物、公司和概念。
第 2 步:检查 brain 状态
对于每个实体:
gbrain search "name"—— 页面是否已存在?- 若存在: UPDATE 路径(添加新信号,若有实质变化则更新编译真相)
- 若不存在: CREATE 路径(先通过notability 门槛检查,再创建)
第 3 步:从来源中提取信号
不要只记录事实,还要捕捉质感:
| 信号类型 | 需提取的内容 |
|---|---|
| 观点、信念 | What They Believe 部分 |
| 当前项目、已发布功能 | What They're Building 部分 |
| 雄心、职业轨迹、动机 | What Motivates Them 部分 |
| 反复执着的话题 | Hobby Horses 部分 |
| 他们推崇、争论或敬重的人 | Network / Relationships |
| 上升、停滞还是转型? | Trajectory 部分 |
| 职位、公司、融资、所在地 | State 部分(硬性事实) |
Step 4: 外部数据源查询
优先级顺序——当你获得足以判断实体层级的信号时即可停止。
4a. 大脑交叉引用(始终执行,所有层级)
gbrain search "name"和gbrain query "what do we know about name"- 检查相关页面:人物富化时查看公司页面,反之亦然
- 这是免费的,且通常信息最丰富的来源
4b. 网络调研(第 1 和第 2 层级)
- 使用 Perplexity、Brave Search、Exa 或同类网络调研工具
- 关键模式: 将大脑中已有的知识作为上下文发送,使搜索返回增量信息(相对于你已掌握内容的新变化),而非重复内容
- 第 1 层级的深度调研使用 Opus 级别模型,第 2 层级使用更轻量的模型
4c. 社交媒体查询(所有层级,已知账号时执行)
- 拉取近期帖子/推文,了解语气、兴趣和当前关注点
- 社交媒体是了解某人真实想法的信息质感最强的信号来源
4d. 人员富化 API(第 1 层级)
- LinkedIn 数据、职业经历、人脉关系、教育背景
4e. 公司富化 API(第 1 层级)
- 公司数据、财务状况、员工规模、关键人员招募、近期新闻
| 数据需求 | 示例来源 | 层级 |
|---|---|---|
| 网络调研 | Perplexity、Brave、Exa | 1-2 |
| LinkedIn / 职业 | Crustdata、Proxycurl、People Data Labs | 1 |
| 职业经历 | Happenstance、LinkedIn | 1 |
| 融资 / 公司数据 | Crunchbase、PitchBook、Clearbit | 1 |
| 社交媒体 | 平台 API、网页抓取 | 1-3 |
| 会议记录 | 日历/会议转录工具 | 1-2 |
第 5 步:保存原始数据(保留溯源)
通过 gbrain 中的 put_raw_data 存储原始 API 响应:
{
"source": "crustdata",
"fetched_at": "2026-04-11T...",
"query": "jane doe",
"data": { ... }
}
原始数据保留了溯源信息。如果编译后的核心事实受到质疑,原始数据可以准确显示 API 返回的内容。
第 6 步:写入大脑
创建路径
- 检查收录门槛(参见
skills/_brain-filing-rules.md) - 从当前激活的 schema pack 中确定实体的类型、目录和子类型,切勿依据下方模板:遵循
skills/brain-taxonomist/SKILL.md(使用gbrain schema show --json,或 MCP 的get_active_schema_pack;单个类型使用schema_explain_type)。当 pack 中声明的实体类型比person或company更符合证据时(例如投资机构、协议基金会),将其归档到该类型的目录下并标注其子类型。如果没有声明的类型适用,请说明并询问;不要退回到companies/。 - 依据第 2 步的
type和目录,使用下方模板创建页面。Frontmatter 只包含 pack 为该类型声明的键,或该类型现有页面已使用的键,且仅填写已知值:未知字段直接省略,绝不写入null、空值或占位符。 - 填写带引用的编译后核心事实
- 添加第一条时间线条目
- 空白章节保留为
[No data yet](不要用样板内容填充) - 批量操作时,先创建其他页面将要链接到的页面。链接到尚不存在的页面会被记录为待建页面,待该页面写入后才会成为有效链接(
gbrain wanted可列出这些页面)。
更新路径
- 添加新的时间线条目(按时间倒序,仅追加)
- 仅当新信号实质性改变全局判断时,才更新编译后的核心事实
- 用新事实更新「状态」章节
- 标记新信号与现有编译核心事实之间的矛盾
- 不要用 API 样板内容覆盖用户撰写的评估
人物页面模板
---
title: Full Name
type: person
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: []
company: Current Company
relationship: How the user knows them
# email, linkedin, twitter, location: add each only when you know it
---
# Full Name
> 1-paragraph executive summary: HOW do you know them, WHY do they matter,
> what's the current state of the relationship.
## State
Role, company, key context. Hard facts only.
## What They Believe
Ideology, first principles, worldview. What hills do they die on?
## What They're Building
Current projects, recent launches, what they're focused on.
## What Motivates Them
Ambition, career arc, what drives them.
## Communication Style
How they like to communicate, how they handle disagreement, what energizes
them in a conversation. Write only what you observed directly (meetings,
their emails or posts) or what they said about themselves; label each line
observed, self-described or inferred. One data point is a timeline entry,
not a pattern. Confidence follows interaction count: low after one, high
after five or more.
## Hobby Horses
Topics they return to obsessively. Recurring themes in their work/posts.
## Assessment
Your read on this person. Strengths, gaps, trajectory.
## Trajectory
Ascending, plateauing, pivoting, declining? Where are they headed?
## Relationship
History of interactions, shared context, relationship quality.
## Contact
Email, social handles, preferred communication channel.
## Network
Key connections, mutual contacts, organizational relationships.
## Open Threads
Active conversations, pending items, things to follow up on.
---
## Timeline
Reverse chronological. Every entry has a date and [Source: ...] citation.
- **YYYY-MM-DD** | Event description [Source: ...]
公司页面模板
---
title: Company Name
type: company
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: []
---
# Company Name
> 1-paragraph executive summary.
## State
What they do, stage, key people, key metrics, your connection.
## Open Threads
Active items, pending decisions, things to track.
---
## Timeline
- **YYYY-MM-DD** | Event description [Source: ...]
Step 7: 交叉引用
- 根据人物信息补充结果更新公司页面(反之亦然)
- 如果出现相关背景信息,更新相关项目/交易页面
- 如果知识库使用索引文件,检查索引文件
注意(v0.10.1): 知识库页面之间的链接会在每次调用 put_page 时自动创建(自动链接后置钩子)。Step 7 关注的是内容层面的交叉引用(用本次补充得到的新信号更新相关页面的编译结论),而不是创建链接。在可信的本地写入中,put_page 响应会包含 auto_links: { created, removed, errors }。MCP 写入(stdio 和 HTTP)会跳过内联自动链接(auto_links.skipped: "remote"),但会为已存在的页面排队普通 mentions 边(auto_links.mention_links: "queued")。带类型的边和 frontmatter 边(works_at、invested_in、source 等)需要等待维护任务处理:即 stdio 服务的清理扫描,或在主机上对 HTTP 知识库执行 gbrain sweep --once。如果需要立即创建带类型的边,请使用 add_link。
时间线条目仍需显式调用 gbrain timeline-add。
批量补充规则
- 先在 3-5 个实体上测试。 阅读实际输出,检查质量。
- 只有测试结果达到质量标准后,才进行批量处理。
- 同一来源有 3 个及以上实体时,批量处理或派生子 Agent。
- 限制 API 调用频率,遵守速率限制。
- 批量运行时,每处理 5-10 个实体提交一次。
- 批量补充完成后保存报告(见下方报告存储)。
校验规则
- LinkedIn 人脉数少于 20 时,很可能是错误的人,跳过
- 知识库与 API 之间姓名不匹配时,跳过并标记待审核
- 玩笑式资料或明显错误的数据,保存到原始数据中,不更新页面
- 不要用 API 的模板化内容覆盖用户撰写的评估
- 拿不准时:保存原始数据,但不更新知识库页面
报告存储
每次补充扫描完成后,保存一份报告:
- 处理的实体数量
- 新建页面数与已有页面更新数
- 调用的数据来源及结果质量
- 值得注意的发现或矛盾之处
- 校验标记或 API 失败情况
这样可以为知识库的长期补充过程留下审计记录。
失败处理
对于任何 gbrain 错误 code、退出码、[AGENT] 代码块或通知代码块,请遵循 Agent 操作员协议。本技能的具体情况如下:
- 外部补充 API 返回
rate_limited或认证失败:按照提示的延迟退避;认证失败时停止,并告知用户缺少哪个密钥。绝不能用猜测的事实填补空缺。 put_page返回revision_conflict:重新读取实体页面,合并后使用新的版本号保存。- 写入时
auto_links.errors非空:页面已保存,但部分链接未成功;请在报告中列出这些链接,修正 slug 后用add_link添加。
反模式
- 创建没有内容的空壳页面
- 未先检查知识库就进行补充
- 用 API 数据覆盖用户的直接陈述
- 为不值得关注的实体创建页面
输出格式
一个补充完整的人物页面包含:
- Frontmatter:包括类型、标签、公司、关系及联系方式字段
- 执行摘要(1 段:如何认识此人、此人为何重要、当前关系状态)
- 现状部分:包含确切事实及行内
[Source: ...]引用 - 细节板块(信念、正在构建的内容、驱动动机、热衷话题)
- 评估,包含发展趋势判断
- 关系历史与联系方式
- 人脉:关联与共同联系人
- 时间线:按时间倒序排列,每条均注明日期及来源引用
一个补充完整的公司页面包含:
- Frontmatter:包括类型和标签
- 执行摘要(1 段)
- 现状部分(业务内容、阶段、关键人物、指标、你与其的关系)
- 待办事项(进行中的事项、待决策事项)
- 时间线:按时间倒序排列,每条均注明日期并附引用
两类页面都与其提及的每个实体建立双向反向链接。
使用的工具
- 读取 gbrain 中的页面 (get_page)
- 在 gbrain 中存储或更新页面 (put_page)
- 在 gbrain 中添加时间线条目 (add_timeline_entry)
- 按类型列出 gbrain 中的页面 (list_pages)
- 在 gbrain 中存储原始 API 数据 (put_raw_data)
- 从 gbrain 中检索原始数据 (get_raw_data)
- 在 gbrain 中关联实体 (add_link)
- 在 gbrain 中检查反向链接 (get_backlinks)