fix: 修复文件发送容器路径 /app/files→/app/napcat/share + Skills补充共享目录替换

源码修正:
- qq_send_file.py#101: file_uri 路径 /app/files → /app/napcat/share (Docker volume真实挂载点)
- qq_ocr_image.py#10,47: 注释+CONTAINER_FILES常量同步修正
- qq-napcat-extras/SKILL.md#12: 跨主机传递图同步修正
- qq-messenger/SKILL.md#102: 注意事项容器路径同步修正

README 更新:
- 6.4 Skills替换新增 sed -i YOUR_SHARED_DIR(之前漏了)
- 新增全链路路径转换示意图(agent工作区→共享目录→容器内→NapCat API→QQ)
- 新增手动测试命令:复制文件→qq_send_file.py→确认管理员收到
- 变量速查表 YOUR_SHARED_DIR 添加 SKILL.md 出现位置
This commit is contained in:
root
2026-05-04 19:25:00 +08:00
parent 070e48790c
commit 79ea8175c4
5 changed files with 37 additions and 7 deletions

View File

@ -475,10 +475,40 @@ 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"
sed -i "s|YOUR_SHARED_DIR|${SHARED_DIR}|g" "$f"
done
```
> ⚠️ Skills 的替换很关键:如果漏掉agent 调脚本时会指向不存在的旧路径。
> ⚠️ Skills 的替换很关键:
> - `YOUR_WORKSPACE_PATH` → agent 的 subprocess.run 能找到脚本
> - `YOUR_SHARED_DIR` → 涉及文件发送的 Skillqq-messenger、qq-napcat-extras理解的宿主机共享路径
> - 两个 Skillqq-messenger、qq-napcat-extras还记录了容器路径 `/app/napcat/share/`,这是一个固定常量,对应 Step 2.2 的 Docker volume `-v SHARED_DIR:/app/napcat/share`。如果修改了 volume 挂载点,需同步修改这些 SKILL.md 和 `qq_send_file.py`、`qq_ocr_image.py` 中的容器路径。
**文件发送全链路路径转换示意:**
```
agent 工作区 宿主机共享目录 NapCat 容器内
/script/file.txt →cp→ /opt/napcat_shared/ ←volume→ /app/napcat/share/
qq_send_file.py 构造
file:///app/napcat/share/file.txt
NapCat HTTP API → QQ 用户
```
> 代理的思维模型:"我要发文件 → 把文件放到共享目录 → 脚本从共享目录发"。Skill 中提到的"发送文件/图片"都隐含了这一步文件复制。
**验证文件路径转换:**
```bash
# 确认共享目录存在
ls -la "${SHARED_DIR}/"
# 手动测试:复制一个文件过去,走 qq_send_file.py
echo hello > /tmp/test.txt
python3 "${AGENT_WORKSPACE}/scripts/qq_send_file.py" "/tmp/test.txt" --target "${ADMIN_QQ}" --private
# 如果 ADMIN_QQ 收到了"hello"文件,路径映射一切正常
```
#### 6.5 验证完整性
@ -554,7 +584,7 @@ NapCat 运行在 Docker 内部,宿主机文件路径不能直接访问。解
| `YOUR_NAPCAT_HOST` | `${NAP CAT_HOST}:6099` | 部分脚本 |
| `YOUR_ADMIN_QQ` | `${ADMIN_QQ}` | 脚本 + SKILL.md |
| `YOUR_GATEWAY_TOKEN` | `${GATEWAY_TOKEN}` | 脚本 |
| `YOUR_SHARED_DIR` | `${SHARED_DIR}` | `qq_send_file.py``qq_ocr_image.py` |
| `YOUR_SHARED_DIR` | `${SHARED_DIR}` | `qq_send_file.py``qq_ocr_image.py``qq-messenger/SKILL.md``qq-napcat-extras/SKILL.md` |
| `YOUR_WORKSPACE_PATH` | `${AGENT_WORKSPACE}` | SKILL.md + 脚本 |
---