OpenClaw HTTP Agent 桥接
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 将技能 @user_2a52e6b3/agent-easy-http 安装到 AI 助手中。
技能介绍
它解决什么问题
很多团队把 OpenClaw 跑在容器或 Pod 里, agent 本身具备文件读写、shell 执行、消息发送等能力, 但外部服务很难直接调用它。直接在容器里跑 openclaw agent CLI 意味着每次调用都要冷启动, 实测 embedded 启动约 90 秒, 还容易把多个请求串进同一个 session, 互相污染。
agent-easy-http 的思路是: 不自己实现一套 agent 执行引擎, 而是把 OpenClaw 原生的 /hooks/agent 端点包一层薄代理, 让外部系统通过 HTTP(S) POST 一个自然语言 message, agent 自己决定调用哪些 Skill。v3.0 架构(内部代号, 与发布版本号 1.0.x 是两个维度)相对 v2.0 的改动集中在执行引擎和 session 隔离: hook 触发是毫秒级, 每个请求自动分配独立的 hook: session, 主会话不受干扰。
核心能力与关键步骤
- API Key 鉴权: 所有接口要求
X-API-Key, init wizard 生成 32 字符随机 key。 - 两个入口:
/agent/run接收开放式 message, 由 agent 自行决策;/skills/{name}/run直接触发指定 skill, 自动注入 SKILL.md 并做加固。 - 结果轮询:
/agent/run立即返回run_id, 客户端用/result/{run_id}轮询, 实测触发后 4-6 秒结果可读, 建议 4 秒后首次查询、每 1.5 秒轮询。 - Prompt 注入加固: 用户 message 被分隔符和反注入指令包裹; OpenClaw 内层还会加
EXTERNAL_UNTRUSTED_CONTENT包装。 - 技能管控:
deny_skills黑名单(推荐拒掉有副作用或会对外发消息的 skill),expose_skills白名单(空=全暴露)。 - Agent 路由:
default_agent_id设默认路由,allowed_agent_ids控制调用方可指定的 agent 范围。 - watchdog: 每 30 秒检查 server, 挂了自动重启; hooks 配置被外部覆盖时也会触发 init_wizard 修复。
- 传输安全: 默认 HTTP 明文, 需要时跑
gen_cert.py --san auto生成 SAN 证书切到 HTTPS。
适用边界与注意点
这个 skill 本质是把一个具备本机能力的 agent 暴露成远程控制面, 风险边界要清楚:
/agent/run是通用入口, 任何通过鉴权的调用方都能发任意 prompt, 包括发消息、改数据等有副作用的操作。端口只能对可信调用方开放。- 默认 HTTP 不加密, X-API-Key、prompt、执行结果均明文传输。仅 localhost 或可信内网可接受, 监听
0.0.0.0或跨主机务必开 HTTPS, 不要在生产用curl -k跳过证书校验。 - init / watchdog 会写入并自愈
~/.openclaw/openclaw.json的 hooks 配置, 这是平台级改动; 管理员手动回退后 watchdog 可能重新应用, 属于预期的持久化行为。 GET /agents会返回内部所有 agent 的 ID 和名称, API key 泄露时可被枚举。不需要动态查询时, 把allowed_agent_ids设为固定白名单而非["*"]。allowRequestSessionKey=true是 OpenClaw 全局配置, 影响所有/hooks/agent调用方, 不只本 skill。受allowedSessionKeyPrefixes=["hook:"]限制, 外部只能用hook:前缀, 无法污染 webui/cron 等 session。
另一个定位问题: 如果你只需要"让外部直接跑某个指定 skill 并传结构化参数", 而不是让 agent 自由决策, skill-to-http-flash 更合适; 两者互补不重叠。
使用场景
- 团队把 OpenClaw agent 跑在容器 Pod 里,想让外部服务用 HTTP POST 一段自然语言查询内部数据,拿回 agent 的处理结果。
- 部署 agent 供团队内调用,但需要把会对外发消息或改数据的高风险 Skill 拉进 deny_skills 黑名单,阻止未经审核的调用。
- 外部服务需要指定由哪个 agent 处理本次任务,通过 allowed_agent_ids 白名单限定可选范围并校验。
- agent 服务要暴露到不太可信的网络段,需要用 TLS 和自签 SAN 证书保护 agent 远程调用链路。
适合人员
- 后端服务开发者:需要在 OpenClaw 容器旁跑一个常驻代理,让团队的微服务通过 HTTP 调用 agent 跑任务,避免自己实现冷启动逻辑。
- 平台运维:负责配置 API Key 鉴权、HTTPS 和 watchdog 自愈,保证 agent 服务长期稳定运行不挂掉也不被人乱调。
- 内部工具负责人:要把 agent 能力开放给其他团队的服务,但必须用 deny_skills 挡住会发消息或改数据的技能,防止误触发。
- 安全工程师:审计 agent 暴露面,控制 allowed_agent_ids 白名单与 session 隔离,降低远程控制面风险。