前言¶
在 DeepSeek Harness 的生态中,智能体常用的记忆方式往往是自由文本。记录下来的内容随时间推移可能产生矛盾,或者不再符合最初的定义。更重要的是,文本记忆无法自动推导隐含关系,导致知识碎片化。
dsh-ontology 插件为智能体提供了一个结构化的知识框架。它将领域知识定义为类型化的本体(TBox + ABox),强制智能体在声明类别和关系时遵守模式约束。通过这种方式,断言会在存储前被验证,推导出的隐含事实会在查询时即时生成,而非重复存储。
插件定位¶
这是一个为 DeepSeek Harness 提供的类型化、可推理本体插件。它包含 TBox(概念定义与关系类型)和 ABox(实例与事实断言)两部分。智能体可以在其中声明领域知识、断言事实,并在模式约束下进行查询。
核心功能¶
- 类型化与推理:支持基于模式约束的验证,以及 transitive(传递性)、symmetric(对称性)和 inverseOf(逆关系)的推理。
- 依赖感知的撤回:在移除事实时,插件会自动处理依赖关系,防止孤立数据残留。
- 多模式查询:支持 schema(模式)、stats(统计)、entities(实体)、facts(事实)、neighbors(邻居)和 path(路径)等多种查询方式。
安装与启用¶
使用官方命令将插件添加到指定的 Profile 中:
dsh plugin --profile <name> add dsh-ontology
dsh --profile <name>
配置与使用¶
安装后,可以通过 Profile 的 cordis.patch.yml 覆盖默认配置项,例如存储域名、严格模式开关、推理开关等。
1. 定义模式 (TBox)¶
使用 ontology_define 声明类和类型化关系。
// ontology_define
{
"classes": [
{ "id": "Service", "subClassOf": ["Component"] },
{ "id": "Component", "comment": "A deployable unit of the system" },
{ "id": "Person" }
],
"relations": [
{ "id": "depends_on", "domain": ["Component"], "range": ["Component"], "characteristics": ["transitive"] },
{ "id": "owns", "domain": ["Person"], "range": ["Component"], "inverseOf": "owned_by" },
{ "id": "owned_by", "domain": ["Component"], "range": ["Person"] },
{ "id": "version", "domain": ["Component"], "rangeKind": "literal" }
]
}
2. 断言事实 (ABox)¶
使用 ontology_assert 记录实体和事实。在此步骤中,系统会验证断言是否符合已定义的模式。
// ontology_assert
{
"entities": [
{ "id": "api", "classes": ["Service"] },
{ "id": "auth", "classes": ["Service"] },
{ "id": "pg", "classes": ["Component"] },
{ "id": "ada", "classes": ["Person"] }
],
"facts": [
{ "subject": "api", "predicate": "depends_on", "object": "auth" },
{ "subject": "auth", "predicate": "depends_on", "object": "pg" },
{ "subject": "ada", "predicate": "owns", "object": "api", "source": "CODEOWNERS" },
{ "subject": "api", "predicate": "version", "object": "2.1.0" }
]
}
3. 查询与推理¶
使用 ontology_query 进行查找。由于 depends_on 被定义为 transitive(传递性),查询 api 的依赖时会自动包含 pg。
// ontology_query
{ "mode": "facts", "subject": "api", "predicate": "depends_on", "includeInferred": true }
结果将包含推导出的事实:
api depends_on auth
api depends_on pg (inferred: transitive)
4. 安全撤回¶
使用 ontology_retract 移除事实。如果移除某个实体,所有依赖于此实体的推导事实也会随之消失。
注意事项¶
- 构建权限:如果通过
github:安装,需要 pnpm ≥10。必须在 Profile 的pnpm-workspace.yaml中添加allowBuilds: { dsh-ontology: true }。 - 命名规范:存储域名必须匹配
/^[a-z][a-z0-9_]*$/。 - 隔离运行:运行隔离图需要单独的域名。
- 字面量限制:取值为字面量的关系不能被设为对称、传递或逆关系,否则定义会被拒绝。
总结¶
dsh-ontology 将智能体的记忆从“文本袋”转变为受控的知识图谱。它通过严格的模式约束和自动推理,确保了领域知识的可靠性和一致性。对于需要构建长期记忆、处理复杂依赖关系的智能体开发场景,这是一个实用的工具。