@agent-assistant/connectivity
@agent-assistant/connectivity 用于内部助理协调的 v1 进程内信号层。 它提供了一个有界限的信号词汇,验证,压制,生命周期管理,受众分辨率悬钩,以及一个升级悬钩,在不将路由所有权交给本套件的情况下可以执行.
范围
此软件包拥有 :
- 峡谷
ConnectivitySignal信封和支持类型Script - 同步
emit()具有验证、ID任务、时间戳、压制和超会话 - 每个线程的内存信号日志
get()财务报告和审定财务报表query() - 寿命周期过渡
resolved, (中文(简体) ),superseded,以及expired - 对象语义
self, (中文(简体) ),coordinator, (中文(简体) ),selected,以及all - 通过调用
onSignal()财务报告和审定财务报表offSignal() - 运通可能执行的升级钩接口
此软件包不拥有 :
- 路径决定或模式应用程序
- 协调员的工作任务或综合政策
- 运输、队列或跨进程交付
- 云遥测或持久性
- v1 目录以外的产品特定信号类
安装形状
软件包为 TypeScript- first 并建为 dist/。 。 。 .
import {
createConnectivityLayer,
type ConnectivitySignal,
type EmitSignalInput,
} from '@agent-assistant/connectivity';
信号模型
v1包括5个信息类和11个信号类:
attention.raiseconfidence.highconfidence.mediumconfidence.lowconfidence.blockerconflict.activeconflict.resolvedhandoff.readyhandoff.partialescalation.interruptescalation.uncertainty
confidence 数字并绑定为 0.0..1.0 当在现相. 人人都需要这样 confidence.* 财务报告和审定财务报表 conflict.* 信号,对信任信号类执行特定类别范围:
confidence.high数字 :0.8..1.0confidence.medium数字 :0.4..0.79confidence.low数字 :0.1..0.39confidence.blocker数字 :0.0
可选字段在TypeScript中遵循精确的可选属性语义. 奥米 confidence, (中文(简体) ), details, (中文(简体) ), replaces,以及 expiresAtStep 当他们不加以适用,而不加以明确通过的时候 undefined 数值.
常数
该套件有意将运行时间常数目录与工会类型一起输出:
MESSAGE_CLASSESMESSAGE_CLASS_TO_SIGNAL_PREFIXSIGNAL_AUDIENCESSIGNAL_CLASSESSIGNAL_EVENTSSIGNAL_PRIORITIESSIGNAL_STATESTERMINAL_STATES
这些是预定的v1表面的一部分,因此下游软件包可以共享相同的犬类词汇来进行详尽的检查,切换守卫,以及测试固定装置而无需重复本地阵列.
核心 API
createConnectivityLayer(config?)
创建线性记忆层.
const layer = createConnectivityLayer({
suppressionConfig: { basis: 'step' },
routingEscalationHook: {
onEscalation(signal) {
if (signal.signalClass === 'escalation.uncertainty') {
return 'deep';
}
},
},
});
emit(input)
创建有效的信号, 指定 id, (中文(简体) ), emittedAt初始时 state,然后将其存储在线程日志中.
关键行为 :
- 验证所需字段和类一致性
- 在配置的压制窗口中压制重复
- 绕过压制
priority='critical' - 当摘要变化时绕过对高优先级升级信号的压制
- 取代目标
replaces在存储新信号之前 - 引用路径升级钩
escalation.interrupt财务报告和审定财务报表escalation.uncertainty - 火灾
onSignal(signal, 'emitted')同步
resolve(signalId)
将信号移动到 resolved它对于已经解开的信号和投出 expired 或者说 superseded 信号.
get(signalId) 财务报告和审定财务报表 query(query)
get() 返回单个信号或 null。 。 。 . query() 读取有过滤器的线程切片,用于源、类、优先级、状态和时间界限。 默认, query() 仅返回 emitted 财务报告和审定财务报表 active 信号.
advanceStep(threadId)
增加线步计数器. 信号 expiresAtStep <= currentStep 变成 expired,以及 onSignal(signal, 'expired') 每人点火.
registerSelectedResolver(resolver)
登记用于 audience='selected'。解析器在发射时被引用。 连通性计算观众结果,但不提供或坚持接受者.
onSignal(callback) 编号 : offSignal(callback)
登记或删除同步回调,用于:
emittedsupersededresolvedexpired
如果一个回调投放,错误会被记录下来,以后的回调仍然运行.
生命周期和一致性
信号通过 :
emitted -> active -> superseded
-> expired
-> resolved
active 至少经过一个 onSignal 新发射信号的召回起火。 在v1中同源性会有意地保持轻量级: 包会给予协调它需要的原始人来汇合一线程而无需自己取得协调所有权.
这些原始人是:
replaces当一个更新的信号过时了一个更古老的信号时resolve()合并或仲裁后明确关闭advanceStep()加号expiresAtStep暂时信号query()冲突、升级和当前信任状态
取缔
复制检测使用逻辑密钥 :
threadId + source + signalClass + audience
复制只当已存在的信号仍然是非终端时才会被压制.
支持的压制模式 :
basis: 'step'advanceStep()重新设置压制窗口basis: 'time'使用滑动windowMs,默认为5000
运行边界
连通性只暴露出本地的路由钩接口:
interface RoutingEscalationHook {
onEscalation(signal: ConnectivitySignal): 'cheap' | 'fast' | 'deep' | void;
}
钩子类型由 @agent-assistant/connectivity 消费者并不需要 @agent-assistant/routing 已安装,仅用于输入此软件包。 routing仍然可以执行相同的结构合同. 连接不存储返回模式,不选择路由模式,也不导入路由执行. 钩子是存在的,因此通路可以对升级信号作出反应而不会模糊包的所有权.
示例
import { createConnectivityLayer } from '@agent-assistant/connectivity';
const layer = createConnectivityLayer();
layer.onSignal((signal, event) => {
console.log(event, signal.signalClass, signal.summary);
});
const confidence = layer.emit({
threadId: 'thread-42',
source: 'specialist:reviewer',
audience: 'coordinator',
messageClass: 'confidence',
signalClass: 'confidence.high',
priority: 'normal',
confidence: 0.92,
summary: 'Review completed with stable evidence',
});
layer.emit({
threadId: 'thread-42',
source: 'specialist:reviewer',
audience: 'selected',
messageClass: 'handoff',
signalClass: 'handoff.ready',
priority: 'normal',
summary: 'Downstream writer can synthesize the reviewed draft',
});
layer.resolve(confidence.id);
发展
走进去 packages/connectivity数字 :
npm install
npm test
npm run build
测试套件涵盖预定的第一个工作流程:
- 收缩注意力
- 审查者冲突
- 专家分发
- 阻塞器不确定路径升级
连接 连接 模拟