核心用法
Rails Agent Gateway 技能是 OpenClaw 与 Ruby on Rails 应用之间建立安全数据通道的桥梁。该技能与 `agent_gateway` gem 配合使用,通过标准 REST API 从 Rails 应用的 /agent-gateway/:secret/briefing 端点拉取聚合数据。
典型工作流程
1. 环境验证:检查 AGENT_GATEWAY_TOKEN 和 AGENT_GATEWAY_SECRET 是否已配置
2. 连通性测试:执行非破坏性简报拉取,验证双因素认证(路径密钥 + Bearer Token)
3. 数据获取:按时间窗口(1d/7d/30d/90d/1y/all)和资源类型(users/orders 等)拉取数据
4. 结果汇总:生成记录计数、聚合统计(count/sum/avg)和最新记录快照
5. 自动化准备:输出适合 cron 任务或 CI/CD 管道的命令片段
认证机制
采用双层安全设计:
- 路径密钥(Path Secret):嵌入 URL 中,错误返回 404(隐匿端点存在性)
- Bearer Token:通过
Authorization头部传输,错误返回 401
两者均使用 secure_compare 时序安全比较,有效防御时序攻击。
调用方式
推荐优先使用本地辅助脚本:
/home/node/.openclaw/workspace/scripts/rails-gateway-briefing --period 7d --resources users,orders
或直接 curl(生产环境需妥善保管令牌):
curl -H "Authorization: Bearer $AGENT_GATEWAY_TOKEN" \ "https://myapp.com/agent-gateway/$AGENT_GATEWAY_SECRET/briefing?period=7d"
显著优点
- 标准化集成:遵循 RESTful 设计,与 Rails 生态无缝兼容
- 安全设计:双因素认证 + 时序安全比较 + 令牌不在输出中暴露
- 灵活查询:支持时间窗口、资源筛选、聚合计算和记录限制
- 自动化友好:输出格式适合脚本化调用和定时任务
潜在局限
- 依赖外部 gem:Rails 端必须安装并配置
agent_gateway,无法独立工作 - 只读限制:设计为拉取(pull)模式,不支持写入操作
- 网络依赖:需要 Rails 应用可公开访问,内网部署需额外配置
- 令牌管理:环境变量依赖增加了运维复杂度,轮转令牌时需同步更新两端
适合人群
- 使用 Rails 作为后端、需要向 OpenClaw 暴露结构化数据的开发团队
- 需要自动化生成运营报告或数据摘要的技术运维人员
- 希望在不开放数据库直接访问的前提下实现安全数据通道的架构师
常规风险
- 令牌泄露风险:Bearer Token 具备完整读取权限,需严格控制环境变量访问
- 端点探测:尽管 404 错误隐藏端点,但 URL 模式仍可能被猜测
- 数据范围失控:
period=all或大量资源组合可能导致响应过大,建议始终使用--latest限制 - 依赖维护:gem 版本更新时需同步检查兼容性
安全承诺
- 绝不回显或记录 live token
- 命令示例中自动脱敏敏感参数
- 仅执行只读操作(
briefing端点),无写权限
> 注意:本技能需与 Rails 端的 agent_gateway gem 配合使用,单方面配置无法生效。