深度

OpenClaw API 开发指南:用 REST API 和 Webhook 把 AI 助手集成到任意系统

OpenClaw API 完整开发文档:Gateway REST API 端点说明、会话管理 API、消息发送 API、Webhook 接收外部事件、MCP(Model Context Protocol)服务器集成、API 认证方式、限流配置,以及将 OpenClaw AI 能力嵌入自有应用的完整代码示例。

2026/3/174分钟 阅读ClaudeEagle

OpenClaw Gateway 暴露了一套 REST API,让你可以从任意外部系统调用 AI 助手、 触发工作流或接收事件通知。本文是完整的开发者参考。

API 基础信息

默认 Base URL:http://localhost:18789 认证方式:Bearer Token(在 openclaw.json 中配置) 内容类型:application/json

查看 Gateway 状态:

bash
curl http://localhost:18789/health
# 返回:{"status":"ok","version":"1.4.2"}

认证配置

~/.openclaw/openclaw.json 中设置 API Token:

json
{
  "api": {
    "enabled": true,
    "token": "your-secret-api-token",
    "allowedOrigins": ["http://localhost:3000", "https://your-app.com"]
  }
}

所有 API 请求需携带认证头:

bash
curl -H "Authorization: Bearer your-secret-api-token"      http://localhost:18789/api/sessions

核心 API 端点

发送消息给 AI

bash
# POST /api/message
curl -X POST http://localhost:18789/api/message   -H "Authorization: Bearer your-token"   -H "Content-Type: application/json"   -d '{
    "message": "帮我分析这段代码的性能瓶颈",
    "sessionKey": "dev-session-001"
  }'

# 响应:
{
  "success": true,
  "reply": "分析如下:...",
  "sessionKey": "dev-session-001",
  "usage": { "inputTokens": 245, "outputTokens": 512 }
}

会话管理

bash
# 列出所有会话
GET /api/sessions

# 获取特定会话历史
GET /api/sessions/{sessionKey}/messages

# 清空会话历史
DELETE /api/sessions/{sessionKey}

# 创建新会话
POST /api/sessions
{
  "label": "我的开发会话",
  "model": "claude-sonnet-4-5"
}

触发事件

bash
# POST /api/trigger  —— 触发自定义事件
curl -X POST http://localhost:18789/api/trigger   -H "Authorization: Bearer your-token"   -H "Content-Type: application/json"   -d '{
    "event": "deploy_complete",
    "data": {
      "version": "v2.3.1",
      "environment": "production",
      "deployer": "CI/CD"
    }
  }'

在 SOUL.md 中处理该事件:

markdown
## 事件处理

### deploy_complete 事件
收到后:
1. 发 Telegram 通知:版本 + 环境 + 操作人
2. 在 Notion 「发布记录」中创建条目
3. 更新 HEARTBEAT.md 中的部署状态

主动推送通知

bash
# POST /api/notify  —— 向指定频道发消息(不经过 AI 处理)
curl -X POST http://localhost:18789/api/notify   -H "Authorization: Bearer your-token"   -H "Content-Type: application/json"   -d '{
    "channel": "telegram",
    "message": "🚨 服务器 CPU 超过 90%,请立即查看!",
    "target": "chat_id_或_用户名"
  }'

流式响应(Streaming)

对于长回复,使用 Server-Sent Events(SSE)流式接收:

javascript
// Node.js 示例
const EventSource = require('eventsource');

const es = new EventSource(
  'http://localhost:18789/api/message/stream?message=写一首诗',
  { headers: { 'Authorization': 'Bearer your-token' } }
);

es.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === 'text_delta') {
    process.stdout.write(data.text);
  } else if (data.type === 'end') {
    console.log('
完成');
    es.close();
  }
};

MCP(Model Context Protocol)集成

OpenClaw 支持作为 MCP Host,让 AI 访问 MCP 服务器提供的工具:

json
// ~/.openclaw/openclaw.json
{
  "mcp": {
    "servers": [
      {
        "name": "filesystem",
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
      },
      {
        "name": "github",
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-github"],
        "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxx" }
      }
    ]
  }
}

配置后,Claude 可以直接使用 MCP 工具:

你:帮我在 GitHub 上创建一个新 Issue,标题是「修复登录 Bug」 Claude:[调用 github MCP 工具] 已创建 Issue #45:修复登录 Bug

在应用中嵌入 OpenClaw

Python SDK 示例

python
import requests

class OpenClawClient:
    def __init__(self, base_url="http://localhost:18789", token="your-token"):
        self.base_url = base_url
        self.headers = {"Authorization": f"Bearer {token}"}

    def chat(self, message: str, session: str = "default") -> str:
        resp = requests.post(
            f"{self.base_url}/api/message",
            headers=self.headers,
            json={"message": message, "sessionKey": session}
        )
        return resp.json()["reply"]

    def notify(self, message: str, channel: str = "telegram"):
        requests.post(
            f"{self.base_url}/api/notify",
            headers=self.headers,
            json={"channel": channel, "message": message}
        )

# 使用
client = OpenClawClient()
reply = client.chat("分析这个错误:" + error_log)
print(reply)

典型集成场景

python
# CI/CD 流水线集成:构建失败时 AI 自动分析
def on_build_failure(build_log: str):
    client = OpenClawClient()
    analysis = client.chat(
        f"这是构建失败日志,分析根本原因并给出修复建议:
{build_log}",
        session="ci-analysis"
    )
    client.notify(f"构建失败分析:
{analysis}")

API 限流配置

防止外部系统滥用 API:

json
{
  "api": {
    "rateLimit": {
      "requestsPerMinute": 60,
      "burstSize": 10
    }
  }
}

来源:OpenClaw 官方文档 - docs.openclaw.ai/gateway

相关文章推荐

深度OpenClaw Webhook 完全指南:接收任意平台事件触发 AI 自动化工作流OpenClaw Webhook 集成完整教程:配置 Webhook 端点接收外部事件、签名验证防伪造、GitHub/Stripe/自定义系统 Webhook 处理、事件解析与路由、基于 Webhook 的自动化工作流设计,以及内网穿透(ngrok/Cloudflare Tunnel)本地调试方案。2026/3/16深度OpenClaw 多 Gateway 架构完全指南:一台机器运行多个独立 AI 助手实例OpenClaw 多 Gateway(Multi-Gateway)架构完整教程:多实例的隔离优势、同一台机器运行多个 Gateway(不同端口/配置文件/workspace)、systemd 管理多个 Gateway 服务、Nginx 虚拟主机为每个实例分配独立域名、API Key 隔离与成本拆分、单机多实例 vs 多机方案对比,以及 Docker Compose 多容器隔离部署方案。2026/3/26深度OpenClaw Hooks 自动化进阶:消息前后的智能拦截、转换与触发机制OpenClaw Hooks(钩子)自动化系统进阶教程:Hooks 的触发时机(before-send/after-receive/on-tool-call)、用 Hooks 拦截消息并修改内容(自动翻译/过滤/格式化)、基于条件的 Hook 触发(渠道过滤/关键词匹配)、Hook 中调用外部 API(Notion 记录/Bark 通知/监控告警)、exec 工具二次确认 Hook,以及 Hooks 与 SOUL.md 和 Standing Orders 的优先级关系详解。2026/3/26深度OpenClaw 插件开发完全指南:从零构建自定义渠道和工具插件OpenClaw 插件(Plugin)开发完整教程:插件类型(渠道插件/工具插件/Provider插件)、插件的目录结构和 package.json 规范、使用 Plugin SDK 开发自定义消息渠道(实现 onMessage/sendMessage 接口)、开发自定义工具(Tool)的函数签名和参数 Schema、本地插件安装与调试(openclaw plugins install ./local-plugin)、发布到 npm 的规范要求(@openclaw/ 命名空间)、插件的权限声明(capabilities)、社区插件列表(Plugin Bundles)获取,以及常见插件开发错误和调试技巧。2026/3/25深度OpenClaw 安全威胁模型深度解析:MITRE ATLAS 框架下的 AI 助手攻防分析OpenClaw 安全架构深度分析:个人助手信任模型(单用户/单 Gateway 边界)、形式化验证的认证逻辑、基于 MITRE ATLAS 框架的 AI 系统威胁分类(直接提示注入/间接提示注入/工具滥用/数据泄露/会话劫持)、多租户共享 Gateway 的风险与安全边界说明、exec/browser/文件工具的权限最小化配置、频道白名单与沙箱配置对应的威胁缓解措施,以及 `openclaw security audit` 命令的使用方法。2026/3/24深度OpenClaw 多模型路由完全指南:30+ 模型提供商接入、智能切换与故障转移OpenClaw 多模型路由系统完整教程:支持的 30+ 模型提供商全览(Anthropic/OpenAI/Gemini/Ollama/OpenRouter/DeepSeek/Qwen/GLM 等)、provider/model 格式的模型指定方式、按渠道/Agent/任务类型设置不同默认模型、Model Failover 故障转移配置(主模型失败自动切换备用模型)、Claude Max API Proxy 接入方式、本地模型(Ollama/vLLM)与云端模型混用策略,以及 Token 限制和费用控制实践。2026/3/24