切换主题

Hyper 公司知识库:AI Agent 记忆的工程化设计

Easton editorial illustration: company-brain vault with freshness clock, permission lock, decision chain, retrieval, and correction gauges

"YC 页面将 Hyper 定位为 The Self-Driving Company Brain,并描述它会从 Notion docs、Claude Code questions、emails、LinkedIn DMs、Cursor sessions 等团队工具中学习。"

"Hyper 创始人在 Launch HN 中公开描述了 episodes/facts 双层记忆、subject-predicate-object facts、时间戳、typed edges、混合检索、access-control tags、hooks 与 MCP。"

"MCP 官方文档将 MCP 描述为连接 AI 应用与外部系统的开放标准,适合暴露数据源、工具和工作流。"

"OpenAI 团队连接器说明强调连接器会尊重既有内容权限,并提供企业级 RBAC、SSO、IP allowlisting 等控制。"

"OpenAI memory 研究更新强调记忆需要延续上下文、遵守偏好,并随时间保持新鲜,同时面对 stale/correctness/scalability 挑战。"

你用 Claude Code 改代码,它不知道三个月前为什么删了那个分支。你问 ChatGPT 项目决策,它得重新读完所有文档才能回答。每次调用都要重新解释项目历史,这是 Agent 和普通 RAG 的一个关键差异:后者擅长检索静态文档,但公司知识有三个维度它原生不处理——事实有效期、权限范围、决策推理链。

Hacker News 上 Hyper 说要做”公司大脑”,听起来像营销词,但创始人在发布帖里透露的架构细节有技术价值:双层记忆(episodes + facts)、typed edges、时间戳模型、hooks 与 MCP 两条注入路径。下面的分析不写产品评测,而是用这些公开信息拆解”公司记忆”的设计问题,给你五层设计清单、7 天试点路径和选型风险判断表。

普通 RAG 接不住的三类上下文

RAG 检索文档、返回片段、让模型回答。这套流程对静态知识库有效,但公司知识有三个维度 RAG 原生不处理。

维度RAG 默认行为实际问题Company brain 需要的机制
事实有效期返回最新匹配片段旧文档≠失效事实,三个月前的决策可能已被推翻introduced_at / invalidated_at 时间戳,标记事实生命周期
权限范围检索不区分用户身份全员可见≠项目组可见,Agent 可能读到不该读的内容access-control tags 过滤,按团队/角色裁剪结果
决策原因返回结论片段知道结果≠知道推理链,无法追溯”为什么这样决定”Episodes 保留原始对话,事实层注明 derived from 来源

传统 RAG 按 recency 或 relevance 排序,无法判断这条信息是否已被 newer fact supersedes(替代)。Hyper 给每个 fact 配两个时间戳:introduced_at 记录首次出现,invalidated_at 记录失效时间。检索时过滤已失效事实,不依赖文档更新日期。

权限范围在多人组织中更敏感。Agent 调用时可能代表某个团队成员,它不应该读到该项目组之外的内容。Hyper 使用 access-control tags 标记每条事实的可见范围,检索层在返回结果前会根据调用者身份过滤。这点比”企业搜索”更精细——后者通常只做文档级权限,而 company brain 需要事实级裁剪。

决策原因是普通 RAG 最难接住的。你问”为什么选 PostgreSQL 而不是 MongoDB”,RAG 可能返回架构文档里的结论段落,但那段文字不会包含三个月前的技术讨论、权衡过程和最终决策逻辑。Hyper 的 episodes 层保留原始对话节点,facts 层用 derived from typed edge 指向来源 episode,这样检索时能沿关系找到推理链,而不只是结果。

Hyper 双层记忆架构拆解

Hyper 用双层结构组织记忆:Episodes(原始存储)和 Facts(结构化层),之上用知识图谱连接。

Episodes 层:保留原始对话节点,不丢弃上下文,作为事实的溯源锚点。Agent 需要追溯决策过程时,能从 fact 沿 derived from edge 找回原始对话片段,不只读摘要后的结论。

Facts 层:采用 subject-predicate-object 三元组结构化。每条 fact 包含主体、关系、对象三个字段,加上时间戳和 typed edges。创始人披露的三类 typed edges:

Typed edge含义使用场景
derived from事实来自哪条 episode追溯决策推理链
supersedes新事实替代旧事实标记失效事实,过滤旧结论
tension事实之间存在冲突或矛盾提醒人工纠错,避免模型采信矛盾信息

时间戳模型:每条 fact 有两条时间线。T 线记录事件发生时间(“决策是在3月做的”),T’ 线记录系统摄入时间(“这条 fact 在6月写入知识库”)。两者分离是因为公司知识经常有延迟输入——会议结论可能一周后才录入,系统需要区分”事实发生时间”和”我们知道这条事实的时间”。

架构核心要点

  • Episodes 不做摘要,保留原始对话节点(HN 创始人称 + Zep 论文支撑)
  • Facts 结构化为三元组,每条带时间戳和 typed edges(HN 披露)
  • introduced_at / invalidated_at 标记事实生命周期,检索层过滤已失效内容
  • 知识图谱用 typed edges 解决”关系”而非只存”事实”,这是与普通向量库的关键差异

这套架构的目标不是存储更多数据,而是让 Agent 能沿关系找到上下文。普通向量库返回相似片段,但不知道片段之间的逻辑依赖、替代关系和冲突点。typed edges + 时间戳的组合让检索结果能附带”这条事实从哪里来、是否仍有效、有没有被替代”的元信息。

检索与注入的两条路径

知识写入后,Agent 有两条使用路径:检索(主动查询)和注入(被动接收)。

检索机制(HN 创始人披露):

  • Postgres 全文检索:关键词匹配,适合精确查询(如”某个 API endpoint 的定义”)
  • Embedding 语义检索:向量相似度搜索,适合模糊查询(如”上次讨论性能优化是什么结论”)
  • Reciprocal Rank Fusion(RRF):融合全文和语义两路召回结果,按综合排序返回
  • Access-control tags 过滤:根据调用者身份裁剪结果,保证权限边界

这套组合与纯向量库不同——后者只做语义召回,可能在精确关键词查询时漏掉结果。Hyper 用 RRF 融合两种召回方式,在排序阶段综合考虑关键词命中和语义相似度。

注入路径对比:hooks 与 MCP 是两条不同的数据通道。

维度HooksMCP
机制实时注入 Agent 上下文(推送)标准化工具调用协议(拉取)
透明度HN 评论质疑安装提示不够明显OpenAI SDK 要求显式声明 MCP server
适用场景上下文自动注入(如当前项目文档)Agent 主动调用工具(如查询数据库)
技术依赖需要客户端侧安装拦截层需 Agent 框架支持 MCP 协议(OpenAI/Anthropic)
治理风险用户可能不知道哪些数据被注入管理员可控制 MCP server 权限范围

两条路径可以并存。Hyper 创始人称 hooks 用于实时注入 Agent 上下文(如你打开 Claude Code 时自动加载项目文档),MCP 用于 Agent 主动调用外部工具(如查询 Notion 或 Gmail)。但 HN 评论中有人质疑 hooks 的透明度——用户是否清楚知道哪些数据被自动注入到 Agent 对话里。

选型时需要检查两点:hooks 是否有明确的安装提示,MCP server 是否由管理员控制权限范围。OpenAI 的 developer mode 文档提到,MCP apps 需要安全验证,Enterprise 计划可用 RBAC 控制访问。这意味着 MCP 的治理框架相对成熟,而 hooks 的透明度依赖产品设计。

Company brain 五层设计清单

自建或选型时,检查这五层是否都有方案。每层的缺失都会在实际使用中暴露问题。

第一层:数据源接入

  • 工具选择:Notion、Gmail、Slack、GitHub、Linear、Jira(按团队工作流选择)
  • 接入方式:webhooks(实时)或 polling(定时轮询),webhooks 响应快但需目标系统支持
  • 数据清洗:过滤噪音(如 Slack 的闲聊频道)、标记敏感信息、统一编码格式
  • 初始导入:全量历史 vs. 仅新数据,历史数据可能有大量过时事实

第二层:事实层 Schema

  • Fact 结构:subject-predicate-object 三元组,每条事实用统一格式存储
  • 时间戳:introduced_at(首次出现)+ invalidated_at(失效时间),缺一会导致无法判断事实生命周期
  • Typed edges:至少包含 derived from(溯源)、supersedes(替代)、tension(冲突)三类关系
  • 冲突处理策略:自动标记 tension 供人工审核,或按时间戳取 newer fact

第三层:检索层

  • 召回组合:全文(关键词)+ 语义(embedding)+ RRF 融合,纯语义召回可能在精确查询时漏结果
  • 权限过滤:事实级 access-control tags,根据调用者身份裁剪结果
  • 排序策略:综合 recency、relevance 和 fact validity,过滤已失效事实
  • 延迟目标:检索响应 < 500ms(实测),否则 Agent 调用体验会明显下降

第四层:注入层

  • 路径选择:hooks(实时注入上下文)vs MCP(Agent 主动调用),两条路径可并存
  • Agent 兼容性:Claude Code、Cursor、ChatGPT、Codex 是否支持所选路径
  • 治理框架:hooks 是否有透明安装提示,MCP 是否由管理员控制 server 权限
  • 数据量控制:注入上下文长度上限(避免 token 超限),优先注入高 relevance 事实

第五层:治理层

  • 权限继承:数据源权限如何映射到事实级可见范围,Slack 私有频道的事实不应被全员读
  • 审计日志:谁在何时注入了哪条事实、Agent 在何时读取了哪些事实,出问题时可追溯
  • 人工纠错机制:标记错误事实、设计 invalidated 流程、支持手动添加澄清事实
  • 数据导出:是否能导出完整事实库(JSON/CSV),供应商锁定风险评估

这套清单的核心逻辑:每层都解决一个具体问题。数据源层决定”从哪里来”,事实层决定”存什么结构”,检索层决定”怎么找”,注入层决定”怎么给”,治理层决定”谁来管、如何纠错”。缺任何一层,公司知识库在实际使用中都会卡住。

7 天试点路径

小团队第一周不要接全量 Slack、邮箱或 CRM。权限复杂、噪音大,容易在试点阶段就暴露治理问题。先从低风险数据源开始,验证召回率和纠错机制后再扩展。

Day 1-2:选低风险数据源

  • Notion 公开文档(产品路线图、技术规范)
  • GitHub README 和 Wiki(项目架构、API 文档)
  • 排除:Slack 私有频道、邮箱历史邮件、CRM 客户数据(权限敏感,噪音大)

Day 3:设计 Fact Schema

  • 3-5 字段:subject、predicate、object、introduced_at、source
  • 不追求完美:试点阶段重点是验证检索路径,Schema 后续可迭代
  • 约定命名:subject 用统一格式(如”ProjectX”),predicate 用动词(如”uses”)

Day 4-5:检索与注入测试

  • 检索测试:准备 5-10 个查询,检查召回率(能否找到关键事实)
  • 注入测试:选一个 Agent(Claude Code 或 Cursor),验证能否读到注入的上下文
  • 记录延迟:检索响应是否 < 500ms,注入后 Agent 是否能正确引用事实

Day 6-7:回放与人工纠错

  • 回放历史查询:检查检索结果中是否有错误或过时事实
  • 记录错误:列出需要 invalidated 的 fact,设计标记流程
  • 设计纠错机制:人工添加澄清事实 + 标记错误事实的 invalidated_at 时间戳

首周禁止项

  • 不接 Slack、邮箱、CRM(权限复杂,噪音大)
  • 不追求完美 Schema(先验证检索路径,Schema 可迭代)
  • 不接生产数据源(用测试数据或公开文档验证流程)

试点结束时,你应该有:一个可工作的检索+注入流程、5-10 条验证过的事实、一套纠错标记流程。这三点是扩展数据源的前提——先验证”能找到、能读、能纠错”,再考虑接入更多工具。

选型风险判断表

决策时检查七个风险维度,每个维度标注信息来源和置信度。

风险维度公开信息来源置信度选型时需确认
数据导出创始人称支持导出HN 评论medium导出格式(JSON/CSV)、完整性、迁移成本
隐私承诺FAQ 称”不训练用户数据、AES-256 加密”Hyper FAQmedium是否有 SOC 2/ISO 27001 时间表、数据存储位置
供应商锁定无自托管选项HN 评论high导出格式是否完整、备选方案是否可替代
Hooks 透明度评论质疑安装提示不够明显HN 评论medium用户是否清楚知道哪些数据被注入
权限继承access-control tagsHN 创始人披露high数据源权限如何映射到事实级、继承规则未公开
知识图谱上下文typed edges 保留关系HN 创始人披露highEpisode 是否会摘要导致丢意图(HN 评论担心)
冲突处理人工纠错机制未公开HN 评论low是否有标记错误事实的流程、是否支持手动澄清

七个维度里,数据导出供应商锁定是决策时最需要检查的点。HN 评论中创始人称支持导出,但没有官方承诺全文。这意味着选型时需要确认:导出格式是否是结构化的(JSON/CSV),能否导出完整事实库(包括 typed edges 和时间戳),迁移到其他系统时是否需要额外清洗。

Hooks 透明度是另一个容易被忽略的风险。hooks 在客户端侧注入上下文,用户可能不清楚哪些数据被自动加载到 Agent 对话里。选型时需要确认:产品是否有明确的安装提示,用户能否查看和控制注入的数据范围。

权限继承的技术方案(access-control tags)有披露,但继承规则未公开。实际问题是:Slack 私有频道的事实如何映射到事实级可见范围,CRM 客户数据如何按团队裁剪。选型或自建时需要设计这套映射逻辑。

下一步与延伸阅读

想继续深入 Agent 与知识库的结合,可以看这些相关内容:

结论

Hyper 仍是早期产品,公开架构细节(双层记忆、typed edges、时间戳模型、hooks 与 MCP 双路径)是学习”公司记忆”设计的好案例。小团队选型或自建时,重点检查数据导出、hooks 透明度、冲突处理这三个风险点。

试点阶段先做窄工作流:从 Notion 公开文档或 GitHub README 开始,验证检索召回率和纠错机制,再考虑接入 Slack 或邮箱。不要一开始就追求完美 Schema——事实生命周期、权限继承、人工纠错流程都需要在实测中迭代。

如果你已经在用 Claude Code 或 Cursor,可以先试试用 hooks 注入项目文档,观察 Agent 是否能正确引用事实。下一步是把记忆和执行连成闭环:Agent 监控与自恢复机制,让失败能被自动发现和重试。

用 7 天验证 AI Agent 公司知识库

从低风险数据源开始,验证 facts 抽取、检索注入和人工纠错是否真的能减少 Agent 重复解释和旧事实误用。

⏱️ 预计耗时: 7 days

  1. 1

    步骤 1: 第 1-2 天:选择低风险数据源

    先用 Notion 公开文档、产品路线图、技术规范、GitHub README 和 Wiki,暂时排除 Slack 私有频道、历史邮件和 CRM 客户数据。
  2. 2

    步骤 2: 第 3 天:设计 Fact Schema

    用 subject、predicate、object、introduced_at、source 这类最小字段验证检索路径,不要一开始追求完美 Schema。
  3. 3

    步骤 3: 第 4-5 天:测试检索与注入

    准备 5-10 个查询,检查召回率、注入延迟和 Agent 是否能正确引用事实。
  4. 4

    步骤 4: 第 6-7 天:回放和人工纠错

    回放历史查询,标记错误或过时事实,设计 invalidated_at 和人工澄清事实流程。

常见问题

数据能否导出?
创始人在 HN 评论称支持导出,但无官方承诺全文。选型时需确认导出格式(JSON/CSV)和完整性(是否包含 typed edges 和时间戳)。自建时优先设计导出接口,避免后期迁移困难。
知识图谱会不会丢上下文?
typed edges 保留关系(derived from/supersedes/tension),但 HN 评论担心 Episode 摘要会丢意图。建议试点时检查召回率,验证是否能沿关系找到原始对话片段。
多个来源冲突时怎么办?
人工纠错机制未公开。自建时可设计 invalidated_at 时间戳加人工标记流程,用 tension edge 标记矛盾事实供审核。
hooks 是否透明?
HN 评论质疑 hooks 安装提示不够明显。选型时需确认用户是否知道哪些数据被注入,自建时优先设计显式控制面板。
供应商锁定风险?
公开评论中提到无自托管选项。需评估导出格式是否完整、迁移成本、是否有备选方案可替代关键功能(事实存储、typed edges、权限过滤)。

14 分钟阅读 · 发布于: 2026年6月4日 · 修改于: 2026年7月14日

当前属于系列阅读第 9 / 9 篇

AI 开发实战

如果你是从搜索进入这篇文章,建议顺手补上上一篇或继续下一篇,这样更容易把同一主题读完整。

查看系列总览

相关文章

BetterLink

想持续收到这个主题的更新?

你可以直接关注作者更新、订阅 RSS,或者继续沿着系列入口往下读,避免下次又回到搜索结果重新找。

关注公众号

评论

使用 GitHub 账号登录后即可评论

Easton BlogEaston Blog