For AI agents: the complete documentation index is available at https://devcodex-labs.github.io/capability-graph/llms.txt, the full documentation bundle is available at https://devcodex-labs.github.io/capability-graph/llms-full.txt, and this page is available as Markdown at https://devcodex-labs.github.io/capability-graph/reference/provider-definition.md.

定义与身份

可用
字段必填说明
providerId稳定 Provider 身份,必须符合 ID 规则
name人类可读名称
versionProvider 定义版本,不属于能力身份
specificationProvider-owned Specification metadata

specification 可整体省略;提供时必须包含非空 specificationIdversion 和非空 documents。每篇 Document 的 role 固定为 specificationappliesTo 及其 softwareversionRangeconditions 均可选。Core 仅在显式 readSpecification() 时读取正文,不把正文当作执行规则,也不判断当前项目版本。

文件 Authority 的 provider.json 必须与配置中的 providerId 一致。每个有效启用 Provider 必须恰有一个 Authority。

可执行验证用例

Case ID字段/场景预期
DEF-PROVIDER-01最小完整记录打开成功
DEF-PROVIDER-02缺少 providerId拒绝
DEF-PROVIDER-03非法 providerId拒绝
DEF-PROVIDER-04name拒绝
DEF-PROVIDER-05version拒绝
DEF-PROVIDER-06不完整 specification拒绝
DEF-PROVIDER-07定义与配置的 Provider ID 不一致拒绝
DEF-PROVIDER-08有效多文档 Specification 映射打开成功

这些用例由 Reference 校验器通过公开 CapabilityGraph.open() 执行,不依赖内部校验函数。

Capability 定义

字段必填默认说明
capabilityId-Provider 内稳定唯一 ID
name-人类可读名称
description-能力解决的问题
whenToUse-适用意图或条件
distinction省略与相邻能力的关键区别
examples[]简短用例
parents[]同 Provider 直接父节点
specializes[]同 Provider 特化目标
related[]有方向的显式关联
requires[]必要上下文,参与 Selection 闭包;requiredBy 只派生,不可写在定义中
knowledge[]Document 或 Collection 引用

跨字段约束:关系端点必须存在于同一 Provider,重复端点拒绝;完整收集全部能力后,分别检查 parentsspecializesrequires 无环;同一 Provider 的 knowledgeId 映射身份必须完全一致,Collection 内重复成员拒绝,合法成员排序后判等;单个定义文件最大 262,144 UTF-8 字节。

Capability 可执行验证用例

Case ID字段/场景预期
DEF-CAP-01最小完整记录打开成功
DEF-CAP-02缺少 capabilityId拒绝
DEF-CAP-03非法 capabilityId拒绝
DEF-CAP-04Provider 内重复 ID拒绝
DEF-CAP-05缺少 name拒绝
DEF-CAP-06缺少 description拒绝
DEF-CAP-07缺少 whenToUse拒绝
DEF-CAP-08省略可选集合使用空集合默认值
DEF-CAP-09关系端点不存在拒绝
DEF-CAP-10parents 成环拒绝
DEF-CAP-11specializes 成环拒绝
DEF-CAP-12跨 Provider 关系表示拒绝
DEF-CAP-13不完整知识引用拒绝
DEF-CAP-14重复 knowledgeId拒绝
DEF-CAP-15相对路径越出 Provider 根目录拒绝
DEF-CAP-16定义文件超过 262,144 UTF-8 字节拒绝

这些用例同样通过公开 CapabilityGraph.open() 执行。

身份模型

interface CanonicalCapabilityId {
  providerId: string;
  capabilityId: string;
}

QualifiedCapabilityId 是显示字符串,正式分隔符 QUALIFIED_SEPARATOR::。导出的身份辅助函数包括 isId()isKnowledgeId()formatQualifiedId()parseQualifiedId()equalId()idKey()

不绑定 Provider 的查询必须使用完整二元身份。{ capabilityId } 短形式只在 BoundProviderGraph 中合法。Provider 版本不是身份的一部分。