dsh-ontology:DeepSeek Harness 中的类型化本体记忆插件

前言

在 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 将智能体的记忆从“文本袋”转变为受控的知识图谱。它通过严格的模式约束和自动推理,确保了领域知识的可靠性和一致性。对于需要构建长期记忆、处理复杂依赖关系的智能体开发场景,这是一个实用的工具。

更多信息:GitHub 仓库 | 社区目录

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜