Skip to content
English

协议目录:同一清单驱动匹配和校验 ​

按 App 自己的协议 ID 登记规范;Core 不内置业务阶段名称。

ProtocolRegistry 继承 Map,但 set 禁止重复 ID 和空值;require 未找到时抛错。注册的是 App 已定义的协议合同,不自动创建状态机、模型提示词或执行权限。

App 可以让同一清单同时驱动模型可见说明、解析和处理入口,避免模型枚举和程序分发各维护一套。不要把特定 Kit 的状态升级为所有 App 必需字段。

由简到繁的同业务示例 ​

一个可查的协议清单 ​

入门 · Node.js

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());

从类型化声明生成同一目录 ​

配置 · Node.js

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
  { id: 'reply', terminal: true },
  { id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition] as const));
console.log(protocols.require('lookup').terminal);
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
    { id: 'reply', terminal: true },
    { id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition]));
console.log(protocols.require('lookup').terminal);

接口参考、使用示例与开发指南。