@animalabs/heartbeat-mcpl

中文文档
0.4.1发布于 2026/10/28TypeScriptES Module构建来源已验证近 30 天下载 2754

为 Connectome 代理定期自觉MCPL 服务器. 它需要Node.js 22.12.0 或以后.

中文使用文档
文档目录4 节
  1. 提醒
  2. 静态模式
  3. 管道接线
  4. MCPL 0.5: 主机必须发送初始政策作为请求

@ 连接/ 心跳- 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它记录了 1 WARNING 每个过程,以及 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); …

这意味着主机作为通知(或根本不是)发送政策,必须更新 在此之前,该服务器可以发送任何东西.

版本与发布记录

@animalabs/heartbeat-mcpl 共发布 7 个版本,首次发布于 2026/07/13;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.1latest2026/10/2810 天前
0.4.02026/10/1919 天前
0.3.02026/10/1721 天前
0.2.02026/10/1425 天前
0.1.32026/07/143 个月前
0.1.22026/07/143 个月前

关于 @animalabs/heartbeat-mcpl 的常见问题

@animalabs/heartbeat-mcpl 是什么?

为 Connectome 代理定期自觉MCPL 服务器. 它需要Node.js 22.12.0 或以后.

如何安装 @animalabs/heartbeat-mcpl?

在项目目录运行 npm install @animalabs/heartbeat-mcpl,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 heartbeat-mcpl,可以用 npx heartbeat-mcpl 直接运行。

@animalabs/heartbeat-mcpl 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@animalabs/heartbeat-mcpl 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@animalabs/heartbeat-mcpl 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@animalabs/heartbeat-mcpl 可以商用吗?

@animalabs/heartbeat-mcpl 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@animalabs/heartbeat-mcpl 的下载量有多少?

根据 npm 官方下载统计,@animalabs/heartbeat-mcpl 在 2026/10/06 – 2026/11/04 这 30 天内被下载 2,754 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@animalabs/heartbeat-mcpl 还在维护吗?

最新版本 0.4.1 发布于 2026/10/28(10 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/07/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。