端点指南
在终端里和您的机器人聊天
通过 OpenClaw Launch 实例卡片上的“端点”,使用 curl、脚本或终端客户端聊天。OpenClaw 和 Hermes Agent 均可通过这个受限的 OpenAI 兼容 API 使用。
需要准备什么
机器人必须处于运行状态,并且账户有有效订阅或试用。打开实例卡片,点击“端点”,选择“桌面应用”,然后启用访问。请复制窗口中显示的基础 URL、API 密钥和模型。
保护好端点密钥
API 密钥可以运行您的机器人。请勿将它放入截图、支持消息、源代码或公开仓库。不再需要时,请从实例卡片停用端点。
三个连接参数
“端点”窗口;地址已经以 /v1 结尾“端点”窗口;作为 Bearer Token 使用“端点”窗口;通常是 hermes-agent 或 openclaw/default快速终端设置
保存连接参数
请在 Bash 或 Zsh 中按窗口显示的内容填写基础 URL 和模型。隐藏输入可以避免 API 密钥写入 Shell 历史;下面的 curl 示例还会通过临时输入流传递密钥,而不是把它放进进程参数。
ShellBOT_BASE_URL='PASTE_BASE_URL' BOT_MODEL='PASTE_MODEL' printf 'Endpoint API key: ' read -s BOT_API_KEY printf '\n'检查连接
先请求 models 路由。成功返回模型列表,说明 URL、密钥、端点状态以及正在运行的机器人都可以正常访问。HTTP 错误会保留响应正文,并让 curl 以失败状态退出。
curlcurl --fail-with-body -sS "$BOT_BASE_URL/models" \ --header @<(printf 'Authorization: Bearer %s\n' "$BOT_API_KEY")用 curl 发送一条消息
基础 URL 已经包含 /v1,因此只需追加 /chat/completions。此请求会返回标准的 OpenAI 兼容 JSON 响应。
curlcurl --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 + jqset -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'开始交互式终端聊天
单次 curl 请求不会记住之前的对话。下面这个无需安装依赖的 Python 脚本会在内存中保存 messages 数组,并在每一轮重新发送。您可以将它粘贴到任何装有 Python 3 的终端中。
Python 3python3 -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 或关闭它。
unset BOT_API_KEY BOT_BASE_URL BOT_MODEL支持的路由
实例卡片端点只开放兼容聊天客户端所需的两个路由:
GET /v1/models — 检查连接并获取可用模型 ID。POST /v1/chat/completions — 发送消息,支持标准 JSON 或 SSE 流式响应。故障排查
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 密钥和实例凭据。