@ 连接/ 心跳- mcpl
为 Connectome 代理定期自觉MCPL 服务器. 它需要节点Js 22.1.2.0 或较后.
在可配置的间隔中,发送 push/event (专题集) heartbeat, (中文(简体) ),
origin.source: heartbeat)叫醒经纪人进行自查. 经纪人
本身通过三个 MCP 工具配置自己的调度:
heartbeat_status——显示当前间隔, 暂停状态, 在一个即将到来的时刻到来的时间, 信息, 以及是否可发送提醒heartbeat_configure——设定间隔(intervalSeconds, (中文(简体) ),intervalMinutes财务报告和审定财务报表intervalHours,加起来,60秒或以上),paused, (中文(简体) ),deliveryMode, (中文(简体) ),message; 时刻表被保存, 使其在重启时持续, 答复中说如果更改无法保存或没有保存deliveryMode: "message"发送所配置的时间戳提示( 遗留/ 默认)deliveryMode: "silent"发出空的、经认证的心跳钟; 支持主机提供平面上下文并压制自动传言(见 静态模式 (按规定)
heartbeat_trigger现在发射一发心跳(测试/调试)
时间表保持不变 ${HEARTBEAT_CONFIG_FILE:-./heartbeat-config.json}。 。 。 .
服务器无法使用此文件或提醒文件时, 无法保存 .
一个完全不能读的,就剩下它了,没有东西可以挽救
它直到重启再读它: 服务器运行在它持有的东西上
同时记忆。 一个读取但不是服务器写的,比如
文件保存期间的崩溃撕裂,先被复制到一边,以便
<file>.unreadable-<hash>,则服务器启动时没有它。 一个
服务器可以部分使用, 复制到一边, 服务器开始
用它可以使用的东西: 带有非 UTF-8 字节的文件, 例如一个
在另一个编码中编辑,用替换字符(U+FFFD)读取
以及一个提醒文件 服务器无法装入 日志
将复制件命名,当复制件无法制作时,文件将留作
不能读取是. 虽然一个文件不能被使用,或者只是部分被使用,
每一个显示或计算商店所持内容的回复 以及一个电话
因为它的文件无法被读取或复制
或写它失败, 说.
每个调用工具的参数都会被应用, 或拒绝调用, 更改
无并同时命名每个问题:错误类型或退出的值
范围,两个相互相矛盾的参数,或者工具没有的名称
把它当作是它做的 或者是这些工具中的一个.
一个滑板是同名的 忽略案件, 几编辑去, 其中的一部分是三
信件或更多,例如 mode 页:1 deliveryMode,或,名称为3
信件或更多,一个更长的名称 持有它,发送没有它,例如
heartbeatIntervalMinutes 页:1 intervalMinutes。每个名称在它的
拥有 : pausedReason 发送到旁边 paused 这绝不是一件轻而易举的事
pausedMessage 寄到旁边的是一个滑倒 message。任何其他名称为工具
不拿是被忽略的,结果是这样 和工具需要什么,
除非这个电话没有给一个 需要辩论的工具发送其他任何信息
拒绝 长度为毫秒。 A 类 heartbeat_trigger 谁
心跳不能被发送,而a reminder_cancel 以至未受记念者
每一个都说出原因和该做什么.
"心跳被发射"表示心跳被发送;一个宿主随后拒绝
只有在服务器的日志上才会这么说.
提醒
reminder_add, (中文(简体) ), reminder_list 财务报告和审定财务报表 reminder_cancel 管理一发并
一再提醒。 延迟( A)inSeconds, (中文(简体) ), inMinutes, (中文(简体) ), inHours或一个
间隔( e)everySeconds, (中文(简体) ), everyMinutes, (中文(简体) ), everyHours)加其单位. A 类
重复的提醒间隔为 5 秒或 5 秒以上, 它首先发射一个
间隔,或延迟或 atIso 给它。 提醒为
坚持
${HEARTBEAT_REMINDERS_FILE:-./heartbeat-reminders.json}。应当提醒的是
push/event 与 origin.source: "reminder" 财务报告和审定财务报表 origin.reminderId文本
开头有一个信头, 上面写着它是一个提醒、 提醒和当前
时间,然后是教诲
[reminder rem_…, set 2026-10-10T08:02:36-07:00 [America/Los_Angeles] · current time: 2026-10-12T20:02:36-07:00 [America/Los_Angeles]] <message>
重复的提醒说 repeats every <n>s 在那里一枪就说,当它是
设置。 提醒在到期后一分钟或多分钟内起火 , due <time>。 。 。 .
主机通常将按压内容存储到当前并保存 origin 从什么
模型读取,所以如果没有信头,信件就会被解密。 A 类
打开的消息 Name: … 然后从他那里读取一条聊天线.
只有在唤醒它的时候,才发出警示。 虽然无法唤醒,
在东道主的政策到达之前, 在一个畸形的, 或者在一个以下
否认觉醒,或等待,或迟到,或放火的教训
一次重复一次 重复一次. reminder_list 拿出来
(overdue) 并结束它为什么等待。 在只使用MCP的主机上,或者在0:5前的机上
它的政策只作为通知发出, 从来没有唤醒
reminder_add 财务报告和审定财务报表 reminder_list 说:在大地上没有任何记念。 虽然
记录上说有多少提醒不会发射,
起始时,每次修改策略时,添加并取消,当主机回答时
提醒的推动.
提醒只当主机开始推动时才会改变:主机只拍了一发
并重复一笔预付款。 一个被东道主拒绝, 或他的推动
在 30 s 内失败或没有得到答案 : reminder_list 显示它与
原因和时间, 并且再次尝试 在东道主的下一个政策
更新,下一个 reminder_add 或者说 reminder_cancel,或重新启动。 A 类
在被拒绝或失败之后,反复审判一次,
所以这种推力不能阻止它 在主机接收之前, 提醒文件
保持原样,所以当服务器停止时,有人的推力还在外出,或者
坠机,下次再起火 如果东道主真的采取了这样的
经纪人听到提醒..
第二次,当它再次发送.
静态模式
静静的叮当是空的 push/event 携带主机的无声-心跳
标记: 特性集 heartbeat, (中文(简体) ), origin.source: "heartbeat", (中文(简体) ),
origin.silent: true,没有内容。 主持人把它变成一个私人的钟声
仅当 两者 其中:
- 主机是代理框架 0.20.0 或以后时间,包括静静心跳 警报(aima-研究/代理框架#216);
- 此服务器在 id 下配置
heartbeat,则mcpServers键 下面的食谱。 主机与该精确服务器ID上的标记相匹配. 这个 服务器总是正确设置特性集和源字段,但 id 来自于您的配置.
否则标记只是空推取出,里面没有供代理人读取的:
- 拒绝空推的主机 用 JSON- RPC 回答
-32602这些是: 包括aima-研究/代理框架的代理框架发布 第236号. 此服务器然后重新发送在消息模式下选中的选项: 时间戳 配置快报, 与origin.silentFallback: true它记录了 1WARNING每个过程,以及heartbeat_status报告mode=silent (the host refused a silent wake, …)每试一试 先无声. - 旧主机接受空推 和唤醒代理 没有什么新到
读取。 代理人然后经常发明唤醒的原因. 主机没有
广告中的无声觉醒支持, 因此此服务器无法检测到此案件 。 检查
在切换到无声模式之前, 需要同时使用
deliveryMode: "message"不相会的宿主.
管道接线
{
"mcpServers": {
"heartbeat": {
"command": "node",
"args": ["/path/to/heartbeat-mcpl/dist/src/index.js", "--stdio"],
"env": { "HEARTBEAT_CONFIG_FILE": "/path/to/install/data/heartbeat-config.json" },
"enabledFeatureSets": ["heartbeat"]
}
},
"modules": {
"wake": {
"policies": [
{ "name": "heartbeat-wake",
"match": { "scope": ["mcpl:push-event"], "source": "heartbeat" },
"behavior": "always" }
// ... your other policies after
]
}
}
}
醒悟政策必须先于任何会跳过的政策 mcpl:push-event编号
(例如a) discord-ambient 跳过规则),因为大门是一等胜.
MCPL 0.5: 主机必须发送初始政策作为请求
此服务器执行 MCPL 0. 5 谈判后的政策 更改部署 合同它不再有希望地推动.
SPEC § 5.3,直到初始策略交换完成服务器 MUST 处理每个
无法使用的能力依赖行为——以及第6.7 a条 featureSets/update
通知不能确定准备状态因此,一个东道主必须在 initialize数字 :
// Host → server, a Request (note the id), even when nothing is enabled or disabled
{ "jsonrpc": "2.0", "id": 7, "method": "featureSets/update",
"params": { "effectiveCapabilities": ["tools", "pushEvents"],
"enabled": ["heartbeat"] } }
,并读回降解收据(第6.7节):
{ "accepted": true, "mode": "full", "unavailableFeatures": [], "notes": [] }
effectiveCapabilities 唯一许可名单(第5.4节)和 没有路径就是拒绝。 。 。 .
奥米 pushEvents 编辑 heartbeat 特性集已禁用: 工具继续回答, 但否
唤醒是永远的 收据上说得很清楚, heartbeat_status 报告
delivery=BLOCKED (…),日志上写着为什么每个心跳都下降
许多提醒不会开火.
0:5前宿主的症状 ——服务器起动了,工具起作用了,再也没有醒来. 检查日志 :
WARNING: initial policy has still not arrived as a Request. …
suppressed heartbeat push/event — host sent featureSets/update only as a Notification, …
或者,来自一个完全没有政策寄来的东道主:
suppressed heartbeat push/event — no valid featureSets/update Request in force (none yet, or the last was malformed); …
这意味着主机作为通知(或根本不是)发送政策,必须更新 在此之前,该服务器可以发送任何东西.