Install
openclaw skills install @thcjp/knowledge-ontology-free面向AI Agent的类型化知识图谱基础版,支持实体关系建模、约束校验及图遍历查询,实现结构化多实体关系管理与依赖追踪。
openclaw skills install @thcjp/knowledge-ontology-free将Agent记忆从扁平文件升级为类型化可验证的知识图谱,支持实体关系建模、约束校验与图遍历查询,让知识结构化、可查询.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 知识本体处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
{"id":"ent_001","type":"Project","properties":{...},"relations":[...],"created":"2026-01-15T10:00:00Z","updated":"2026-01-15T10:00:00Z"}。支持 has_owner/has_task/depends_on/relates_to 等基础关系类型,关系建立前校验类型兼容性.python3 (请参考skill目录中的脚本文件) validate 输出校验报告,标记通过与失败的实体.query --type Task --where '{"status":"open"}'),执行关联查询(related --id proj_001 --rel has_task),遍历依赖关系链(traverse --id task_001 --rel depends_on --direction outgoing),支持正向与反向遍历.针对类型化实体与关系系统,自动解析输入参数、调度任务队列、格式化输出,返回结构化响应. 输入: 用户提供类型化实体与关系系统相关的配置参数、输入数据和处理选项. 输出: 返回类型化实体与关系系统的处理结果。- 验证返回数据的完整性和格式正确性
类型化实体与关系系统的配置文档进行参数调优针对约束校验引擎,自动解析输入参数、调度任务队列、格式化输出,返回结构化响应. 输入: 用户提供约束校验引擎相关的配置参数、输入数据和处理选项. 输出: 返回约束校验引擎的处理结果。- 验证返回数据的完整性和格式正确性
约束校验引擎的配置文档进行参数调优针对图遍历,自动解析输入参数、调度任务队列、格式化输出,返回结构化响应. 输入: 用户提供图遍历查询相关的配置参数、输入数据和处理选项. 输出: 返回图遍历查询的处理结果。- 验证返回数据的完整性和格式正确性
图遍历查询的配置文档进行参数调优详细的输入输出格式请参考下方章节说明。
创建图谱存储目录并写入初始schema定义.
mkdir -p memory/ontology
touch memory/ontology/graph.jsonl
python3 (请参考skill目录中的脚本文件) schema-append --data '{
"types": {
"Task": { "required": ["title", "status"], "defaults": {"status": "open"} },
"Project": { "required": ["name"] },
"Person": { "required": ["name"] }
},
"relations": {
"has_owner": { "from_types": ["Project"], "to_types": ["Person"] },
"has_task": { "from_types": ["Project"], "to_types": ["Task"] },
"depends_on": { "from_types": ["Task"], "to_types": ["Task"] }
}
}'
使用 create 命令追加实体到图谱文件末尾,使用 relate 命令建立关系.
python3 (请参考skill目录中的脚本文件) create --type Person --props '{"name":"Alice","role":"developer"}'
python3 (请参考skill目录中的脚本文件) create --type Project --props '{"name":"用户中心重构","status":"active"}'
python3 (请参考skill目录中的脚本文件) relate --from proj_001 --rel has_owner --to p_001
python3 (请参考skill目录中的脚本文件) relate --from proj_001 --rel has_task --to task_001
按类型与条件查询实体,执行关联查询与依赖遍历.
python3 (请参考skill目录中的脚本文件) query --type Task --where '{"status":"open"}'
python3 (请参考skill目录中的脚本文件) related --id proj_001 --rel has_task
python3 (请参考skill目录中的脚本文件) traverse --id task_001 --rel depends_on --direction outgoing
python3 (请参考skill目录中的脚本文件) validate
| 错误类型 | 原因 | 处理方式 |
|---|---|---|
| 校验失败:缺必填属性 | 实体未提供 required 字段,如 Task 缺少 status | 按提示补全属性后重新提交;或使用 defaults 配置自动填充默认值 |
| 关系创建失败:类型不匹配 | relate 命令的 from/to 类型与 schema 中声明不符 | 检查 schema 中该关系的 from_types/to_types 声明,确认实体类型后再建立关系 |
| 查询无结果 | 实体不存在、类型名拼写错误或 where 条件过严 | 执行 list --type Project 确认实体存在;检查 where 条件中的属性名与值 |
输入: 用户问"用户中心重构项目有哪些未完成的任务?"
执行:
query --type Project --where '{"name":"用户中心重构"}' 返回 proj_001related --id proj_001 --rel has_task输出:
项目:用户中心重构(proj_001)
未完成任务(3条):
- task_001: 设计用户认证接口(status: open)
- task_002: 实现权限管理模块(status: open,depends on task_001)
- task_005: 编写集成测试(status: open,depends on task_002)
# ...
建议执行顺序:task_001 → task_002 → task_005
Q1:JSONL存储有性能问题吗? A:实体数小于1000条时JSONL性能足够。超过1000条后查询会变慢,建议定期清理无用实体或考虑升级到付费版使用SQLite数据库存储. Q2:约束校验支持哪些规则? A:基础版支持3类约束——required(必填)、enum(枚举)、defaults(默认值)。如需 forbidden_properties、cardinality、acyclic、validate 等高级约束规则,请升级到付费版. Q3:基础版支持模式演进吗? A:基础版不支持三步法模式演进与迁移脚本。如需在不破坏旧数据的前提下修改schema,请升级到付费版获取完整的模式演进管理能力.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Python 3.8+ | 运行时 | 必需 | 系统安装Python 3.8或更高版本 |
| PyYAML | Python包 | 必需 | 执行 pip install pyyaml 解析schema定义文件 |
| Agent平台 | 运行环境 | 必需 | 支持SKILL.md的任意AI Agent平台 |
API Key配置: 本Skill无需任何API Key,纯本地文件操作,无网络请求. 可用性分类: MD+EXEC(Markdown指令 + exec命令行执行)。核心实体与关系概念纯Markdown可理解;创建、查询、校验操作需Python脚本执行.
本基础版提供知识图谱的核心创建与查询能力。升级到付费版可解锁以下高级能力:
cycle-check命令自动定位blocks关系中的环路升级后可处理更复杂的知识管理场景,包括凭证安全存储、影响分析、拓扑排序等高级图遍历任务.
{
"success": true,
"data": {
"result": "知识本体处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "knowledge-ontology"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}