mcpField
E
enrich

enrich

github.com/garrytan生产力31.3k300 次安装今天更新
代码仓库

关于 enrich

enrich 是用于从外部来源补充人物和公司页面的技能,会按实体重要性分层开展研究,并要求事实附带引用、时间线和双向链接。

主要功能

  1. 01按重要性分三级补充信息
  2. 02从脑库和外部来源查找资料
  3. 03记录带引用的事实与时间线
  4. 04关联人物、公司及相关页面
  5. 05保存原始数据以保留来源

适用场景

  1. 01更新脑库中已有的人物或公司页面
  2. 02为重要联系人开展深入资料整理
  3. 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、Exa1-2
LinkedIn / 职业Crustdata、Proxycurl、People Data Labs1
职业经历Happenstance、LinkedIn1
融资 / 公司数据Crunchbase、PitchBook、Clearbit1
社交媒体平台 API、网页抓取1-3
会议记录日历/会议转录工具1-2
第 5 步:保存原始数据(保留溯源)

通过 gbrain 中的 put_raw_data 存储原始 API 响应:

{
  "source": "crustdata",
  "fetched_at": "2026-04-11T...",
  "query": "jane doe",
  "data": { ... }
}

原始数据保留了溯源信息。如果编译后的核心事实受到质疑,原始数据可以准确显示 API 返回的内容。

第 6 步:写入大脑
创建路径
  1. 检查收录门槛(参见 skills/_brain-filing-rules.md)
  2. 从当前激活的 schema pack 中确定实体的类型、目录和子类型,切勿依据下方模板:遵循 skills/brain-taxonomist/SKILL.md(使用 gbrain schema show --json,或 MCP 的 get_active_schema_pack;单个类型使用 schema_explain_type)。当 pack 中声明的实体类型比 person 或 company 更符合证据时(例如投资机构、协议基金会),将其归档到该类型的目录下并标注其子类型。如果没有声明的类型适用,请说明并询问;不要退回到 companies/。
  3. 依据第 2 步的 type 和目录,使用下方模板创建页面。Frontmatter 只包含 pack 为该类型声明的键,或该类型现有页面已使用的键,且仅填写已知值:未知字段直接省略,绝不写入 null、空值或占位符。
  4. 填写带引用的编译后核心事实
  5. 添加第一条时间线条目
  6. 空白章节保留为 [No data yet](不要用样板内容填充)
  7. 批量操作时,先创建其他页面将要链接到的页面。链接到尚不存在的页面会被记录为待建页面,待该页面写入后才会成为有效链接(gbrain wanted 可列出这些页面)。
更新路径
  1. 添加新的时间线条目(按时间倒序,仅追加)
  2. 仅当新信号实质性改变全局判断时,才更新编译后的核心事实
  3. 用新事实更新「状态」章节
  4. 标记新信号与现有编译核心事实之间的矛盾
  5. 不要用 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)

评论

支持 Markdown