Ontology

9小时前发布 0 0 0

在本地 JSONL 中维护带类型、关系和约束的知识图谱,并提供查询、校验与模式扩展。

收录时间:
2026-09-18

Ontology 是什么

Ontology 为代理提供一个工作区内的结构化记忆层:把人物、项目、任务、事件、文档等实体,以及它们之间的关系保存为可查询图谱。它采用追加式 JSONL 记录操作,并用 YAML 模式约束类型、属性和关系,比零散笔记更适合需要稳定实体标识和关系追踪的任务。

适用场景与不适用场景

适合个人知识库、项目依赖、联系人关系、事件追踪和代理长期记忆。不适合高并发、多用户数据库,也不替代图数据库的事务、索引和权限体系。敏感凭据只能保存引用,不能把密码或令牌写进图谱。

核心能力与工作机制

脚本支持 create、get、query、list、update、delete、relate、related、validate 与 schema-append。读取时重放 JSONL 操作得到当前状态,删除是逻辑删除。校验覆盖必填属性、枚举、禁用字段、关系类型与基数、无环约束以及事件起止时间等;路径检查限制图谱和模式位于工作区。

实际工作流与产物

先阅读 schema.yaml,选择既有实体类型;创建实体后用稳定 ID 建立关系,查询或 related 追踪邻接对象。每次批量修改后运行 validate,发现模式缺口时用追加方式扩展 schema。备份时同时保存 graph.jsonl 与 schema.yaml,因为两者共同决定可解释性。

安装、依赖与权限

需要 Python 和工作区文件读写权限,默认数据位于 memory/ontology/graph.jsonl。无需云账号。尽管脚本阻止把 graph/schema 路径指向工作区外,业务数据仍是明文文件,应依靠文件系统权限与版本控制策略保护。

限制、风险与使用建议

追加日志会随时间增长,需要备份和可能的压缩策略;多个进程并发写入可能冲突。部分模式约束可能只是文档说明,实际校验器未完全实现,不能把 validate 当作数据库级保证。逻辑删除和关系残留也需要定期检查。

上手建议

从少量高价值类型和关系开始,命名保持稳定;先验证查询需求,再扩展模式。每次写入后查询目标实体并运行 validate。不要把所有文本切成实体,只有需要独立引用、关联或生命周期管理的对象才值得进入图谱。

来源、版本与许可

依据 ClawHub 1.0.4 页面、完整 Skill 与 Python 实现整理,版本元数据声明 MIT-0。平台 API 的自动审核为 clean,但页面仍显示 Review;这只是扫描信号,不代表无风险。

常见问题

1. 数据保存在哪里?

默认在工作区 memory/ontology/graph.jsonl,模式位于 schema.yaml。它们是普通本地文件,不会自动上传云端;迁移或备份时必须一起保存,单独复制图数据可能失去类型解释。

2. 为什么使用追加式 JSONL?

每次创建、更新或删除都追加一条操作,读取时重放得到当前状态,便于审计和恢复历史。但日志会持续增长,也没有数据库事务保证,需要控制并发并规划备份或压缩。

3. 删除实体会物理移除记录吗?

不会,删除以新操作表达当前实体失效,旧记录仍在日志中。若数据具有隐私删除要求,单纯逻辑删除可能不够,应评估安全清除整个历史文件及备份。

4. 可以保存 API 密钥吗?

不可以。模式专门禁止 secret、password、token、key、api_key 等字段;凭据实体只能保存 secret_ref,实际秘密应留在系统密钥链或秘密管理器中。

5. validate 能保证所有约束吗?

不能把它等同数据库约束。实现覆盖属性、枚举、关系类型、基数、无环和事件时间等主要规则,但文档中的其他约束可能尚未编码,关键业务仍需额外测试。

6. 能把数据文件放到工作区外吗?

实现包含路径校验,要求 graph 与 schema 的解析路径保持在工作区根目录内。这降低误写系统位置的风险,但不会阻止有权限的其他程序读取工作区文件。

7. 适合多人同时写入吗?

不理想。普通 JSONL 文件缺少成熟数据库的锁、事务和冲突解决;多个代理并发追加可能产生竞争。多人场景应串行写入,或迁移到具备并发控制的数据库。

8. 如何设计第一版本模式?

先从查询问题倒推,只定义少量稳定实体、必需属性和关系基数;用真实样例创建、关联、查询并验证。不要一开始复制整个业务世界,否则模式更新和历史兼容成本会迅速上升。

数据统计

相关导航

暂无评论

none
暂无评论...