docs: Step 1改为自动推导,仅向用户索要两个必填项

- 移除NAPCAT_HOST/QQREBOT_HOST/NEW_AGENT_ID/SHARED_DIR 的询问
- 全部使用默认值:qq-agent, 127.0.0.1, 172.17.0.1:25580, /opt/napcat_shared
- GATEWAY_TOKEN 自动从 ~/.openclaw/openclaw.json 读取
- 仅保留 ADMIN_QQ 和(自动读取失败时的)GATEWAY_TOKEN 两个询问项
- 跨机部署场景留注释说明
This commit is contained in:
root
2026-05-04 19:14:26 +08:00
parent 0efe9970f5
commit 070e48790c

View File

@ -52,20 +52,77 @@ QQ 用户 →→→ NapCatDocker:6099
---
### 第1步询问用户信息
### 第1步环境自动检测 + 询问关键信息
在执行任何操作前,请 **向用户询问以下信息**,不要使用仓库中的占位符:
本步骤将自动推导绝大多数配置,**只需向用户确认两个不可推导的值**。
| 信息 | 说明 | 示例 |
#### 1.1 设置默认值agent 自动执行)
```bash
# ─── 可自动推导的变量,全部使用默认值 ───
# Agent 唯一标识(默认 qq-agent用户可改但通常不需要
NEW_AGENT_ID="${NEW_AGENT_ID:-qq-agent}"
AGENT_WORKSPACE="/home/program/${NEW_AGENT_ID}-workspace"
# 共享目录路径
SHARED_DIR="${SHARED_DIR:-/opt/napcat_shared}"
# NapCat HTTP API 地址(同机部署走 127.0.0.1
NAP CAT_HOST="127.0.0.1"
# 从 NapCat Docker 容器角度看到的 qqrebot 地址
# 同机部署时 NapCat 通过 Docker 网关访问宿主机
QQREBOT_HOST="172.17.0.1:25580"
# Gateway Token自动从本机 OpenClaw 配置文件读取
GATEWAY_TOKEN=$(python3 -c "
import json
with open('$HOME/.openclaw/openclaw.json') as f:
cfg = json.load(f)
print(cfg.get('gateway', {}).get('auth', {}).get('token', ''))
" 2>/dev/null)
```
> 注意:`NAP CAT_HOST` 是**不含端口**的纯 IP/域名,后面所有用到 `send_url` 的地方拼入端口 `:6099`。
> `QQREBOT_HOST` 带端口 `:25580`,用于 onebot11.json 的 `httpPost.url`。
#### 1.2 向用户确认
只有以下两项无法自动推导agent 需向用户询问:
```bash
# 向用户提问示例:
# "主人,我需要以下信息来完成部署:
# 1. ADMIN_QQ — 你的管理员 QQ 号(用于白名单和安全上报)
# 2. GATEWAY_TOKEN — 如上面自动读取的为空,请提供"
```
| 变量 | 必须 | 说明 |
|---|---|---|
| `ADMIN_QQ` | 管理员 QQ 号(白名单使用) | `123456789` |
| `GATEWAY_TOKEN` | OpenClaw Gateway 的认证 Token | 读取 `~/.openclaw/openclaw.json``gateway.auth.token` |
| `NAP CAT_HOST` | NapCat 服务器地址(可含端口) | `127.0.0.1`(同机)或 `192.168.1.100:6099` |
| `QQREBOT_HOST` | qqrebot 服务器地址NapCat 侧看到的) | `127.0.0.1`(同机)或 `172.17.0.1:25580`Docker 宿主机) |
| `NEW_AGENT_ID` | 新 agent 的唯一 ID | `qq-agent` |
| `SHARED_DIR` | NapCat 与宿主机共享目录路径 | `/opt/napcat_shared` |
| `ADMIN_QQ` | ✅ | 管理员 QQ 号,用于白名单和安全告警上报 |
| `GATEWAY_TOKEN` | 看情况 | 自动读取失败时(空值)才需要用户提供 |
> `NAP CAT_HOST``QQREBOT_HOST` 可能不同:当 NapCat 和 qqrebot 运行在同一台机器上时NapCat 用 Docker 内部地址访问宿主机 qqrebot如 `172.17.0.1:25580`),而脚本用外部地址访问 NapCat如 `127.0.0.1:6099`
> 其余变量(`NEW_AGENT_ID`、`SHARED_DIR`、`NAP CAT_HOST``QQREBOT_HOST`)全部使用默认值即可,**无需用户确认**。仅在跨机部署NapCat 和 OpenClaw 不在同一台机器)时需要用户指定 `NAP CAT_HOST`
#### 1.3 应用变量
```bash
# 确认 ADMIN_QQ
if [ -z "$ADMIN_QQ" ]; then
echo "请提供 ADMIN_QQ"
exit 1
fi
# 确认 GATEWAY_TOKEN 非空
if [ -z "$GATEWAY_TOKEN" ]; then
echo "自动读取 GATEWAY_TOKEN 失败,请提供"
exit 1
fi
export ADMIN_QQ NEW_AGENT_ID AGENT_WORKSPACE SHARED_DIR NAP_CAT_HOST QQREBOT_HOST GATEWAY_TOKEN
echo "环境变量已就绪ADMIN_QQ=$ADMIN_QQ, AGENT=$NEW_AGENT_ID, NAPCAT=$NAP CAT_HOST"
```
---