OpenClaw 知识图谱插件 Ontology 深度解析
类型化知识图谱 + 结构化记忆 + 可组合技能
Ontology 是 OpenClaw 的一个官方技能(Skill),用于构建类型化知识图谱。
|
|
|
|---|---|
| 技能名称 |
|
| 官网 |
|
| 开发者 |
|
| 核心理念 |
|
| 存储格式 |
|
“Typed knowledge graph for structured agent memory and composable skills.”
2.1 类型化实体(Typed Entities)
预定义实体类型:
|
|
|
|
|---|---|---|
| Person |
|
|
| Project |
|
|
| Task |
|
|
| Event |
|
|
| Document |
|
|
2.2 关系链接(Entity Linking)
-
实体之间可建立关系 -
支持多层关系嵌套 -
可查询关联实体
2.3 约束验证(Constraints)
-
前置条件(Preconditions):操作前的检查 -
后置条件(Postconditions):操作后的验证 -
类型约束:确保属性符合定义
2.4 图变换规划(Graph Transformations)
-
将多步骤操作规划为图变换 -
技能间可共享状态 -
支持复杂工作流
3.1 数据结构
memory/ontology/├── graph.jsonl # 实体和关系存储└── schema.yaml # 类型定义
3.2 Schema 定义示例
types:Task:required: [title, status]Project:required: [name]Person:required: [name]
3.3 实体创建
# 创建 Person 实体python3 scripts/ontology.py create \ --type Person \ --props '{"name":"Alice"}'# 创建 Task 实体python3 scripts/ontology.py create \ --type Task \ --props '{"title":"开发功能","status":"open"}'
4.1 在 SKILL.md 中声明
ontology:reads: [Task, Project, Person]writes: [Task, Action]preconditions:-"Task.assignee must exist"postconditions:-"Created Task has status=open"
4.2 读写权限
|
|
|
|---|---|
| reads |
|
| writes |
|
| preconditions |
|
| postconditions |
|
5.1 项目管理
Person (波哥) → 管理 → Project (阿暴系统) ↓ 包含 → Task (Finnhub集成)
5.2 任务追踪
-
任务状态自动更新 -
关联人员管理 -
截止日期追踪
5.3 知识共享
-
技能间状态共享 -
跨会话记忆 -
复杂工作流编排
|
|
|
|
|
|---|---|---|---|
| 数据结构 |
|
|
|
| 约束验证 |
|
|
|
| 技能集成 |
|
|
|
| 查询方式 |
|
|
|
| 适用场景 |
|
|
|
7.1 推荐使用 Ontology
✅ 需要结构化实体管理 ✅ 需要约束验证的工作流 ✅ 多技能需要状态共享 ✅ 需要复杂关系建模
7.2 不需要使用
❌ 简单记忆存储 ❌ 只需要语义搜索 ❌ 非结构化内容为主
|
|
|
|---|---|
| 类型化实体 |
|
| 关系链接 |
|
| 约束验证 |
|
| 技能集成 |
|
| 图变换 |
|
一句话总结:
Ontology = 给 OpenClaw 装上”结构化知识图谱 + 约束验证”的智能记忆系统
如果你的 Agent 需要更结构化的记忆管理,并希望技能间能共享状态,Ontology 是最佳选择!
本文由光头佬撰写 | 2026-03-28
夜雨聆风