实用笔记:OKF远不止是Markdown——我对可移植性的理解
《实用笔记》操作指南:OKF远不止是Markdown——我对可移植性的理解,以及为采用该模式的团队提供的合同、校验机制和可直接插入的代码模块。
本指南将逐步构建从原始材料到可运行系统的完整流程,适用于文章《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:记录该任务的执行时间、错误类型以及代币消耗情况,然后依据固定的问题清单而非个人经验来判断是否保留该变更。