📦 查询设备事件
v1.0.0调用 ai-open-gateway 的事件查询接口 POST /api/event/query,支持自然语言查询设备事件,返回 AI 摘要和事件列表。 使用场景:需要查询设备检测到的事件、了解某段时间内的活动情况,例如有没有人出现、有没有车开过、我的猫去哪里了等自然语言问题。 ⚠️ 需设置 AI_GATE...
0· 93·0 当前·0 累计
安全扫描
OpenClaw
安全
high confidence该技能与其声明目的(查询 ai-open-gateway 设备事件)内部一致,仅需预期的 API key 与 python;存在轻微实现/文档不一致,但无恶意迹象。
评估建议
该技能似乎实现了其声称的功能:调用 AI 网关事件查询 API 并返回 JSON 供 agent 格式化。在安装前,请确保:(1) 提供最小权限的 AI_GATEWAY_API_KEY(尽可能使用仅限事件查询的密钥);(2) 优先通过环境变量传递密钥,并设置 AI_GATEWAY_NO_ENV_FILE=true 以避免使用共享的 ~/.openclaw/.env 回退;(3) 验证 AI_GATEWAY_HOST 指向预期的可信域名;(4) 生产环境不要设置 AI_GATEWAY_VERIFY_SSL=false;以及 (5) 注意 SKILL.md 展示规则(例如去除 device_id 前缀、链接格式化和最大显示数量)是 agent 的责任——发货的脚本将结果截断为 3 条,与文档中的 10 条显示规则不同,因此请确认您期望的显示行为。...详细分析 ▾
✓ 用途与能力
名称/描述、所需二进制文件(python3)和所需环境变量(AI_GATEWAY_API_KEY)与调用 HTTP API 查询设备事件的功能一致。声明的回退配置路径(~/.openclaw/.env)在 SKILL.md 中有文档说明,代码也使用了该路径。
ℹ 指令范围
SKILL.md 将行为限制为 POST /api/event/query 并为 agent 指定严格的展示规则;脚本仅调用该端点并输出 JSON。需要注意的是存在两个不一致:(1) SKILL.md 的显示指南提到当存在超过 10 条事件时最多显示 10 条,但脚本在打印前将事件截断为 MAX_EVENTS=3;(2) SKILL.md 要求在显示时去除 device_id 的 'xxxxS_' 前缀,但脚本不会修改 device_id(它返回 API JSON 并期望 agent 格式化)。这些是实现/协调不匹配,不是数据外泄的证据。
✓ 安装机制
没有安装规范;这是一个依赖第三方库 httpx 的指令+脚本技能。脚本检查 httpx 是否存在,并指导用户如何通过 pip 安装,而不是下载任意代码。没有使用外部下载 URL 或归档提取。
ℹ 凭证需求
仅需要 AI_GATEWAY_API_KEY(主要凭证),这与网关 API 调用的需求相称。该技能将 ~/.openclaw/.env 作为有文档说明的回退配置进行读取——这个共享文件回退是一种便利,但会在共存的技能之间带来潜在的凭证共享风险;SKILL.md 明确警告在生产环境中使用环境变量,并提供 AI_GATEWAY_NO_ENV_FILE 来禁用回退。另请注意 AI_GATEWAY_VERIFY_SSL 可以禁用 TLS 验证(文档说明仅限开发环境使用)。
✓ 持久化与权限
always 为 false,该技能不会修改其他技能或系统级配置。它仅读取共享的回退文件和环境变量;不会写入持久化设置或请求提升权限。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.02026/3/23
Closeli API event query 技能首次发布 - 提供命令行工具,通过 /api/event/query 以自然语言查询设备事件 - 返回结构化 AI 摘要与格式化事件列表,含详细的用户输出显示规则 - 支持环境变量或回退配置文件认证,含关键安全与配置指南 - 仅依赖 python3、httpx - 按严格输出策略处理错误码、空结果与事件格式 - 适用于指定日期范围内跨设备活动检测等场景
● 无害
安装命令
点击复制官方npx clawhub@latest install closeli-query-event
镜像加速npx clawhub@latest install closeli-query-event --registry https://cn.longxiaskill.com
技能文档
---|----------|----------| | {time} | {ai_events 用逗号连接} | {ai_scene} |
在表格之后,逐条展示每个事件的缩略图链接: 📷 {time} - {ai_events} 查看截图
关键规则:
- device_id 必须去掉
xxxxS_前缀再展示 - pic_url 必须用
查看截图Markdown 链接格式输出 - 不得使用
图片语法(部分客户端不支持内联图片渲染) - 不得输出裸 URL 文本
- 超过 10 条只展示前 10 条,提示总数
- 当
events为空数组时,回复:"查询时间范围内没有匹配的事件。" - 当
code != 0时,回复:"接口调用失败,错误码 {code},原因:{message}"
前置依赖
脚本依赖 httpx。如果未安装,脚本会提示python3 -m pip install httpx。 配置声明
本 skill 依赖以下配置项,agent 和用户必须在运行前确认已正确配置。必需配置
| 配置项 | 传递方式 | 说明 | |--------|----------|------| | AI_GATEWAY_API_KEY | 环境变量(推荐)、~/.openclaw/.env(fallback)、命令行 --api-key | API 密钥,用于接口鉴权。脚本按此优先级自动获取 | 可选配置
| 配置项 | 传递方式 | 默认值 | 说明 | |--------|----------|--------|------| | AI_GATEWAY_HOST | 环境变量、~/.openclaw/.env | https://ai-open-gateway.closeli.cn | 网关地址 |
| AI_GATEWAY_VERIFY_SSL | 环境变量 | true | 设为 false 可禁用 TLS 证书验证(仅限开发环境) |
| AI_GATEWAY_NO_ENV_FILE | 环境变量 | false | 设为 true 可禁用 ~/.openclaw/.env fallback 读取(生产环境推荐) | Fallback 配置路径
脚本默认会读取~/.openclaw/.env 文件作为 fallback 配置源。该文件为所有 skill 共享,格式为 KEY=VALUE(每行一条)。生产环境必须设置 AI_GATEWAY_NO_ENV_FILE=true 禁用此 fallback,改为通过环境变量直接传递所有配置。 安全注意事项
- 共享凭证文件
~/.openclaw/.env可被同一用户下所有 skill 读取。生产环境必须通过环境变量传递 API_KEY,不得依赖共享凭证文件 - TLS 证书验证默认启用,不得在生产环境禁用(禁用会导致中间人攻击风险,攻击者可截获 API_KEY 和设备数据)
- 使用前必须确认 AI_GATEWAY_HOST 指向可信域名
- 必须使用最小权限的 API_KEY,避免复用高权限凭证。本 skill 仅需事件查询权限
网络访问声明
本 skill 仅访问以下端点(均为 AI_GATEWAY_HOST 下的路径): | 端点 | 方法 | 用途 | |------|------|------| | /api/event/query | POST | 自然语言查询设备事件 |脚本不访问任何其他网络资源。
快速开始
``bash
python3 query_events.py \
--device-ids "xxxxS_aabbccddeeff" \
--start-date "2026-03-16" \
--end-date "2026-03-18" \
--query "今天有没有人来过"
` 请求格式
请求体
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| device_ids | string[] | 是 | - | 设备 ID 列表,不能为空。格式: xxxxS_ |
| start_date | string | 是 | - | 查询开始日期,格式 yyyy-MM-dd |
| end_date | string | 是 | - | 查询结束日期,格式 yyyy-MM-dd |
| query | string | 是 | - | 自然语言查询内容 |
| locale | string | 否 | "zh_CN" | 语言区域,影响 AI 摘要语言 | 响应格式
`json
{
"code": 0,
"message": "success",
"request_id": "<32位请求追踪ID>",
"data": {
"summary": "今天共检测到3次有人出现的事件。",
"events": [...],
"_total_count": 15
}
}
` data 字段
| 参数名 | 类型 | 说明 |
|--------|------|------|
| summary | string | AI 生成的事件摘要文本 |
| events | array | 事件列表(脚本已裁剪到前 3 条) |
| _total_count | integer | 事件总数(脚本附加字段) | events 数组元素
| 参数名 | 类型 | 说明 |
|--------|------|------|
| device_id | string | 设备 ID |
| event_id | string | 事件 ID |
| time | string | 格式化时间字符串 |
| ai_events | string[] | AI 识别的事件标签列表 |
| ai_scene | string | AI 描述的场景文字 |
| pic_url | string | 事件缩略图短链接(可能为空) | 错误码
| 错误码 | HTTP 状态码 | 说明 |
|--------|------------|------|
| 1001 | 401 | 未提供 api_key |
| 1002 | 401 | api_key 无效或已禁用 |
| 2001 | 400 | 缺少必要参数 |
| 3001 | 502 | 网关内部服务调用失败 |
| 5000 | 500 | 内部错误 | 注意事项
- device_ids 不能为空数组,否则返回错误码 2001
start_date 和 end_date 格式为yyyy-MM-dd`- query 支持自然语言
- 全局超时为 120 秒