匹配状态与结果处理
先决定由谁选择能力:已知ID直接resolve;已有MCP宿主通常使用当前模型选择;只有应用要主动提交自然语言时才配置ModelExecutor并调用match。
在OpenAI、独立Codex CLI或自定义执行器中选择一条配置路线。它们各有完整脚本和前置条件,本页重点处理共同的返回结果。固定状态演示不调用真实模型,不代表语义匹配算法或准确率。
已配置graph时,调用片段如下(graph的创建与关闭见对应接入页):
input是非空用户任务,context是显式事实和可选notes;可选providers只限制候选根。默认总deadline为60000毫秒,静态方法无需executor。一次match对非空授权候选目录调用一次select,不存在隐式关键词回退;实际token、费用和模型可用性由选定服务决定。
可注入任意符合接口的借用 executor:
请求 JSON 部分不可变;executor 不得依赖修改它或执行能力。返回 union:selected 需至少 1 个唯一候选 ID;none 的 ids 为 [];ambiguous 至少 2 个候选且必填 reason;needs_context 必填 reason 和非空 missingInformation,可带候选 IDs。不得返回目录外、重复或未授权 ID。内置适配器的线格式固定四个必填字段 decision/ids/reason(string|null)/missingInformation,再规范化为该公开 union。
match 返回 status 为 matched/no_match/ambiguous/needs_context,selection 含 ids/可选 reason/missingInformation;graph 按同一固定 Snapshot 执行默认 requires 解析,selection.ids 与 graph.selected 一致。多项都需要时是 matched,多项互斥选择才是 ambiguous。模型判断与节点 applicability 分别呈现,unknown 不被自动转成 needs_context。
默认 60000ms,允许 1–600000 的 timeoutMs,涵盖整次匹配。外部 signal、deadline、close 由首先观察到的终止决定;迟到成功被丢弃。不合作的外部 executor 也不会让 Graph 永久等待,但资源清理仍是该 executor 的责任。借用的 executor 不被 Graph.close 关闭。空候选在配置 executor 后直接 no_match,不调用模型;没有配置时仍报 CG_MODEL_NOT_CONFIGURED。
错误包括 CG_MODEL_NOT_CONFIGURED/UNAVAILABLE/EXECUTOR_UNSAFE/CONTEXT_EXCEEDED/OUTPUT_INVALID/OUTPUT_TOO_LARGE/REFUSED/TIMEOUT/CANCELLED。OpenAI API 凭据与 Codex CLI 网页授权分别配置,运行条件见版本与兼容。
先处理四种业务状态
多根可以共同需要,因此selected有多个ID不自动等于ambiguous。认证、超时、拒绝、非法输出或越权ID是错误,不伪装no_match。
下面是取得result后的消费片段,结果显示在控制台,业务执行仍由你的应用单独决定:
三个维度可以组合
complete/applicable仍不证明软件已安装、运行成功、具备执行授权或应该按节点排序执行。Graph只检验声明、授权和显式条件,不能保证模型语义选择正确。
四状态完整结果与可运行演示
按运行示例安装并复制后运行 node examples/scenarios/match.mjs。这个受控executor固定返回四种合法ModelSelection,只用于可复现的结果教学;不联网、不消耗模型额度,也不能用作生产匹配器。
脚本stdout为各用例完整结果。下面四个值为实际原结果,没有删掉graph或伪造哈希;其他键还会验证三个组合、空目录与未配置差异。
展开四种匹配状态的完整JSON
查看完整受控演示脚本与断言
区分空目录和未配置
- 有executor而授权候选目录为空:直接no_match,select不被调用,避免无用模型请求。
- 没有executor:即使目录为空仍为CG_MODEL_NOT_CONFIGURED/match,配置正确模型后再主动匹配。
- 模型技术失败:按GraphError.code/phase处理,不能替换成空结果。
超时、取消和close是独立终止路径,详见生命周期。模型只收到input、Context、授权精简Catalog和revision,不自动读取本地知识正文。