Uptime Kuma Connector 为大猫而生

几天前,我在 GitHub 发布了一个插件,名为 Uptime Kuma Connector,用于 Cheshire Cat AI,又名 Stregatto,也称为 大猫。安装后,它可以回答如下类型的问题:

  • 服务 XYZ 是否在线?
  • 为什么我无法连接到 XYZ(网站)?
  • XYZ 网站是否可用?
  • 这是我的问题还是服务的问题?

为了进行这些检查,插件会连接到一个 Uptime Kuma 实例并查询它,确认所请求的服务或网站是否正常运行。

插件如何工作?

插件向 Stregatto 暴露了一个工具,service_status()。当用户输入“我无法访问 Esse3”时,模型会调用该工具,推断请求中的服务名称,并以服务名称作为参数调用该工具。

此时插件会:

  • 读取 Uptime Kuma 实例的 /metrics 端点,并使用 API key 进行认证;
  • 通过配置的 别名,精确名称,最后是包含关系(每边至少3个字符)来解析用户请求的名称对应一个或多个监控项;
  • 返回给模型 类似“系统可用” 的一句话(而非需要解析的 JSON)。

我选择使用 /metrics 而非 API,因为 Uptime Kuma 没有通用的 REST API,状态页面需要公开数据,而 /metrics 受密钥保护,且包含所有所需信息。

服务状态绝不会“凭空捏造”,最多是无法获取。可能的结果有四种:

  • known:服务被识别且状态已知(运行中、宕机、待定、维护中);
  • not_monitored:没有匹配的监控项,插件明确告诉模型 不要 推断服务正常;
  • ambiguous:匹配多个监控项,建议询问用户具体指哪个;
  • unknown:配置缺失、实例不可达或响应无法解析。

插件是 只读 的,不会对 Uptime Kuma 及其监控项做任何修改。

安装与配置

Uptime Kuma 中:进入 Settings > API Keys > Add API Key,创建一个 只读 的 API 密钥。请立即复制,因为 Kuma 不会再次显示该密钥。

Cheshire Cat AI 中:进入插件页面,搜索 Uptime Kuma Connector,点击 安装,然后点击 配置,最后填写配置参数。

插件的所有设置都在管理面板中:

  • 实例 URL:仅填写基础 URL,如 https://kuma.example.org。若为空,连接器将被禁用;
  • API key:上面创建的密钥;
  • 别名映射(可选):每行一条,格式为 U-GOV, UGOV: 12,左侧是用户使用的名称,右侧是监控项 ID。用于服务的“人类”名称与监控名称不匹配的情况——几乎总是如此;
  • 最大响应大小(KiB)超时(秒):安全限制,默认分别为 1024 KiB 和 2 秒。

小提示:在大猫的设置中,procedural_memory_k 必须 至少为 1,否则工具永远不会被调用,插件看起来像是无效的。

使用示例

来自 Stregatto 查询界面:

以下是这些查询产生的日志示例:

总结

这是一个可以在多种场景中复用的产品;我们用它构建了一个基于 RAG 系统的 帮助台聊天机器人,每天都会多次收到“服务宕机了吗?”的问题,而正确答案并不在任何索引文档中。

该插件采用 GPL-3.0 许可,任何人都可以下载、安装和修改。唯一依赖的是 httpx,但它已包含在 Cheshire Cat AI 核心中,实际上无需额外安装。

如需更多说明或有修改建议,欢迎联系我,或者更好的是,直接在 GitHub 上提交 issue。

 

来源与参考

*** 注意:本文档是通过 n8n 和 OpenAI 自动翻译生成的。原文版本为意大利语。

1 day ago

Leave a Reply

Your email address will not be published. Required fields are marked *

评论审核已启用。您的评论可能需要一段时间后才能被显示。