docs: 补充脚本部署细节,明确clone路径和占位符验证

- Step 6 拆分为6.1-6.5子步骤
- 6.1 新增:在目标服务器上克隆仓库(git clone + 拷贝两种方式说明)
- 6.2 新增:完整脚本清单表(26个脚本分5组,含用途说明)
- 6.3 新增:Skills引用说明(YOUR_WORKSPACE_PATH/scripts/ 路径映射关系)
- 6.4 拆分脚本替换和Skills替换为两个独立代码块
- 6.5 新增:完整性验证命令(数量检查 + 占位符残留检查)
This commit is contained in:
root
2026-05-04 19:09:18 +08:00
parent 5a69db8af9
commit 0efe9970f5

View File

@ -318,28 +318,80 @@ mkdir -p "${AGENT_WORKSPACE}/files"
---
### 第6步部署脚本和 Skills 到新 agent 的 workspace
### 第6步获取源码并部署到 agent 的 workspace
**复制脚本:**
> agent 需要在目标服务器上获取 chatrebot_aireply_plug 的 `scripts/`26 个脚本)和 `skills/`8 个 skill目录。
#### 6.1 在目标服务器上克隆仓库
```bash
cp -r /path/to/chatrebot_aireply_plug/scripts/* "${AGENT_WORKSPACE}/scripts/"
# 方案 Agit clone
git clone https://jianfgit.xyz/jianf/chatrebot_aireply_plug.git /opt/chatrebot_aireply_plug
# 方案 B本机已有 repo直接复制
# cp -r /home/program/pm-workspace /opt/chatrebot_aireply_plug
```
**复制 Skills**
后续步骤假设源码解压到 `/opt/chatrebot_aireply_plug`
#### 6.2 复制脚本
```bash
cp -r /opt/chatrebot_aireply_plug/scripts/* "${AGENT_WORKSPACE}/scripts/"
```
脚本清单26 个),按功能分组:
| 分组 | 脚本 | 用途 |
|---|---|---|
| **QQ 消息** | `qq_send_msg.py` | 发送文本消息 |
| | `qq_send_file.py` | 发送文件/图片 |
| | `qq_upload_group_file.py` | base64 直接上传群文件 |
| | `qq_send_like.py` | 点赞 |
| | `qq_ocr_image.py` | 图片 OCR 识别 |
| **QQ 查询** | `qq_get_groups.py` | 获取群列表 |
| | `qq_get_friends.py` | 获取好友列表 |
| | `qq_get_group_files.py` | 获取群文件列表 |
| | `qq_get_file.py` | 下载文件 |
| | `qq_get_history.py` | 拉取历史消息 |
| | `qq_resolve_name.py` | QQ号/群号 ↔ 可读名称 |
| **QQ 管理** | `qq_group_action.py` | 退群、接受/拒绝群邀请 |
| | `qq_group_manage.py` | 群成员管理(踢/禁言等) |
| | `qq_friend_action.py` | 删好友、同意/拒绝好友请求 |
| **MC 服务器** | `mc_query.py` | 服务器状态查询 |
| | `mc_status.py` | 状态(简化版) |
| | `mc_players.py` | 玩家信息 |
| | `mc_world.py` | 世界详情 |
| | `mc_rcon.py` | 远程执行 RCON 命令 |
| | `mc_clear_items.py` | 清理掉落物 |
| | `mc_config.py` | 服务器配置管理 |
| **工具** | `browse.py` | 网页浏览/截图 |
| | `file_store_api.py` | 文件存储 API |
| | `ask_nix.py` | 向 ops-manager 求助 |
| | `qq_video_download.py` | 视频下载 |
| | `__init__.py` | 包初始化 |
#### 6.3 复制 Skills
Skills 是 agent 的能力描述文件(`SKILL.md`),每个 skill 一个子目录agent 启动时会加载:
```bash
for SKILL in qq-messenger qq-management qq-resolver qq-napcat-extras mc-query nix-helper browser file-process; do
cp -r "/path/to/chatrebot_aireply_plug/skills/${SKILL}" "${AGENT_WORKSPACE}/skills/"
cp -r "/opt/chatrebot_aireply_plug/skills/${SKILL}" "${AGENT_WORKSPACE}/skills/"
done
```
**替换占位符(关键!必须执行):**
> Skills 中的 SKILL.md 通过 `YOUR_WORKSPACE_PATH/scripts/xxx.py` 引用脚本路径。
> agent 执行 `subprocess.run` 时,实际调用的是 `${AGENT_WORKSPACE}/scripts/` 下的脚本。
#### 6.4 替换占位符(关键!必须执行)
**替换脚本占位符:**
```bash
cd "${AGENT_WORKSPACE}/scripts"
# NapCat HTTP API 地址(端口 6099,非 25570
# NapCat HTTP API 地址(端口 6099
sed -i "s|YOUR_NAP CAT_HOST:25570|${NAP CAT_HOST}:6099|g" *.py
sed -i "s|YOUR_NAP CAT_HOST|${NAP CAT_HOST}:6099|g" *.py
sed -i "s|YOUR_NAPCAT_HOST:25570|${NAP CAT_HOST}:6099|g" *.py
@ -358,7 +410,31 @@ sed -i "s|YOUR_WORKSPACE_PATH|${AGENT_WORKSPACE}|g" *.py
sed -i "s|YOUR_SHARED_DIR|${SHARED_DIR}|g" *.py
```
同样处理 `skills/` 目录下的 SKILL.md 文件。
**替换 Skills 占位符:**
```bash
cd "${AGENT_WORKSPACE}/skills"
for f in */SKILL.md; do
sed -i "s|YOUR_WORKSPACE_PATH|${AGENT_WORKSPACE}|g" "$f"
sed -i "s|YOUR_ADMIN_QQ|${ADMIN_QQ}|g" "$f"
done
```
> ⚠️ Skills 的替换很关键如果漏掉agent 调脚本时会指向不存在的旧路径。
#### 6.5 验证完整性
```bash
# 脚本数量
echo "scripts: $(ls "${AGENT_WORKSPACE}/scripts/" | wc -l) 个"
# 确认无残留占位符
if grep -r "YOUR_ADMIN_QQ\|YOUR_WORKSPACE_PATH" "${AGENT_WORKSPACE}/"; then
echo "⚠️ 还有未替换的占位符!"
else
echo "✅ 占位符全部替换完毕"
fi
```
---