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:
77
README.md
77
README.md
@ -52,20 +52,77 @@ QQ 用户 →→→ NapCat(Docker: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"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user