名称: hookaido
描述: 操作Hookaido的入站/出站webhook流程、队列分诊、MCP工作流和gRPC-pull工作器。当任务涉及Hookaidofile编写、hookaido CLI命令(run、config fmt、config validate、mcp serve)、通过HTTP或gRPC的拉取操作(dequeue/ack/nack/extend)、Admin API积压/DLQ处理,或webhook/webhooks入口和交付的生产环境加固时使用。
元数据: {“openclaw”:{“主页”:“https://github.com/nuetzliches/hookaido",“要求”:{“二进制文件”:[“hookaido”]},“安装”:[{“id”:“download-darwin-amd64”,“类型”:“download”,“操作系统”:[“darwin”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_darwin_amd64.tar.gz”,“压缩包”:“tar.gz”,“解压”:true,“剥离组件”:1,“目标目录”:“~/.local/bin”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (macOS amd64)”},{“id”:“download-darwin-arm64”,“类型”:“download”,“操作系统”:[“darwin”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_darwin_arm64.tar.gz",“压缩包”:“tar.gz”,“解压”:true,“剥离组件”:1,“目标目录”:“~/.local/bin”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (macOS arm64)”},{“id”:“download-linux-amd64”,“类型”:“download”,“操作系统”:[“linux”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_linux_amd64.tar.gz",“压缩包”:“tar.gz”,“解压”:true,“剥离组件”:1,“目标目录”:“~/.local/bin”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (Linux amd64)”},{“id”:“download-linux-arm64”,“类型”:“download”,“操作系统”:[“linux”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_linux_arm64.tar.gz",“压缩包”:“tar.gz”,“解压”:true,“剥离组件”:1,“targetDir”:“~/.local/bin”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (Linux arm64)”},{“id”:“download-windows-amd64”,“类型”:“download”,“操作系统”:[“win32”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_windows_amd64.zip",“压缩包”:“zip”,“解压”:true,“目标目录”:“~/.openclaw/tools/hookaido”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (Windows amd64)”},{“id”:“download-windows-arm64”,“类型”:“download”,“操作系统”:[“win32”],“url”:“https://github.com/nuetzliches/hookaido/releases/download/v1.5.0/hookaido_v1.5.0_windows_arm64.zip",“压缩包”:“zip”,“解压”:true,“目标目录”:“~/.openclaw/tools/hookaido”,“二进制文件”:[“hookaido”],“标签”:"下载 hookaido v1.5.0 (Windows arm64)”}]}}
Hookaido
概述
采用配置优先的工作流来实施和故障排除Hookaido:编辑Hookaidofile,验证,运行,测试入口/拉取流程,然后诊断队列健康状况和DLQ行为。
使用保守、可逆的更改,并在运行时操作前进行验证。
工作流
- 确认目标拓扑:入站+拉取(HTTP或gRPC)、推送出站或内部队列。
- 选择运行时模式并确保
hookaido存在于工具执行的位置。- 主机二进制模式:使用
metadata.openclaw.install中的安装操作。 - 主机备用方案:运行
bash {baseDir}/scripts/install_hookaido.sh(固定版本v1.5.0,SHA256验证)。 - Docker沙箱模式:使用已包含
hookaido的沙箱镜像(首选),或通过agents.defaults.sandbox.docker.setupCommand在沙箱内安装。 - 保留主机安装操作作为备用方案,并满足
metadata.openclaw.requires.bins要求。
- 主机二进制模式:使用
- 最小化地检查和更新
Hookaidofile。 - 在启动或重新加载前运行格式化和验证:
hookaido config fmt --config ./Hookaidofilehookaido config validate --config ./Hookaidofile
- 启动运行时并验证健康状况:
hookaido run --config ./Hookaidofile --db ./.data/hookaido.dbcurl http://127.0.0.1:2019/healthz?details=1
- 验证端到端行为:
- 入口请求被接受并排队
- 消费者
dequeue/ack/nack/extend路径正常工作(HTTP拉取,以及启用时的gRPC拉取)
- 对于事件,首先检查积压和DLQ,然后再进行变更。
任务操作手册
配置入口和拉取消费
- 定义具有明确身份验证和拉取路径的路由(HTTP拉取,可选的gRPC拉取工作器监听器)。
- 将密钥保存在环境变量/文件引用中,切勿内联。
- 验证路由和全局拉取身份验证是否一致。
- 使用真实的webhook负载和dequeue/ack周期进行测试。
推荐此基线配置:
ingress {
listen :8080
}
pull_api {
listen :9443
grpc_listen :9943 # 可选的gRPC拉取工作器监听器
auth token env:HOOKAIDO_PULL_TOKEN
}
/webhooks/github {
auth hmac env:HOOKAIDO_INGRESS_SECRET
pull { path /pull/github }
}
配置推送交付
- 仅当服务可接受入站连接时,才使用推送交付。
- 明确设置超时和重试策略。
- 验证下游的幂等性,因为交付是至少一次。
/webhooks/stripe {
auth hmac env:STRIPE_SIGNING_SECRET
deliver "https://billing.internal/stripe" {
retry exponential max 8 base 2s cap 2m jitter 0.2
timeout 10s
}
}
操作队列和DLQ
- 从健康详情和积压端点开始。
- 在重新排队或删除之前检查DLQ。
- 如果要重新排队大量项目,请解释预期影响和回滚路径。
- 对于变更性的管理调用,要求清晰的操作员原因字符串。
使用:
GET /healthz?details=1GET /backlog/trendsGET /dlqPOST /dlq/requeuePOST /dlq/delete
为AI操作使用MCP模式
- 默认使用
--role read进行诊断。 - 仅在明确的操作员意图下启用变更:
--enable-mutations --role operate --principal <身份>
- 仅为管理工作流启用运行时控制:
--enable-runtime-control --role admin --pid-file <路径>
- 为变更调用包含
reason,并保持其具体性。
验证清单
hookaido config validate在运行时启动/重新加载前返回成功。- 健康端点可达,并报告预期的队列/后端状态。
- 拉取消费者可以使用有效令牌进行
dequeue、ack、nack和extend(HTTP和可选的gRPC传输)。 - 对于推送模式,重试/超时行为已明确配置。
- 任何DLQ变更都是范围明确、理由充分且有记录的。
安全规则
- 不要为了“让测试通过”而禁用身份验证。
- 在只读诊断之前,不要建议直接变更。
- 将队列操作视为至少一次;要求幂等的处理器。
- 将密钥保存在
env:或file:引用中。
参考资料
- 阅读
references/operations.md以获取命令片段和API负载模板。