원클릭으로
okp-import
将领域知识清洗并导入 Open Knowledge Protocol。面向各领域 owner 的 agent:读 domain README → 查重 → 蒸馏 → 校验 → 写入。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
将领域知识清洗并导入 Open Knowledge Protocol。面向各领域 owner 的 agent:读 domain README → 查重 → 蒸馏 → 校验 → 写入。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | okp-import |
| version | 1.6.0 |
| description | 将领域知识清洗并导入 Open Knowledge Protocol。面向各领域 owner 的 agent:读 domain README → 查重 → 蒸馏 → 校验 → 写入。 |
| metadata | {"requires":{"bins":["okp"]},"cliHelp":"okp --help"} |
CRITICAL — 开始前 MUST 确认 okp CLI 已安装并可连接 API:
npm install -g @markbangwu/okp
okp domains # 确认 API 可达
admin > host > writer > reader
所有 domain 均开放读取,没有私有 domain 这个概念。
写 README 即创建 domain,创建者自动成为该 domain 唯一 host:
okp domain <domain> --set readme.md
返回 201 即创建成功,创建者已持有 host 角色。
若 put / batch / domain --set 返回 403(write access denied):
okp invite create <domain> --expires-hours 72 --max-uses 1
okp invite accept OKP-XXXX-XXXX
okp invite members <domain>
邀请码只能授予 writer,不能获得 host 或 admin。
邀请码是短码,不是链接路由。门户右上角「邀请」也可输入同一邀请码。
每个 domain 有自己的 README,定义了 frontmatter 字段规范。必须先读。
okp domain <domain> # 打印 README(含 schema 定义)
okp domains # 查看所有 domain
okp domains -q <keyword> # 模糊搜索领域名
如果是新 domain,先写 README 再导入(写 README 即定义 domain,之后 okp domains 立即可见):
okp domain <domain> --set readme.md
README 格式(YAML frontmatter 定义 schema):
---
fields:
sender:
type: string
required: true
description: 飞书发送者用户名
group:
type: string
required: true
description: 来源飞书群
platform:
type: enum
required: false
enum: [bilibili, douyin, xiaohongshu, github, youtube]
date:
type: string
required: false
description: 发布日期 YYYY-MM-DD
---
# feishu-social
飞书社媒分享数据...
## How to contribute
每条 concept 的 frontmatter 必须包含 sender 和 group。
okp search "<title>" --domain <domain> --type <type>
关键字段:
{
"id": "feishu-social/Link/太离谱了居然可以在自己画的虚拟世界游玩",
"domain": "feishu-social",
"type": "Link",
"title": "太离谱了!居然可以在自己画的虚拟世界游玩!",
"description": "一句话摘要,不超过 500 字符",
"tags": ["AI视频", "虚拟世界"],
"body": "markdown 正文",
"frontmatter": {
"sender": "寇佳新",
"group": "the World Builders",
"platform": "bilibili",
"date": "2026-07-06",
"url": "https://b23.tv/zyhaEno",
"likes": "225",
"views": "6357"
},
"provenance": {
"source": "feishu-sync",
"agent": "okp-import/1.6",
"raw_ref": "https://..."
}
}
frontmatter 按 domain README 的 schema 填写。required 字段不能缺省,否则写入返回 422。
# 单个
okp put <id> -f concept.json
# 批量(NDJSON,每行一个 concept)
okp batch concepts.ndjson
put 与 batch 行为一致:
常见失败:
| 状态 | 含义 | 处理 |
|---|---|---|
| 403 | 无 domain 写权限 | 联系 host/admin 生成邀请码,再 okp invite accept <code> |
| 422 | frontmatter/校验失败 | 按 fix 补字段或改写 |
| 401 | token 无效/过期 | 检查 OKP_API_TOKEN / sandbox execution token |
422 的 fix 常见项:
frontmatter.<field> 是必填字段 → 补填该字段疑似重复 → 用 okp search 确认是否已有provenance.source 为空 → 填数据来源写入返回成功后稍等片刻再搜(大批量导入可多等几秒):
okp sample --domain <domain> --limit 3 # 随机抽样确认数据结构
okp search "<title 关键词>" --domain <domain> --limit 5
okp search --domain <domain> --sort date:desc --limit 5 # 时序类看最新
okp get <id> # 确认单条完整
若刚写入的 concept 暂时搜不到:再等几秒重试 okp search / okp get;不要重写一遍,除非内容本身要改。
{domain}/{type}/{slug} # slug 用 kebab-case,避免中文和空格
| 字段 | 说明 |
|---|---|
source | 数据来源,如 feishu-sync、manual、fandom-crawl |
agent | 写入方,如 okp-import/1.6 |
raw_ref | 原始数据 URL 或路径 |
okp invite create <domain> [--expires-hours 72] [--max-uses 1]
okp invite list <domain>
okp invite revoke <domain> <invite-id>
okp invite accept <code>
okp invite members <domain>
writer