OKF导出与导入
以可移植的Markdown包迁移Brain:哪些内容可完整往返,哪些会被报告。
OKF(Open Knowledge Format,0.2版)是一种基于纯文件的知识格式:由Markdown文件组成的目录树,每个文件带有一个简短的YAML头。Hive可将任意Brain导出为OKF .zip包,也可将包导入为新Brain。由于包本身就是Markdown,因此可以用任何编辑器阅读、在git中比较差异,也能被其他支持OKF的工具识别。
自助导出与导入
- 导出仅限 Brain 所有者(含共同所有者)。它包含所有者可读取的每个神经元,包括使用高级安全类型的神经元。任何人都不能导出资料库中的 Brain;请改为导出源 Brain(参见市场 & 资料库)。
- 导入会创建一个归您所有的新 Brain。它与其他 Brain 一样计入许可证,并适用 50 MiB 的上传限制。Hive 上同时最多运行两个导入,每位用户同时只能有一个导入进行;如果提示导入繁忙,请稍后重试。
导出Brain
以管理员身份,在管理 → Brain 中点击某个 Brain 所在行的 zip 图标(导出 OKF (.zip)),或打开该 Brain 并点击导出 OKF。下载的文件名为 <brain-name>-okf.zip。
该包包含一个顶层文件夹,其中包括:
| 路径 | 包含的内容 |
|---|---|
index.md | 目录页。其唯一的头部键是okf_version: "0.2"。 |
log.md | 带日期的日志:先记录导出本身,再按创建日期逐行记录。 |
<type>/index.md | 每个神经元类型一个文件夹—即使该类型没有神经元—其中列出该类型的神经元。 |
<type>/<neuron>.md | 每个神经元一个文件:包含头部、与存储完全一致的内容,以及列出其传出突触的Related列表。 |
_aiqbee/brain.md | Brain清单:名称、描述、MCP编辑标志、神经元类型和元数据字段注册表。 |
文件和文件夹名称是类型名和神经元名的小写、纯ASCII版本(重名时添加-2、-3…)。它们仅用于展示:重新导入时依据的是文件内的ID,而非文件名。
导入包
您也可以一步从包创建全新的Brain:在同一页面点击新建Brain,选择所有者、为Brain命名,并可附加.json导出文件或OKF .zip文件。系统会先检查许可证的Brain额度,如需购买更多许可证会提示您。
以管理员身份,在管理 → Brain 中点击导入 OKF 压缩包并填写对话框(为自己导入的用户使用 Brain → 新建 Brain,无需所有者字段):
- OKF包(.zip)—要导入的文件。
- Brain名称(可选)—默认使用包清单中的名称,若无则使用zip文件名。如果名称已被占用,Hive会自动使其唯一。
- 所有者(必填)—将拥有新Brain的活跃用户。管理员会话不是用户,因此需要您选择一位用户。
导入始终会新建一个Brain,绝不会合并到或更新现有Brain。导入是全有或全无的:一旦发现致命问题,不会写入任何内容,并只显示一条说明原因的消息。向量嵌入不包含在包中;与JSON导入一样,导入完成后Hive会立即开始生成向量嵌入,因此对于较大的包,新Brain的语义搜索可能会短暂滞后。
来自其他工具的包
不含Aiqbee专有键的通用OKF包同样可以导入:
- 每个
.md文件对应一个神经元。其神经元类型取自type头部字段;若无,则取文件夹名称;再无,则为Concept。 - 神经元名称取自
title;若无,则取第一个#标题;再无,则使用文件名。允许标题重复。 - 文件之间的Markdown链接会成为突触;
* [Title](link) - description列表项中链接后的文本会成为突触描述。代码块内的链接、指向网站的链接以及无法解析的链接不会成为突触(无法解析的链接会作为失效链接报告)。 index.md和log.md会被忽略。
可往返转换的内容
导出Aiqbee Brain后再导入该包,以下内容会被完整重建:
- Brain名称(添加唯一性后缀之前的名称)、描述以及MCP编辑设置。
- 神经元类型—名称、描述、文件类型标记、空类型以及重名类型。
- 神经元—名称、逐字节一致的内容(包括空内容与无内容的区别)、内容日期、元数据和创建时间。
- 突触—方向、描述,以及重复链接或自链接。
- 元数据字段注册表。
以下内容有意不迁移:
- 访问控制—Brain、用户、用户组和服务账号的授权,神经元类型访问权限,高级安全和审计设置。用户和用户组隶属于单个Hive;新Brain将使用默认设置和所选的所有者。
- 行ID(会重新生成)、版本计数器和向量嵌入。
- 附件。Hive不存储文件二进制内容,因此只导出文本内容;导入包中的非Markdown文件(图片、HTML)会被跳过并列出。
导入报告与警告
导入成功后会显示结果页面,其中包含新Brain的链接,神经元类型、神经元、突触、元数据字段及被忽略文件的数量,以及分组显示的警告。警告不会阻止导入,只是说明做了哪些调整:
| 用户组 | 含义 |
|---|---|
| 已跳过的文件 | 未导入的文件:文本编码无效、YAML头部无法解析或过大,或头部不是键值块。 |
| 已应用的回退处理 | 某个值无效或缺失,已使用默认值—例如从文件夹推断类型、名称截断为255个字符、无法识别的日期。 |
| 失效链接 | 指向包内不存在文件的链接。显示前20个及总数。 |
| 未映射的frontmatter键 | 标准OKF键,例如tags、sources、status以及任何未知键。Hive目前无处存放这些键,因此会将其丢弃并计数。 |
| 已丢弃或调整的元数据 | 未通过所声明字段校验的元数据值。 |
| 已忽略的非.md文件 | 所有非Markdown条目及其声明的大小。这些条目不会被解压。 |
限额与被拒绝的包
这些检查在写入任何数据之前执行。不符合任一项的包将被直接拒绝:
- 上传文件最大50 MiB;zip条目最多25,000个,概念文件最多20,000个;每个
.md文件不超过8 MiB,Markdown总量不超过256 MiB。frontmatter每个文件不超过512 KiB,总计不超过32 MiB;每个包最多可定义500,000个突触。 - 超出包范围的路径(
../)、绝对路径、符号链接、加密条目、过长或层级过深的路径,以及名称仅大小写不同的两个条目。 - 非zip压缩包的文件。
- 包中没有可导入的概念。
导出同样遵循这些限制:过大、无法再次导入的Brain不会导出为OKF(系统会提示您,并引导您使用JSON导出),因此您下载的包始终可以重新导入。每个导入表单只能提交一次,因此刷新结果页面不会重复创建Brain。
不会将任何内容解压到磁盘,且YAML头部采用安全解析(不支持标签、锚点或别名),因此恶意包无法执行代码或写入文件。
导入同样计入许可证额度:系统会根据包的大小检查Brain数量上限和共享的神经元上限;许可证已过期(只读模式)时将拒绝导入。提示信息会注明触及的是哪项限制。请参阅许可证&版本。
元数据与许可证
声明元数据字段是付费功能(参见神经元元数据)。导入的结果取决于接收方Hive的许可证:
- 具备元数据授权时—会创建字段注册表,并根据注册表校验每个神经元的元数据。
- 不具备时—不会创建注册表,但神经元的元数据值仍会保存。在声明字段之前,这些值处于非活动状态(可见,但不能用作筛选条件),与许可证失效后的情况完全相同。报告中会附带相应警告。
与往常一样,元数据只是标注,不是访问控制。任何能打开该zip文件的人都能看到随包附带的元数据。