方法注册表
助手要调用一种能力时,不直接硬编码实现,而是走标准 Family API,由 Registry 找到真正的提供方。换实现、加能力时,调用方不必改路由逻辑。本仓助手按已锁定的 Registry 公共接口接线,不复制实现身份,也不把 worker.skill 当成绑定。
先看当前可见能力 #
操作提示词
请使用 artifact-chain-help 展示可用的 Family API 和采用步骤,不要修改项目。Family API Catalog 来自插件自带文件,Registry 缺失时静态能力仍可展示。动态安装状态在 Registry v2 verifier 未接入时显示为不可用,不得把候选清单写成已验证提供方。
配置是否合法,仍用图入口核对:
sh
artifact-graph validate --root . --warning-only
artifact-graph contract list --format jsonRegistry 管五件事 #
- 身份:每个方法提供方有稳定标识,重试和审计都能对准同一个提供方。
- 清单:登记有哪些方法、各自提供什么能力。宿主发现的插件只能形成候选,不能直接当成可信提供方。
- 绑定:把能力名映射到具体实现。默认整族原子绑定,避免 author 来自实现 A、review 来自不兼容实现 B。
- 投影:按调用方视角裁剪暴露的方法;从 API、实现与可信清单确定性生成。
- 运行期选择:一次运行内,同名方法不许中途替换。安装插件不得自动改写已有项目的有效绑定。
本仓 where-am-i 生成 Method Query candidate,把已解析的绑定对象交给 Registry 的 buildEffectiveIndex 与 queryEffectiveIndex。下游消费返回的 serviceId、apiId、apiMajor 及原生选择状态。
为什么需要它 #
同一项目可能同时看到开源实现与内部实现,两者都提供同名能力。没有注册表时,今天走到开源、明天走到内部,结果不可复现。有了 Registry:身份区分两个提供方;绑定按项目配置锁定整族实现;运行期选择保证这次运行始终路由到同一实现;投影避免规划器调到未验证的候选。
和图内核的关系 #
Registry 与 artifact-graph 的图结构正交:图管制品与关系,注册表管能力提供方。两者不互相导入内部实现。缺绑定时保留 Registry 原始不可执行状态;help 与单纯图检查不受影响。