关于 ingest
ingest 是用于将会议、文章、媒体、文档和对话归档到 GBrain 的 Agent 技能。其工作流保留原始来源、为写入的事实添加引用,并通过链接和时间线关联实体页面。
主要功能
- 01处理会议、媒体、文档和消息
- 02保留原始来源及出处信息
- 03为写入知识库页面的事实添加引用
- 04更新实体页面和时间线
- 05创建交叉链接及实体反向链接
- 06将媒体内容分流至专用导入流程
适用场景
- 01归档会议记录并补充与会者背景
- 02保存带来源记录的文章和文档
- 03导入视频、播客和社交帖子
- 04将事件详情同步到相关实体页面
MCP 相关
该技能使用 GBrain 的 search、get、put、sync、时间线更新、链接和原始文件存储等操作。输入将其描述为专用导入技能的路由器,而不是 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ garrytan/ gbrain --skill ingest安装后在 Claude Code 中输入/ingest确认已加载。
详细介绍
Ingest Skill
将会议、文章、媒体、文档和对话摄入到大脑中。
归档规则: 在创建任何新页面之前,请先阅读
skills/_brain-filing-rules.md。
约定
- 写入大脑页面的每一条事实都必须带有行内
[Source: ...]引用,并注明日期和来源。 - 每次提及实体时,都要从该实体的页面建立一条指向提及它的页面的反向链接(铁律)。
- 通过
gbrain files upload-raw保留原始来源以便溯源,并自动按大小分流。 - 状态(State)章节应以当前的最佳理解重写,绝不追加。
- 用户明确选择开启自动捕获之后(参见
skills/signal-detector/SKILL.md),每条有实质内容的入站消息都会触发实体检测,值得关注的实体将获得新页面或更新。未开启该选项时,仅捕获用户要求保存的内容。 - 创建任何新实体页面之前需通过显著性门槛:已有页面应直接更新;只有对于值得关注的实体,并且只有在网络搜索或现有大脑上下文提供了有实质意义的内容时,才创建新页面,不创建占位页。非显著实体的提及只作为所在页面的行内引用保留。
约定: 有关铁律反向链接的内容,参见
skills/conventions/quality.md。
每次提及已有大脑页面的人物或公司,都必须创建一条从该实体页面指向提及它的页面的反向链接。未建立链接的提及会破坏大脑的完整性。格式参见 skills/_brain-filing-rules.md。
引用要求(强制)
写入大脑页面的每一条事实都必须带有行内 [Source: ...] 引用。
- 用户陈述:
[Source: User, {context}, YYYY-MM-DD] - 会议数据:
[Source: Meeting "{title}", YYYY-MM-DD] - 邮件/消息:
[Source: email from {name} re: {subject}, YYYY-MM-DD] - 网络内容:
[Source: {publication}, {URL}, YYYY-MM-DD] - 社交媒体:
[Source: X/@handle, YYYY-MM-DD](URL)(需包含链接) - 综合整理:
[Source: compiled from {sources}]
阶段
路由说明: 本技能是一个路由器。如需专门的摄入流程,请参见:idea-ingest、media-ingest、meeting-ingestion。
- 解析来源。 从输入中提取人物、公司、日期和事件。
- 针对每个提及的实体:
- 从 gbrain 读取该实体的页面,检查其是否存在
- 如果存在:更新 compiled_truth(用新信息重写 State 章节,不要追加)
- 如果是新实体:先通过显著性门槛检查,然后以合适的类型和 slug 将页面存入 gbrain
- 追加到时间线。 为每个事件在 gbrain 中添加时间线条目,包含日期、摘要和来源引用。
- 创建交叉引用链接。 对于每一对一同被提及的实体,在 gbrain 中使用合适的关系类型将它们关联起来。
- 为所有实体建立反向链接。 更新每个被提及实体的页面,添加一条指向本页面的反向链接(铁律)。
- 合并时间线。 同一事件会出现在所有被提及实体的时间线上。如果 Alice 在 Acme Corp 见到了 Bob,该事件应同时记入 Alice 的页面、Bob 的页面和 Acme Corp 的页面。
每条消息的实体检测(开启选项后)
自动捕获默认关闭。一旦用户针对该大脑明确选择开启自动捕获(即 skills/signal-detector/SKILL.md 在写入前检查的已存储选项),生产环境中的 Agent 会对每条有实质内容的入站消息进行实体提及检测。这一信号检测循环使大脑能够随时间不断积累。未开启该选项时,仅写入用户要求保存的内容。
Protocol
- 扫描消息,查找实体提及:人物、公司、概念、原创思考。在用户已记录同意的前提下,对每条实质性消息都要触发(跳过纯操作性消息,并遵循针对单条消息的更窄指令)。
- 对每个检测到的实体:
gbrain search "name"-- 页面是否已存在?- 若存在: 使用
gbrain get <slug>加载上下文。利用编译后的真相来指导你的回应。若消息包含新信息,则更新页面。 - 若不存在: 评估显著性(参见
skills/_brain-filing-rules.md)。若实体值得追踪,则使用gbrain put <type/slug>创建新页面,并填入你已知的内容。
- 创建或更新页面之后: 同步到 gbrain:
gbrain sync --no-pull --no-embed - 不要阻塞对话。 实体检测与补充应与回应同时进行,而非先于回应。用户不应为了获得答案而等待大脑写入完成。
什么算作显著
- 用户交互或讨论的人物(而非随意提及)
- 与用户工作或兴趣相关的公司
- 用户提及或创造的概念或框架
- 用户自己的原创思考(想法、论点、观察)——价值最高
- 完整的显著性门槛参见
skills/_brain-filing-rules.md
从用户自身思考中捕获什么
原创思考是最有价值的信号。请记录准确措辞——用户的语言本身就是洞见。不要转述。
- 新颖的观察或论点
- 框架、心智模型、启发式方法
- 他人忽略的观点之间的联系
- 附带理由的反向立场
- 对外部刺激的强烈反应(触发原因及原因分析)
媒体工作流
用户接触到的内容应当被记录到大脑中。按主要主题归档,而非按格式归档(参见 skills/_brain-filing-rules.md)。
文章与网页内容
输入: 用户分享的 URL,或对话中提及的文章。
流程:
- 获取内容(
web_fetch或同类工具) - 提取:标题、作者、发布机构、日期、全文
- 总结:执行摘要 + 主要论点(而非复述)
- 提取实体:人物、公司、提及的概念
- 保存原始来源以便追溯(参见下方“原始来源保存”)
- 为用户做分析:不要只是总结。结合你对用户的了解,指出什么有趣,标注关联、矛盾与内容机会。
写入位置: 根据归档规则写入相应目录(关于人物 -> people/,关于公司 -> companies/,可复用框架 -> concepts/,原始数据 -> sources/)
视频与播客
输入: URL(YouTube、播客等)或本地音频/视频文件。
流程:
- 获取转录文本——如可能,进行说话人区分(如 Diarize.io 等服务可提供带说话人标签的词级时间戳)
- 保存原始转录文本(同时保存 JSON 和便于阅读的 TXT)
- 分析:执行摘要、关键观点、带说话人归属的关键引语、值得注意的故事/轶事、提及的人物和公司
- 提取并交叉引用所有提及的实体
- 硬性规则: 每个视频/播客的大脑页面都必须链接到原始的说话人区分转录文本。没有转录链接的页面视为不完整。
写入位置: media/videos/ 或 media/podcasts/,并回链至所有实体。
质量标准:
- 引人注目的标题(而非“本视频讨论了……”)
- 能让人想观看或收听的执行摘要
- “关键观点”应为真正的洞见,而非主题标签
- 逐字引语需标注真实说话人姓名(而非“speaker_0”)
- 所有实体均已提取,附带上下文并回链
PDF 与文档
输入: 文件路径或 URL。
流程:
- 提取文本(若为扫描件或图片型 PDF,则进行 OCR)
- 保存原始来源以便追溯
- 总结:执行摘要 + 关键章节 + 值得注意的数据
- 提取实体
- 从实体页面进行交叉引用
写入位置: 按归档规则(按主要主题归档,而非按格式归档)。
截图与图片
输入: 图片文件。
处理流程:
- 分析内容(文字较多的图片用 OCR,照片则生成描述)
- 若为推文截图:提取文本、作者、日期,转交社交媒体工作流
- 若为文章截图:提取文本,转交文章工作流
- 若为数据或图表:提取数据点,描述发现
写入位置: 视内容而定,转交上述相应工作流。
会议记录
输入: 会议录制服务生成的转录稿,或手动笔记。
处理流程:
- 获取完整转录稿(以此为事实依据,AI 摘要的可信度为中低)
- 保存原始转录稿以备溯源
- 在分隔线上方撰写会议页面(包含你的分析),分隔线下方放置原始转录稿
- 实体传播(强制): 对每位参会人和所讨论的每家公司:
- 若出现新信息,更新其 brain 页面的状态(State)部分
- 在其时间线(Timeline)中追加条目,并链接到会议页面
- 若人员或公司较为重要但尚无页面,则创建页面
- 只有在所有实体页面都更新完毕后,会议才算完整录入
写入位置: meetings/YYYY-MM-DD-short-description.md
优质会议页面的标准:
- 揭示真正的核心问题,而非罗列要点
- 关联已有的 brain 页面(人员、公司、交易)
- 标明发生了哪些变化(状态、决策、新信息)
- 指出存在的张力或未说出口的内容
- 捕捉真实的互动动态,而非表演式的总结
社交媒体内容
输入: 推文、串文或社交媒体帖子。
处理流程:
- 获取完整内容(串文、引用推文、上下文)
- 若含图片:通过视觉模型进行 OCR,提取完整文本
- 总结:在说什么、为何重要、涉及哪些人或实体
- 提取实体并更新 brain 页面
- 附上原帖的直接链接(引用必备)
写入位置: media/x/ 用于每日汇总,若帖子主要涉及某人或某公司,则写入对应的实体目录。
原始素材保存
每条录入的内容都必须保留其原始素材以备溯源。
使用 gbrain files upload-raw 进行自动大小分流:
gbrain files upload-raw <file> --page <page-slug> --type <type>
- < 100 MB 的文本或 PDF:保存在 git 中(brain 仓库的
.raw/旁路目录) - >= 100 MB 或媒体文件(视频、音频、图片):通过 TUS 断点续传上传至云存储,并在 brain 仓库中留下
.redirect.yaml指针文件
.redirect.yaml 指针文件格式:
target: supabase://brain-files/page-slug/filename.mp4
bucket: brain-files
storage_path: page-slug/filename.mp4
size: 524288000
size_human: 500 MB
hash: sha256:abc123...
mime: video/mp4
uploaded: 2026-04-11T...
type: transcript
访问已保存的文件:
gbrain files signed-url <storage-path>—— 生成有效期 1 小时的签名 URL,用于查看或分享gbrain files restore <dir>—— 从云存储下载回本地
使用 gbrain 中的 put_raw_data 存储原始 API 响应及元数据(JSON 格式,非二进制)。
批量处理前先测试
处理多个条目时(如批量视频录入、批量会议处理等):
- 先在 3-5 个条目上测试。 如有测试模式,请使用测试模式运行。
- 阅读实际输出。 质量是否达标?标题是否有吸引力(而非"本视频讨论了……")?实体是否已提取并回链?格式是否整洁?
- 修正方法或技能本身的问题,而非逐个打补丁。
- 确认无误后再批量执行,并进行限速,每处理 5-10 个条目提交一次。
先测试 3 个条目的边际成本几乎为零,而清理 100 个错误页面的代价却极其高昂。
质量规则
- compiled_truth 中的执行摘要必须更新,而不能只追加时间线
- 状态(State)部分是重写而非追加,只保留当前的最佳理解
- 时间线条目按时间倒序排列(最新的在前)
- 每位提及的人员或公司,若足够重要,都应建立页面(参见归档规则)
- 链接类型:knows、works_at、invested_in、founded、met_at、discussed
- 来源标注:每条时间线条目都须包含 [Source: ...] 引用
- 反向链接:每次提及实体都必须建立反向链接(铁律)
- 归档:按主要主题归档,而非按格式或来源归档(参见归档规则)
失败处理
对于任何 gbrain 错误 code、退出码、[AGENT] 块或提示块,请遵循 Agent 操作协议。本技能特有的规则如下:
- 本技能路由到的子技能失败时:报告是哪一个子技能以及失败原因,并依据该子技能自身的失败指引处理;不要悄悄改走通用的页面写入。
put_page返回write_pending(退出码 10)或revision_conflict时:轮询gbrain write-request <request_id>,或重新读取并合并;绝不要写入重复页面。gbrain files upload-raw因大小或路径被拒绝时:存储一个指针,并告知用户原始文件未上传。
反模式
- 追加到 State 小节。 每次更新时,State 都应以当前最佳理解重写。只追加的 State 小节会逐渐过时并自相矛盾。
- 导入时不建立反向链接。 未链接的提及意味着知识库是断裂的。每个被提及的实体,都必须有从其页面指向提及它的页面的反向链接。
- 跳过原始来源保存。 每个导入的条目都必须保存其原始来源。没有出处信息的知识库页面无法验证。
- 未经抽样测试就进行批量处理。 先在 3-5 个条目上测试。应通过修正处理方法来解决质量问题,而不是逐个打补丁。
- 改写用户的原始思路。 用户的原话本身就是洞见。对于观点、论点和框架,应逐字保留其措辞。
输出格式
INGESTED: [title]
==================
Page: [slug]
Type: [person / company / meeting / media / concept]
Source: [source description]
Entities detected: N
- [entity] -> [created / updated] ([slug])
Back-links created: N
Timeline entries: N
Raw source: [preserved at path / uploaded to cloud]
使用的工具
- 从 gbrain 读取页面(get_page)
- 在 gbrain 中存储/更新页面(put_page)
- 在 gbrain 中添加时间线条目(add_timeline_entry)
- 在 gbrain 中关联实体(add_link)
- 列出页面的标签(get_tags)
- 在 gbrain 中为页面添加标签(add_tag)
- 在 gbrain 中存储原始数据(put_raw_data)
- 检查 gbrain 中的反向链接(get_backlinks)