$npx -y skills add agentscope-ai/QwenPaw --skill guidance-zh回答用户关于 QwenPaw 安装与配置的问题:优先定位并阅读本地文档,再提炼答案;若本地信息不足,兜底访问官网文档。
| 1 | # QwenPaw 安装与配置问答指南 |
| 2 | |
| 3 | 当用户询问 **QwenPaw 的安装、初始化、环境配置、依赖要求、常见配置项** 时,使用本 skill。 |
| 4 | |
| 5 | 核心原则: |
| 6 | |
| 7 | - 先查本地文档,再回答 |
| 8 | - 回答要基于已读到的内容,不臆测 |
| 9 | - 回答语言与用户提问语言保持一致 |
| 10 | |
| 11 | ## 标准流程 |
| 12 | |
| 13 | |
| 14 | ### 第一步:定位文档位置 |
| 15 | |
| 16 | **优先使用内置路径解析(适用于所有安装方式)** |
| 17 | |
| 18 | ```bash |
| 19 | DOCS_DIR=$(python3 -c "from qwenpaw.constant import DOCS_DIR; print(DOCS_DIR or '')" 2>/dev/null) |
| 20 | ``` |
| 21 | |
| 22 | 如果上面获取到了非空路径且目录存在,直接使用,跳到第二步。 |
| 23 | |
| 24 | 如果获取失败(例如旧版本未包含 DOCS_DIR),按以下顺序 fallback: |
| 25 | |
| 26 | **查找记忆中的文档目录** |
| 27 | |
| 28 | 首先你可以查看memory中是否有文档目录,如果有则直接使用,如果没有则继续执行下一步。 |
| 29 | |
| 30 | ```bash |
| 31 | # 获取memory中的文档目录 |
| 32 | DOCS_DIR=$(find ~/.qwenpaw/memory/ -type d -name "docs") |
| 33 | ``` |
| 34 | |
| 35 | 如果 memory 中没有文档目录,则继续执行下面的逻辑。 |
| 36 | |
| 37 | **检查项目源码中的文档目录** |
| 38 | |
| 39 | 执行以下脚本逻辑来获取变量 $QWENPAW_ROOT: |
| 40 | |
| 41 | ```bash |
| 42 | # 获取二进制绝对路径 |
| 43 | QWENPAW_PATH=$(which qwenpaw 2>/dev/null || whereis qwenpaw | awk '{print $2}') |
| 44 | |
| 45 | # 逻辑推导:如果路径包含 .qwenpaw/bin/qwenpaw,则根目录在其上三层 |
| 46 | # 例如:/path/to/QwenPaw/.qwenpaw/bin/qwenpaw -> /path/to/QwenPaw |
| 47 | if [[ "$QWENPAW_PATH" == *".qwenpaw/bin/qwenpaw" ]]; then |
| 48 | QWENPAW_ROOT=$(echo "$QWENPAW_PATH" | sed 's/\/\.qwenpaw\/bin\/qwenpaw//') |
| 49 | else |
| 50 | # 兜底:尝试获取所在目录的父目录 |
| 51 | QWENPAW_ROOT=$(dirname $(dirname "$QWENPAW_PATH") 2>/dev/null || echo ".") |
| 52 | fi |
| 53 | |
| 54 | echo "Detected QwenPaw Root: $QWENPAW_ROOT" |
| 55 | ``` |
| 56 | |
| 57 | 验证并列出文档目录: |
| 58 | 使用推导出的 $QWENPAW_ROOT 定位文档: |
| 59 | |
| 60 | ```bash |
| 61 | # 组合标准文档路径 |
| 62 | DOCS_DIR="$QWENPAW_ROOT/website/public/docs/" |
| 63 | |
| 64 | # 检查路径是否存在并列出文件 |
| 65 | if [ -d "$DOCS_DIR" ]; then |
| 66 | find "$DOCS_DIR" -type f -name "*.md" | head -n 100 |
| 67 | else |
| 68 | # 如果推导路径不对,执行全局模糊搜索 |
| 69 | find "$QWENPAW_ROOT" -type d -name "docs" | grep "website/public/docs" |
| 70 | fi |
| 71 | ``` |
| 72 | **如果项目文档不存在,搜索工作目录** |
| 73 | |
| 74 | 如果还是找不到文档,搜索 qwenpaw 安装路径下的可用文档内容: |
| 75 | |
| 76 | ```bash |
| 77 | # 寻找 faq.en.md 或 config.zh.md 等特征文件 |
| 78 | FILE_PATH=$(find . -type f -name "faq.en.md" -o -name "config.zh.md" | head -n 1) |
| 79 | if [ -n "$FILE_PATH" ]; then |
| 80 | # 使用 dirname 获取该文件所在的目录 |
| 81 | DOCS_DIR=$(dirname "$FILE_PATH") |
| 82 | fi |
| 83 | ``` |
| 84 | 如果找到了文档目录,请你记录在 memory 中,格式为: |
| 85 | |
| 86 | ```markdown |
| 87 | # 文档目录 |
| 88 | $DOCS_DIR = <doc_path> |
| 89 | ``` |
| 90 | |
| 91 | ### 第二步:文档检索与匹配 |
| 92 | |
| 93 | 文档文件命名格式为 `<topic>.<lang>.md`(如 `config.zh.md`、`config.en.md`、`quickstart.zh.md`)。 |
| 94 | |
| 95 | 使用 find 命令在目标目录中列出所有符合后缀的文档,并根据文件名关键字(如 install, env, setup)锁定目标作为 <doc_path>。 |
| 96 | |
| 97 | ```bash |
| 98 | # 列出所有符合后缀的文档 |
| 99 | find $DOCS_DIR -type f -name "*.md" |
| 100 | ``` |
| 101 | |
| 102 | 如果没有合适的文档,则在下一步阅读所有文档内容。 |
| 103 | |
| 104 | |
| 105 | ### 第三步:阅读文档内容 |
| 106 | |
| 107 | 找到候选文档后,读取并确认与问题相关的段落。可使用: |
| 108 | |
| 109 | - `cat <doc_path>` |
| 110 | - `file_reader` skill(推荐用于更长文档或分段读取) |
| 111 | |
| 112 | 如果文档很长,优先读取和问题最相关的章节(安装步骤、配置项、示例命令、注意事项、版本要求)。 |
| 113 | |
| 114 | ### 第四步:提取信息并作答 |
| 115 | |
| 116 | 从文档中提取关键信息,组织成可执行答案: |
| 117 | |
| 118 | - 先给直接结论 |
| 119 | - 再给步骤/命令/配置示例 |
| 120 | - 补充必要前置条件与常见坑 |
| 121 | |
| 122 | 语言要求:回答语言必须与用户提问语言一致(中文问就中文答,英文问就英文答)。 |
| 123 | |
| 124 | ### 第五步(可选):官网检索 |
| 125 | |
| 126 | 若前面步骤无法完成(本地无文档、文档缺失、信息不足),使用官网作为兜底: |
| 127 | |
| 128 | - http://qwenpaw.agentscope.io/ |
| 129 | |
| 130 | 基于官网可获得内容继续回答,并在答案中明确说明该结论来自官网文档。 |
| 131 | |
| 132 | ## 输出质量要求 |
| 133 | |
| 134 | - 不编造不存在的配置项或命令 |
| 135 | - 遇到版本差异时,明确标注“需以当前文档版本为准” |
| 136 | - 涉及路径、命令、配置键时,尽量给可复制的原文片段 |
| 137 | - 若信息仍不足,明确缺口并告诉用户还需要哪类信息(例如操作系统、安装方式、报错日志) |