技术博客

什么是 OKF,知识库如何利用它

OKF v0.1 是一种面向人和 Agent 的知识包格式:用目录里的 Markdown 文件表示知识单元,用 YAML frontmatter 放 type、title、description、resource、tags、timestamp 等元数据,用 index.md 做渐进式目录。知识库可以把制度、流程、FAQ、话术和案例整理成 OKF 知识包,再把目录和摘要暴露给检索系统与 Agent,命中后读取完整正文,并通过变化发现持续维护。

发布时间

阅读信息

约 12 分钟

主题标签

OKF / Open Knowledge Format / AI Agent

企业知识库接入 AI 之后,模型读到哪份知识经常决定回答能否可靠。销售政策改了,客服话术没跟上;费用报销规则更新了,项目群里还在传旧版本;新人入职时,能搜到十篇文档,却不知道该按哪一篇执行。

Google Cloud 在 2026 年 6 月 12 日发布的 Open Knowledge Format v0.1,处理的是知识进入检索系统和 Agent 之前的形态。OKF 位于原始文档和知识库索引之间,把制度、流程、FAQ、话术、案例这些材料整理成一组可交换的知识文件。知识库可以继续负责搜索、权限、问答和门户体验,OKF 负责把知识整理成稳定、可读、可迁移的包。

OKF 在知识库链路中的位置

OKF 是一种知识包格式

OKF 的核心对象叫 Knowledge Bundle,可以理解成一个知识包。一个知识包就是一棵目录树,里面主要放 Markdown 文件。

普通 .md 文件是一个知识单元,规范里叫 concept document。它可以表示一条制度、一段流程、一个 FAQ、一份销售话术、一次案例复盘,也可以表示数据表、指标、接口、运行手册这类更技术的对象。

每个知识单元由两部分组成:顶部的 YAML frontmatter 放元数据,下面的 Markdown 正文放内容。index.md 用作目录,让人和 Agent 先看到这个目录下有哪些知识。log.md 记录变化。普通 Markdown 链接把相关知识串起来,# Citations 放外部来源或内部依据。

官方规范把 OKF 设计得很轻。知识单元强制字段只有 type,表示这份知识的类型。titledescriptionresourcetagstimestamp 是推荐字段。生产者可以加自己的字段,消费者也要容忍未知字段、缺失目录和暂时断掉的链接。

放到知识库里看,这个取舍很实用。企业制度、客服经验、销售口径和项目交接本来就很难放进同一套复杂分类。OKF 先要求知识可识别、可链接、可遍历,后面的分类和治理规则留给企业自己扩展。

OKF 知识包结构

知识单元是带元数据的 Markdown

一个企业知识库里的 OKF 文件可以这样写:

---
type: Policy
title: 差旅报销规则
description: 员工出差时交通、住宿、餐补和审批的报销边界。
resource: https://wiki.example.com/hr/travel-expense
tags: [HR, finance, expense]
owner: 人力行政
status: current
timestamp: 2026-06-16T10:00:00Z
---

# 适用范围

适用于正式员工的国内出差报销。

# 关键规则

- 高铁默认二等座。
- 酒店标准按城市等级执行。
- 超标准费用需要部门负责人审批。

# 关联流程

超标准住宿审批见 [费用审批流程](/processes/expense-approval.md)。

# Citations

[1] [人力行政部差旅制度](https://wiki.example.com/hr/travel-expense)

这份文件做了三件事。type 告诉知识库这是一条制度,titledescription 让检索系统和 Agent 能先看摘要,resource# Citations 指回正式来源。ownerstatus 这类字段属于企业自己的扩展,用来支持负责人确认、过期标记和治理流程。

正文保持 Markdown,就能被人直接审阅,也能被版本管理系统做 diff。知识库可以把正文切块做索引,也可以直接把整份文件作为可审查的知识单元保存。

index.md 是知识库入口

知识库用 OKF 时,index.md 很关键。它让人和 Agent 在打开具体正文之前,先看到目录、主题和入口。

一个最小的企业知识包可以这样组织:

knowledge/
  index.md
  policies/
    index.md
    travel-expense.md
    customer-discount.md
  processes/
    index.md
    expense-approval.md
    customer-escalation.md
  playbooks/
    index.md
    enterprise-sales.md
    new-employee-onboarding.md
  cases/
    key-account-renewal.md
  log.md

根目录 index.md 可以这样写:

# 企业知识目录

## 制度口径

* [差旅报销规则](policies/travel-expense.md) - 交通、住宿、餐补和超标准审批规则。
* [客户折扣规则](policies/customer-discount.md) - 不同客户级别的折扣边界和审批要求。

## 业务流程

* [费用审批流程](processes/expense-approval.md) - 从提交申请到财务打款的处理步骤。
* [客服升级流程](processes/customer-escalation.md) - 普通问题、重点客户问题和投诉问题的升级路径。

## 工作手册

* [企业客户销售手册](playbooks/enterprise-sales.md) - 重点客户跟进、报价、合同和交付交接的常用口径。
* [新员工入职手册](playbooks/new-employee-onboarding.md) - 入职前 30 天需要完成的账号、培训和流程事项。

## 案例复盘

* [重点客户续约复盘](cases/key-account-renewal.md) - 一次续约项目里的决策记录、风险点和后续动作。

index.md 只列入口,细节放在具体文件里。子目录里的 index.md 也类似,比如 policies/index.md 只列制度,processes/index.md 只列流程。

知识库可以用这些目录生成导航页,也可以把它们作为 Agent 的第一层上下文。这样 Agent 先知道有哪些知识,再决定打开哪一份。

知识库先暴露目录和摘要

OKF 暴露给 Agent 的方式,可以参考 skills 的加载方式:Agent 一开始只看到 skill 的 namedescription,命中后再加载完整说明。知识库用 OKF 时,也可以先暴露两类轻量信息:index.md 里的目录说明,以及每个知识文件 frontmatter 里的 typetitledescriptiontagstimestamp

对 Agent 来说,第一层看到的可以是这样:

policies/customer-discount.md
type: Policy
title: 客户折扣规则
description: 不同客户级别的折扣边界和审批要求。
tags: sales, finance

processes/customer-escalation.md
type: Process
title: 客服升级流程
description: 普通问题、重点客户问题和投诉问题的升级路径。
tags: customer-service, escalation

当用户问“这个重点客户能不能给 15% 折扣”时,Agent 先从这些摘要里选中 policies/customer-discount.md,再打开正文。如果正文里链接到审批流程或历史续约案例,它再继续读取 processes/...cases/...

这套方式对知识库也有价值。检索系统可以先索引 frontmatter 和 index.md,把它们作为召回和预览层;命中以后再读取正文和引用来源。上下文按问题逐步加载,既省空间,也减少拿错资料的概率。

知识库利用 OKF 的流程

现有知识库如何转成 OKF

企业很少从一套干净知识库开始。历史文档可能散在网盘、企业 wiki、群文件、邮件附件、项目空间、CRM 备注和客服工单里。一开始就重写所有文档,成本太高,也很容易把旧口径误当成当前口径。

第一轮先找入口。每发现一份文档,先记录它的标题、来源位置、所属部门、负责人、更新时间、当前状态和一句话说明。状态可以先粗一点:current 表示当前有效,stale 表示疑似过期,duplicate 表示和别的文档重复,unknown 表示还没人确认。

这张清单本身就可以是第一版 OKF 索引:

# 存量知识盘点

## 待确认制度

* [2024 版差旅报销规则](raw/hr/travel-expense-2024.md) - 来源:网盘;状态:unknown;负责人:人力行政。
* [销售折扣审批口径](raw/sales/discount-approval.md) - 来源:销售群公告;状态:stale;负责人:销售运营。

## 可直接整理

* [客服投诉升级说明](raw/support/escalation.md) - 来源:客服知识库;状态:current;负责人:客服主管。
* [新员工入职流程](raw/hr/onboarding.md) - 来源:企业 wiki;状态:current;负责人:HRBP。

清单稳定后,再按使用频率和风险排序。先处理报销、折扣、客服升级、入职、项目交接这类最常被问、最容易答错的内容。每处理一类,就确认唯一事实源,把重复文档合并或标记废弃,再抽出 typetitledescriptiontagsownerstatustimestamp 这些字段。

没有成体系原始文档时,流程也类似。先建目录和几个核心类型,再为制度、流程、FAQ、话术各建一个文件。每个文件先写清三件事:它是什么,对应哪份正式来源,和哪些知识有关。正文用表格、步骤、适用范围、例外情况和引用依据来写,后面再补负责人、评审和废弃标记。

持续维护靠变化发现和低成本确认

知识库转成 OKF 以后,维护对象变成一组可审查的文件和元数据。系统可以定时从企业 wiki、网盘、CRM、客服工单和项目空间里发现变化,把变化整理成候选知识单元或候选差异,再用 ownerstatustimestamp 标出谁需要确认、当前是否有效、上次什么时候更新。

这条发现链路会消耗资源。系统要扫增量、去重、抽摘要、比对旧版本,还要判断变化是否值得进入知识包。日常发现可以交给小参数模型加规则来做:抽标题、摘要、负责人、时间和差异类型,小参数模型通常够用。复杂判断再交给负责人确认。

比如差旅制度变了,自动化流程可以更新 policies/travel-expense.md,把状态标成 needs_review,交给人力行政确认。销售折扣口径变了,只生成折扣边界和审批要求的差异,让销售运营看一眼。客服工单里反复出现同一类投诉,系统可以生成一条 FAQ 候选项,客服主管确认后再进入正式目录。

知识管理和文档治理是长期工程,后面会不断调类型、目录、确认流程和过期规则。没有银弹。OKF 提供一个约定俗成的文件格式,让知识库围绕同一组文件和元数据持续优化。

参考资料

OKFOpen Knowledge FormatAI Agent上下文工程知识库企业知识管理Markdown
上一篇 RAG 开发入门(三):文档预处理质量决定 RAG 能不能用 更多文章