首页 / 文章 / 实用笔记:OKF远不止是Markdown——我对可移植性的理解

实用笔记:OKF远不止是Markdown——我对可移植性的理解

《实用笔记》操作指南:OKF远不止是Markdown——我对可移植性的理解,以及为采用该模式的团队提供的合同、校验机制和可直接插入的代码模块。

2326 词

本指南将逐步构建从原始材料到可运行系统的完整流程,适用于文章《OKF不仅仅是Markdown:我对AI智能体便携式知识层的思考》。重点在于可操作的步骤、明确的检查点,以及可直接放入代码仓库的代码,无需猜测其用途。 在概览阶段,应在修改代码之前明确输入参数、各步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行相应步骤,而无需推测隐藏状态。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及错误处理都是产品不可或缺的部分,而非后续需要补充的功能。

knowledge/
├── index.md
├── orders/
│   ├── index.md
│   └── order-lifecycle.md
├── payments/
│   ├── index.md
│   └── payment-failures.md
└── policies/
    └── refund-eligibility.md
---
type: Business Rule
title: Refund Eligibility
description: Rules for determining whether an order is eligible for a refund.
tags: [orders, refunds]
---
# Refund Eligibility
An order is eligible for a refund when...
See also [Order Lifecycle](../orders/order-lifecycle.md).

智能体功能强大,但仍然不了解你的产品运作方式

在编写脚本时,虽然代理功能强大,但首先要明确合同条款:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议使用小型、可测试的单元而非庞大的脚本。当某个步骤失败时,故障应指向单一的责任模块,而非复杂的流程链。 在成本较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次调用相同的大型语言模型。

Wiki
PDF
Product docs
Shared Drive
API documentation
Source code
JIRA Tickets
Slack threads
Google Drive
People's heads

OKF的重要之处并不在于 Markdown

在处理“阶段的重要部分”时,首先写下合同条款:所需的输入、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,杜绝无声的半完成状态。 在成本较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次调用相同的大型语言模型。

包、概念以及你最感兴趣的部分:index.md

在研究 Bundles 概念及执行阶段时,首先需明确相关契约:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 在功能结果旁记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 在耗时较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次收取相同的 LLM 调用费用。 在研究 Bundles 概念及执行阶段时,首先需明确相关契约:所需输入、成功信号以及部分失败时的处理方式。这份清单能确保后续的代码修改保持一致性。 需同时记录正常流程与异常恢复流程。重试机制、人工审核环节以及死信处理都是产品功能的一部分,而非后续需要补充的内容。

store-knowledge/
├── index.md
├── orders/
│   ├── index.md
│   ├── order-lifecycle.md
│   └── cancellation.md
├── payments/
│   ├── index.md
│   └── payment-status.md
└── policies/
    ├── index.md
    └── refund-eligibility.md
Thousands of documents
          ↓
Load everything into context
index.md
Orders
Payments
Promotions
Refund Policies
Customer Support
policies/index.md
Refund Eligibility
Partial Refunds
Manual Review
policies/refund-eligibility.md
[Order Lifecycle](../orders/order-lifecycle.md)
Bundle
  ↓
index.md
  ↓
policies/
  ↓
index.md
  ↓
refund-eligibility.md
  ↓
order-lifecycle.md

这不就是RAG吗?

“这不就是……”这种思路在被视为可度量的指标时效果最佳。在扩大范围之前,先收集一份优秀的文本样本、一个失败案例以及回滚说明。 相比庞大的脚本,应优先选择小型且可测试的单元。当某个步骤出错时,故障应指向单一责任模块,而非复杂的流程链。 将分块策略与检索策略分开。当质量指标发生变化时,修改其中一项不应迫使重新编写另一项。

Question
   ↓
Retrieve relevant knowledge
   ↓
Put knowledge into context
   ↓
Generate an answer
User Question
      ↓
Vector / Hybrid Search
      ↓
Find an OKF concept
      ↓
Read the concept
      ↓
Follow indexes or links if needed
      ↓
Build the final context
{
  "title": "...",
  "source": "...",
  "type": "...",
  "updated_at": "...",
  "owner": "..."
}

那Agent技能呢?

“智能体技能方面”这一阶段若被视为可度量的指标,则效果最佳。在扩大范围之前,先记录一个成功的案例、一个失败案例以及回滚说明。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,明确成功标准,绝不允许默默地仅完成部分工作。 保持图结构的状态简洁且类型明确。嵌套的数据块会掩盖哪个节点修改了哪个字段的信息,且在中断后会导致流程无法继续。

1. Identify the customer issue
2. Inspect the order status
3. Check the applicable refund policy
4. Determine whether escalation is required
5. Draft a response
customer-support-skill/
├── SKILL.md
└── references/
    └── commerce-knowledge/
        ├── index.md
        ├── orders/
        ├── payments/
        └── policies/

你认为最有趣的OKF用例实际上属于本地场景

将OKF用例阶段视为可度量的对象来处理时,其效果最佳。在扩大范围之前,需记录一份理想流程示例、一个故障案例以及回滚说明。 在功能结果旁同时记录执行时间以及令牌或查询成本。提前了解成本情况,可避免在从演示环境过渡到共享环境时出现意外费用。 保持图表状态简洁且类型明确。嵌套的数据块会掩盖哪个节点修改了哪个字段的信息,还会在中断后导致流程无法继续。 将OKF用例阶段视为可度量的对象来处理时,其效果最佳。在扩大范围之前,需记录一份理想流程示例、一个故障案例以及回滚说明。 需同时记录正常流程与恢复流程。重试机制、人工审核环节以及死信处理都是产品本身的组成部分,而非后续需要补充的内容。

storefront/
├── src/
├── tests/
├── AGENTS.md
└── knowledge/
    ├── index.md
    ├── checkout/
    ├── orders/
    ├── payments/
    ├── refunds/
    └── promotions/
read code
→ understand code
→ modify code
Coding Task
     ↓
Read code
     +
Read refund policy
     +
Read payment constraints
     +
Read order lifecycle
     ↓
Understand actual product behavior
     ↓
Modify code
Modify code
     ↓
Product behavior changed
     ↓
Update knowledge

本地知识与中心化知识无需相互竞争

在本地处理和集中处理阶段,修改代码之前需明确输入内容、该步骤的负责人以及结束标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 优先选择小型、可测试的单元,而非冗长的脚本。当某个步骤失败时,故障应指向单一责任点,而非复杂的流程链。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。编译时的逻辑连接并不等同于业务功能的完整性。

Company terminology
Shared authentication rules
Common API contracts
Billing definitions
Customer policies
Security guidelines
                   Agent
                  /     \
                 /       \
                ↓         ↓
          Local OKF    Central OKF
          project       shared
          knowledge     knowledge
OKF
= Knowledge Artifact
MCP
= Serving / Tool ProtocolSearch Index
= Retrieval Implementation

v0.2版本是OKF开始显得更为完善的阶段

v0.2版本中,在修改代码之前需要明确阶段、输入参数、步骤负责人以及退出标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 将这一阶段视为输入与经过验证的输出之间的契约。为相关成果命名,定义成功判定标准,杜绝默许的半完成状态。 对于涉及资金支出或修改生产数据的操作,必须经过人工审批。编译时的连接方式并不等同于业务上的完整性。

sources:
  ...
generated:
  by: ...
  at: ...verified:
  ...status: stablestale_after: 2026-12-31
Where did this come from?
Who generated it?Has anyone verified it?Is it still current?Is this a draft or a stable concept?

经过验证的计算是一种不同的知识形式。

由于“经验证的计算”是一个独立阶段,因此在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 应在功能结果旁记录执行时间以及令牌或查询成本。提前明确成本信息,可避免在流程从演示环境转向共享环境时出现意外费用。 对于那些会消耗资金或修改生产数据的操作,必须经过人工审批。编译时的配置并不等同于业务功能的完整性。 由于“经验证的计算”是一个独立阶段,因此在修改代码之前需明确输入参数、该步骤的负责人以及终止标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。 需同时记录正常流程和故障恢复流程。重试机制、人工审核环节以及错误处理措施都是产品不可或缺的组成部分,而非后续需要补充的内容。

>
Here is something we know.
Here is the approved way
to establish that something is true.

OKF究竟解决了什么问题?

在“解决了什么问题”这一阶段,首先需明确相关约定:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改保持一致性。 建议采用小型、可测试的单元而非庞大的脚本。当某个步骤失败时,故障应指向单一的责任模块,而非复杂的流程链。 在成本较高的步骤之后设置检查点。当操作员重新尝试后续节点时,恢复流程不应再次调用相同的LLM接口。

操作检查清单

将“操作检查清单”阶段视为可衡量的工作面,效果最佳。在扩大范围之前,需记录一份理想的执行日志、一个故障案例以及回滚说明。

将配置信息置于应用程序代码之外。环境文件、密钥存储以及功能开关应集中存放于一处,这样操作人员无需查看整个系统结构即可进行审计。

保持系统状态结构的扁平化与类型化。嵌套的数据结构会掩盖具体是哪个节点修改了哪一字段,还会导致在任务中断后无法继续执行。

只要预算允许,就应在持续集成过程中使用测试用例而非真实的付费 API 来执行关键路径的冒烟测试。

需同时记录正常流程与故障恢复流程。重试机制、人工审核环节以及错误处理措施都是产品不可或缺的部分,而非后续需要补充的功能。

保持系统状态结构的扁平化与类型化。嵌套的数据结构会掩盖具体是哪个节点修改了哪一字段,还会导致在任务中断后无法继续执行。

在推广该技术栈之前,应先冻结版本,为关键流程生成标准参考记录,并明确回滚步骤。共享环境需要设置速率限制、租户验证机制,以及负责密钥轮换的明确责任人。与其展示花哨的一次性演示,不如注重扎实的可靠性。

针对758c51495df5的批量处理说明:不要将提供商密钥放入代码仓库,为每个会话设置令牌使用上限,并将参考记录与测试用例一起存储,以便后续模型更换时仍能保持对比性。

强化安全性的第0阶段作为可量化评估指标最为有效。在扩大应用范围之前,先获取一份标准参考记录、一个故障案例以及回滚说明;同时将处理时间、令牌消耗或查询成本与功能测试结果一并记录。提前了解成本情况,可避免从演示环境过渡到共享环境时出现意外费用。

强化措施细节 0/782:为该记录测量运行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来判断是否保留该变更。

在强化措施的第一阶段,应在修改代码之前明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。需同时记录正常流程和故障恢复流程。重试机制、人工审核环节以及错误处理方式都是产品本身的组成部分,而非后续的优化工作。

强化措施细节 1/782:为该记录测量运行时间、错误类型以及令牌消耗情况,然后依据固定的问题集而非个人经验来判断是否保留该变更。

在处理强化措施的第2阶段时,首先写下相关契约:所需的输入参数、成功信号以及部分失败时的处理方式。这样的检查清单能确保后续的代码修改始终符合约定。 将这一阶段视为输入与验证后输出之间的契约。为相关产物命名,明确成功判定标准,杜绝默许部分完成的情况。

强化措施细节2/782:需测量该步骤的耗时、错误类型以及令牌消耗情况,然后依据固定的评估标准而非个人经验来决定是否保留该变更。

将强化措施的第3阶段视为可量化的对象来处理效果最佳。在扩大范围之前,先记录一份标准操作示例、一个失败案例以及回滚说明。 应将配置信息与应用程序代码分开。环境文件、密钥存储和功能开关应集中存放于一处,以便操作人员无需查看全部代码结构即可进行审计。

强化措施细节 3/782:记录该任务的执行时间、错误类型以及代币消耗情况,然后依据固定的问题清单而非个人经验来判断是否保留该变更。

在强化措施的第4阶段,应在修改代码之前明确输入参数、该步骤的负责人以及完成标准。操作人员应能够从已知的检查点重新运行该步骤,而无需猜测隐藏状态。相比复杂的脚本,更应采用小型且可测试的单元。当某一步骤失败时,故障原因应能指向单一责任主体,而非混乱的整个流程。

强化措施细节 4/782:记录该任务的执行时间、错误类型以及代币消耗情况,然后依据固定的问题清单而非个人经验来判断是否保留该变更。