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:
34
README.md
34
README.md
@ -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` → 涉及文件发送的 Skill(qq-messenger、qq-napcat-extras)理解的宿主机共享路径
|
||||
> - 两个 Skill(qq-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 + 脚本 |
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user