把安装交给 AI¶
命令不想自己敲,可以把这一摊交给 AI 执行:它查环境、装依赖、改配置,你只负责 回答问题、点确认。这一页既是交给它执行的规格,也是你最后验收时的对照表。
怎么用¶
把这一页的链接发给你正在用的 AI(Claude、ChatGPT、Cursor,或终端里的 agent), 再附一句话:
按 https://docs.yuelibot.org/manual/ai-install/ 把我这台机器上的月璃装好。
那页写了硬约束和完成判据,照它做。
需要我本人操作或确认的地方停下来告诉我,别替我接受任何协议。
下面是规格正文。它按「先问什么、不许做什么、做到什么算完、按什么顺序、错了怎么判」 组织,你读一遍也就知道自己会被问哪些问题。
先问清楚,别猜¶
四件事必须从用户口中问到答案,猜错任何一件都会白装一遍:
系统与版本 —— Windows 还是 Linux,具体版本号。桌宠只在 Windows 10 / 11 上可用, 选错平台等于选错整条路线。
凭据 —— 模型厂商的 API Key(默认走阿里云百炼,形如 sk-xxxxxxxx),
以及一个打算当机器人的 QQ 小号。必须是小号,不要用用户本人的主号。
装到哪个目录 —— 默认别放 C 盘,理由见下面的硬约束。
协议端用 NapCat 还是 SnowLuma 不用问:默认 NapCat,它支持的平台最多,
用户之后想换随时能改 config/adapter.toml 里的一行。
三条硬约束¶
用户协议由用户本人读、本人输入,不许代劳。
首次启动时终端会打印协议要点与正文位置,要求逐字输入「同意」。
把 AGREEMENT.md
的链接交给用户,让他自己决定。不要用 --accept-agreement 绕过这一步——
那个参数只服务于确实无法交互的无头服务器,且必须由用户本人提出。
机器人号用小号,且与用户本人的号不同。 接入 QQ 可能导致账号被风控或限制。两个号填成同一个会被配置校验直接拒绝。
要桌宠,项目根就不能落在 C 盘。
桌面外壳启动时会拒绝把运行时文件写进系统盘,报错原文是
「拒绝把 YueLiBot 运行时文件写入 C 盘」。装到 D: 之类的位置,或用
YUELI_PROJECT_ROOT 显式指定一个非 C 盘目录。
做到什么算装完¶
别看「命令有没有报错」,看下面这几条是否真的成立:
- 后端终端出现「WebUI 已就绪」的信息框
- 浏览器能打开
http://127.0.0.1:7999,看得见面板 - 发一条消息后,面板的「会话观察」页里出现回复正文
- 接了 QQ 的话:用用户本人的 QQ 私聊机器人号,QQ 里真的收到回复
第 4 条单独列出来,是因为它和前三条不是一回事:面板上显示回复只证明模型出了结果, QQ 里收到气泡才证明出站动作被协议端接受。只做到第 3 条就宣布完成是错的。
按这个顺序做¶
安装 uv —— 先 uv --version 看有没有。没有就按系统装:
# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
装完必须重开终端让 PATH 生效。不要另外装 Python:uv 会按 pyproject.toml
的声明自己准备 3.11 以上版本。
克隆仓库 —— git clone https://github.com/YueLi-and-Me/YueLiBot.git。
机器上没有 Git,就从
Releases 下源码包解压。
解压后目录里要能直接看到 pyproject.toml,多套一层会导致后面所有命令找不到项目。
安装依赖 —— 在项目根依次执行 uv sync、npm ci、npm run build。
前一条装后端,后两条装前端并构建管理面板与桌宠(产物在 out/)。
Node.js 要 22 以上;管理面板离不了构建产物,所以这两条不是可选项。
第一次启动 —— uv run bot.py。同意协议后它会生成五份带注释的 TOML
并主动退出,退出码是 1。这是设计如此,不要当成报错去修,也不要去改退出码出处。
填 Key —— 配置在项目目录下的 config/,改 providers.toml 里的 api_key 一行。
厂商地址与六个模型条目已按百炼预填,除非用户明确要换厂商,否则不要动模型 ID。
再启动 —— 再跑一次 uv run bot.py,直到出现「WebUI 已就绪」。
端口 7999 被占用时用 --port 换一个。
接 QQ —— 见 NapCat 接入 与 SnowLuma 接入。
协议端是独立程序,不要装进月璃的目录;月璃侧要改 config/adapter.toml 的 plugin
与插件目录下的 config.toml 两处。
出错时怎么判¶
| 现象 | 多半是 | 怎么办 |
|---|---|---|
找不到 uv 命令 |
装完没重开终端 | 关掉窗口重新打开 |
uv sync 长时间不动 |
访问 PyPI 或 GitHub 不畅 | 换网络环境重跑,已下载的部分会保留 |
| 第一次启动就退出 | 正常流程 | 去填 api_key 再启动,不要改代码 |
启动报 api_key 为空,或调用返回 401 / 403 |
Key 没填、填错,或没开通对应模型 | 回百炼控制台核对;不要靠换模型 ID「试试看」 |
| 外壳报「拒绝把运行时文件写入 C 盘」 | 项目在 C 盘 | 挪到其它盘,或设 YUELI_PROJECT_ROOT |
| 面板空白、提示尚未构建 | 跳过了 npm run build |
补跑一次,或从别的机器拷 out/webui |
| 面板正常但 QQ 没反应 | 协议端未连上、白名单没写、或消息格式不是数组 | 按接入总览的三层逐项确认 |
不要用「加大超时」「加重连间隔」去治连不上的问题。 端口、令牌、账号错了, 等多久都连不上;那两个参数只影响网络抖动时的表现。
不要把 api_key、协议端访问令牌或面板 token 写进任何会提交的文件,
也不要贴进聊天窗口——那是能直接用的凭据。