指南

端点指南

在终端里和您的机器人聊天

通过 OpenClaw Launch 实例卡片上的“端点”,使用 curl、脚本或终端客户端聊天。OpenClaw 和 Hermes Agent 均可通过这个受限的 OpenAI 兼容 API 使用。

需要准备什么

机器人必须处于运行状态,并且账户有有效订阅或试用。打开实例卡片,点击“端点”,选择“桌面应用”,然后启用访问。请复制窗口中显示的基础 URL、API 密钥和模型。

保护好端点密钥

API 密钥可以运行您的机器人。请勿将它放入截图、支持消息、源代码或公开仓库。不再需要时,请从实例卡片停用端点。

三个连接参数

参数获取位置
基础 URL“端点”窗口;地址已经以 /v1 结尾
API 密钥“端点”窗口;作为 Bearer Token 使用
模型“端点”窗口;通常是 hermes-agent 或 openclaw/default

快速终端设置

  1. 保存连接参数

    请在 Bash 或 Zsh 中按窗口显示的内容填写基础 URL 和模型。隐藏输入可以避免 API 密钥写入 Shell 历史;下面的 curl 示例还会通过临时输入流传递密钥,而不是把它放进进程参数。

    Shell
    BOT_BASE_URL='PASTE_BASE_URL'
    BOT_MODEL='PASTE_MODEL'
    printf 'Endpoint API key: '
    read -s BOT_API_KEY
    printf '\n'
  2. 检查连接

    先请求 models 路由。成功返回模型列表,说明 URL、密钥、端点状态以及正在运行的机器人都可以正常访问。HTTP 错误会保留响应正文,并让 curl 以失败状态退出。

    curl
    curl --fail-with-body -sS "$BOT_BASE_URL/models" \
      --header @<(printf 'Authorization: Bearer %s\n' "$BOT_API_KEY")
  3. 用 curl 发送一条消息

    基础 URL 已经包含 /v1,因此只需追加 /chat/completions。此请求会返回标准的 OpenAI 兼容 JSON 响应。

    curl
    curl --fail-with-body -sS "$BOT_BASE_URL/chat/completions" \
      --header @<(printf 'Authorization: Bearer %s\n' "$BOT_API_KEY") \
      -H "Content-Type: application/json" \
      -d "{
        \"model\": \"$BOT_MODEL\",
        \"messages\": [
          {\"role\": \"user\", \"content\": \"Hello from my terminal\"}
        ]
      }"
    只显示回复正文如果已安装 jq,下面的 Bash/Zsh 版本既能只显示回复正文,也会保留 curl 错误状态:
    Bash / Zsh + jq
    set -o pipefail
    curl --fail-with-body -sS "$BOT_BASE_URL/chat/completions" \
      --header @<(printf 'Authorization: Bearer %s\n' "$BOT_API_KEY") \
      -H "Content-Type: application/json" \
      -d "{
        \"model\": \"$BOT_MODEL\",
        \"messages\": [
          {\"role\": \"user\", \"content\": \"Hello from my terminal\"}
        ]
      }" | jq -r '.choices[0].message.content'
  4. 开始交互式终端聊天

    单次 curl 请求不会记住之前的对话。下面这个无需安装依赖的 Python 脚本会在内存中保存 messages 数组,并在每一轮重新发送。您可以将它粘贴到任何装有 Python 3 的终端中。

    Python 3
    python3 -c "$(cat <<'PY'
    import json
    from getpass import getpass
    from urllib.error import HTTPError, URLError
    from urllib.request import Request, urlopen
    
    base_url = input("Base URL: ").strip().rstrip("/")
    model = input("Model: ").strip()
    api_key = getpass("API key: ")
    messages = []
    
    print("Chat ready. Use /new to clear history or /exit to quit.")
    
    while True:
        text = input("you> ").strip()
        if not text:
            continue
        if text in {"/exit", "/quit"}:
            break
        if text == "/new":
            messages.clear()
            print("History cleared.")
            continue
    
        messages.append({"role": "user", "content": text})
        payload = json.dumps({
            "model": model,
            "messages": messages,
            "stream": False,
        }).encode()
        request = Request(
            f"{base_url}/chat/completions",
            data=payload,
            headers={
                "Authorization": f"Bearer {api_key}",
                "Content-Type": "application/json",
            },
            method="POST",
        )
    
        try:
            with urlopen(request, timeout=300) as response:
                result = json.load(response)
            answer = result["choices"][0]["message"]["content"]
        except HTTPError as error:
            print(f"HTTP {error.code}: {error.read().decode(errors='replace')}")
            messages.pop()
            continue
        except (URLError, KeyError, IndexError, json.JSONDecodeError) as error:
            print(f"Request failed: {error}")
            messages.pop()
            continue
    
        print(f"bot> {answer}")
        messages.append({"role": "assistant", "content": answer})
    PY
    )"

对话历史如何工作

这些示例由终端客户端管理历史,并在每次请求时重新发送之前的消息,因此同时适用于两个框架。Hermes 端点请求是无状态的;OpenClaw 客户端也可以发送固定的 user 字段来使用服务端会话,但客户端管理历史的兼容性最好。脚本会一直保存历史,直到您输入 /new 或关闭它。

完成后清除 Shell 参数测试完成后,请从当前 Shell 会话中移除 URL、模型和密钥。
Shell
unset BOT_API_KEY BOT_BASE_URL BOT_MODEL

支持的路由

实例卡片端点只开放兼容聊天客户端所需的两个路由:

GET /v1/models — 检查连接并获取可用模型 ID。POST /v1/chat/completions — 发送消息,支持标准 JSON 或 SSE 流式响应。
端点聊天和浏览器 Terminal 不是同一个功能这个端点让您从自己电脑的终端通过 HTTPS 和机器人聊天,它不会打开机器人容器内的 Shell。需要在实例内部执行命令时,请使用实例卡片上的 Terminal 按钮。

故障排查

401 或 invalid_api_key

重新打开“端点”并复制 API 密钥。确认请求头严格为 Authorization: Bearer,Bearer 后有一个空格,然后才是密钥。

404 或 not_found

端点可能已停用,或者 URL 不正确。请从实例卡片启用端点,并使用窗口中显示的完整基础 URL。

403

端点需要有效订阅或试用。如果浏览器客户端报告 origin_not_allowed,请在“端点”窗口选择对应网站;curl 和原生终端客户端不会发送浏览器 Origin。

503 或 instance_not_ready

请启动机器人,等实例卡片显示“运行中”后再试。

429 或 rate_limit_exceeded

请求速度过快。请稍等片刻,并减少并行请求数量。

相关指南

仍然需要帮助?

请把完整状态码和错误文本发给支持团队。所有截图都必须隐藏 API 密钥和实例凭据。

联系支持

从任何终端和机器人聊天

打开控制面板,在运行中的实例上启用“端点”,然后复制三个连接参数。

打开控制面板