Notarium文档
文档版本: latest

人与智能体共享同一内核

Notarium 的核心主张:同一个知识库对人与 AI 智能体一视同仁。人通过 Web 界面(REST)工作,智能体通过内置的 MCP 端点接入,两者在同一个可移植内核之上看到同一张笔记图谱。这不是外挂在旁边的「机器人模式」,而是设计之初就有的能力对等。

一个内核,多种传输

整套架构建立在一个原则之上:领域逻辑只存在于一个内核中,而各种传输只是为其适配访问方式。

flowchart LR
  human([人]) -->|REST · Web 编辑器| core
  agent([AI 智能体]) -->|MCP · POST /mcp| core
  core[Notarium 内核] --> files[(Markdown 文件)]

做决定的始终是内核,而不是传输层。因此,智能体创建的笔记与来自编辑器的编辑走的是完全相同的路径:写入同一个 .md 文件,在日志中纳入版本,受同样的访问权限约束,并获得一条溯源记录。

「对等」意味着什么

智能体的编辑与人的编辑在处理机制上无从区分:

  • 版本管理。 每次编辑都是日志中的一条修订,绑定到 notarium-id。参见版本历史
  • 权限作用域。 智能体的令牌所授予的权限不会超过主体的成员资格:只读令牌甚至看不到写入类工具。参见访问模型
  • 溯源。 每条修订都能看出编辑的来源:人(user:<name>)、某个具体智能体(pat:<name>:<id>),或外部文件编辑器。谁改了什么、怎么改的,始终一目了然。
溯源,而非匿名

智能体的编辑不会消融在共享的历史中。你随时可以打开一篇笔记,看到某一行正是某个智能体凭某个具体令牌所添加的——需要时还能将其回滚。

智能体如何工作

智能体通过单一端点 POST /mcp 访问知识库——这是一组精简的 21 个现成命令(创建笔记、召回上下文、搜索、写入记忆),而非面向存储的底层操作。这些工具表达的是意图,而落位与笔记类别由系统强制决定:智能体按名称指定项目,但并不选择空间或笔记类别(一道防错的保护)。

典型的入口是一次 start_session 调用:智能体由此获得档案、其项目列表以及相关上下文。接入方式和完整工具集在智能体与 MCP 中有详述;第一个实操步骤是接入智能体

刻意设定的边界

共享同一内核并不意味着智能体无所不能:

  • 智能体没有不可逆删除。 覆盖可以(它通过日志可逆),但永久删除容器不行。
  • 没有跨空间操作。 智能体严格在其可达的空间内工作。
  • 这些工具没有通往外部世界的通道,且不受信任的内容绝不会掺入它们的描述——这就切断了「私密数据 × 不受信任输入 × 对外出口」这条链。
  • Notarium 刻意不做端到端加密(E2EE)产品:一台聪明的服务器需要看到内容,才能提供搜索、语义和智能体能力。隐私来自自托管和对自己文件的掌控,而非端到端加密。

关于如何守护智能体边界,详见安全与可见性