使用教程
版本:0.3.3 | 更新日期:2026-06-11
目录
1. 简介
Soul Agent Launcher(SAL) 是一个 Windows 桌面应用,用于 启动、管理和监控 llama.cpp 推理服务。它提供图形化界面替代命令行操作,支持多种 GPU 后端自动检测、模型下载、流式对话、会话管理等功能。
核心特性
| 特性 | 说明 |
|---|---|
| GPU 自动检测 | 自动识别 NVIDIA(CUDA)、AMD/Intel(Vulkan)、CPU 后端 |
| 一键启动服务 | 无需手动敲命令,点按钮运行 llama-server |
| 多模型管理 | 同时运行多个模型,每个独立端口 |
| 流式对话 | 内置聊天界面(SA Lite),支持深度思考显示 |
| 会话管理 | 保存/加载聊天历史,自动总结长对话 |
| 自动更新 | 启动时自动检查新版本,管理员后台发布 |
| 多语言 | 中文/英文自动切换 |
| 完全离线可用 | 全后端捆绑 MSI 安装包,无网络也能用 |
技术栈
- 前端框架:Tauri v2(Rust + WebView)
- 推理引擎:llama.cpp(CUDA / Vulkan / CPU)
- 本地存储:JSON 文件(会话、配置、模型列表)
- 更新服务:独立 Flask 服务器(可选部署)
2. 安装与卸载
系统要求
- 操作系统:Windows 10 / 11(64 位)
- CPU:x86_64 处理器(支持 AVX2 及以上)
- 内存:建议 16GB 以上
- GPU(可选):
- NVIDIA:驱动 ≥ 525,推荐 ≥ 570(CUDA 13)
- AMD / Intel:Vulkan 驱动
- 磁盘:
- 离线完整版:约 460MB
- 在线版:约 15MB
安装步骤
- 下载 MSI 安装包(
.msi文件) - 双击运行,按向导完成安装
- 安装完成后桌面或开始菜单出现 Soul Agent Launcher 图标
C:\Program Files\Soul Agent Launcher\
卸载
- 通过 Windows 设置 → 应用 → 找到 "Soul Agent Launcher" → 卸载
- 或使用 MSI 自带的卸载程序
%APPDATA%\Soul-Agent-Launcher\(留空删除可清理)。
安装包类型
| 类型 | 大小 | 说明 |
|---|---|---|
| 离线完整版 MSI | ~460MB | 内置全部 GPU 后端,无网络也能用 |
| 在线轻量版 MSI | ~15MB | 需从网上下载或预置 llama.cpp 包 |
| NSIS 安装包 | 同上 | 替代 MSI 的安装方式 |
3. 首次启动与自动配置
启动流程
首次启动后,SAL 会自动完成以下步骤:
启动 → 检测硬件 → 匹配后端包 → 解压 → 生成配置 → 就绪
硬件自动检测
SAL 依次检测以下 GPU 后端:
- NVIDIA CUDA — 执行
nvidia-smi获取驱动版本- 驱动 ≥ 570 → CUDA 13.3(RTX 40xx Super / 50xx)
- 驱动 ≥ 525 → CUDA 12.4(RTX 20xx / 30xx / 40xx)
- Vulkan — 执行
vulkaninfo检查- AMD Radeon / Intel Arc 等
- CPU 兜底 — 无 GPU 加速时自动选用 CPU 后端
内置后端(离线完整版)
| 包名 | 大小 | 适用硬件 |
|---|---|---|
cuda-13.3 | 151MB | NVIDIA RTX 40xx Super / 50xx |
cuda-12.4 | 254MB | NVIDIA GTX/RTX(较老型号) |
vulkan-x64 | 33MB | AMD / Intel 独显 |
cpu-x64 | 16MB | 任何 x86 处理器(无 GPU) |
启动后状态
配置完成后,打开首页将显示:
[运行中] ← 服务状态指示灯 0 个模型 ← 当前加载的模型数 端口 20000 ← 默认服务端口
4. 界面概览
整体布局
┌─────────────────────────────────────────────────────┐ │ 窗口标题栏(自定义无边框) [─] [□] [×] │ ├──────────┬──────────────────────────────────────────┤ │ 侧边导航 │ 主内容区 │ │ │ │ │ 首页 │ (根据所选页面显示不同内容) │ │ 模型 │ │ │ 启动 │ │ │ 会话 │ │ │ 对话 │ │ │ 设置 │ │ │ │ │ │ Soul │ │ │ Agent │ │ ├──────────┴──────────────────────────────────────────┤ │ 状态栏(版本号) │ └─────────────────────────────────────────────────────┘
导航栏说明
| 页面 | 功能 |
|---|---|
| 首页 | 服务状态总览、启停控制 |
| 模型 | 模型列表管理、下载新模型 |
| 启动页 | 高级参数配置、手动编译 |
| 会话 | 聊天历史管理 |
| 对话 | SA Lite 极简聊天界面 |
| 设置 | 全局配置、语言、卸载选项 |
托盘图标
SAL 最小化后会在系统托盘显示图标:
- 双击 → 显示窗口
- 右键菜单 → 显示窗口 / 退出
- 提示文字 → "Soul Agent Launcher"
5. 首页 —— 服务总控
服务状态卡片
首页顶部显示 llama-server 的运行状态:
| 状态 | 指示灯 | 说明 |
|---|---|---|
| 运行中 | 绿色 | 服务正常,有模型加载 |
| 加载中 | 橙色脉冲 | 模型正在加载进显存 |
| 未启动 | 灰色 | 服务未运行 |
启停控制
| 按钮 | 作用 |
|---|---|
| 启动服务 | 启动 llama-server(默认端口 20000) |
| 停止服务 | 停止所有正在运行的模型 |
| 管理服务 | 进入启动页查看详情 |
多模型显示
当有多个模型同时运行时,首页会列出:
2 个模型 · qwen2.5-7b, llama-3.1-8b 显存 12.5GB
每个模型有独立的代理端口,API 地址格式:
原生 /chat → http://localhost:20001/chat OpenAI → http://localhost:20001/v1/chat/completions
状态轮询
SAL 每 5 秒自动刷新服务状态。当模型处于加载阶段(503 响应),状态栏会显示 "模型正在加载中~马上就好~"。
6. 模型管理
查看已安装模型
切换到「模型」页面,可看到已放置在 models 目录下的所有 GGUF 模型文件。
模型格式要求
SAL 支持所有 GGUF 格式 的模型文件。常见来源:
- Hugging Face
- ModelScope(魔塔社区)
- 自行使用
llama-quantize转换
下载模型
modelscope SDK。
- 在「模型」页点击「下载模型」
- 搜索或从预置列表中选择
- 点击下载,进度条显示实时进度
- 下载完成后自动出现在模型列表
加载与卸载模型
- 在模型列表点击模型名称
- 设置上下文长度(默认 4096)
- 点击「加载」启动
- 加载完成后模型进入运行状态
- 点击「卸载」停止模型
模型文件管理
- 模型目录:
%APPDATA%\Soul-Agent-Launcher\models\ - 刷新:点击「刷新模型列表」扫描目录
- 删除:选中模型点击删除确认
7. 启动页 —— 高级控制
服务参数
| 参数 | 说明 | 默认值 |
|---|---|---|
| 端口 | 主服务端口 | 20000 |
| 上下文 | 推理上下文长度 | 4096 |
| 连接数 | 最大并发连接 | 8 |
| 额外参数 | 传递给 llama-server 的其他参数 | (可选) |
待机模式
「待机」按钮将服务切换到低功耗状态,模型仍驻留显存但释放计算资源:
待机中 → 发送请求 → 自动唤醒(1-3 秒延迟) 唤醒后 → 正常响应 → 无活动一段时间 → 自动待机
手动编译(高级)
对于需要自定义编译参数的用户:
- 在启动页找到「手动编译」区域
- 选择构建脚本路径(预置 build-minimal.ps1)
- 点击「开始编译」
- 等待编译完成(可能需要 10-30 分钟)
8. SA Lite —— 极简对话
界面说明
SA Lite 是一个轻量级聊天界面,模仿 Soul Agent 的对话体验:
┌──────────────────────────────────────┐ │ [SA] Soul Agent Lite │ │ │ │ ┌──────────────────────────────────┐│ │ │ 欢迎使用 Soul Agent Lite ││ │ │ 输入消息开始对话 ││ │ └──────────────────────────────────┘│ │ │ │ ┌──────────────────────────────────┐│ │ │ 用户消息 ││ │ └──────────────────────────────────┘│ │ ┌──────────────────────────────────┐│ │ │ 思考过程 ▼ ││ │ │ ┌──────────────────────────────┐││ │ │ │ 模型的思考内容... │││ │ │ └──────────────────────────────┘││ │ │ ││ │ │ 助手回复内容... ││ │ └──────────────────────────────────┘│ │ │ │ ┌──────────────────────────────────┐│ │ │ 输入消息,Enter 发送... [发送] ││ │ └──────────────────────────────────┘│ │ ▓▓▓▓░░░░ 45% 上下文使用率 │ └──────────────────────────────────────┘
基础操作
- 发送消息:在输入框输入文字,按
Enter发送 - 换行:
Shift + Enter换行 - 停止生成:点击「停止」中断模型输出
- 新建对话:切换到会话页创建新会话
深度思考
当模型返回思考过程时(如 Qwen3、DeepSeek 等),SA Lite 会显示可折叠的思考块:
思考过程 ▼ ← 点击折叠/展开 ┌─────────────────────┐ │ 模型内部推理过程... │ └─────────────────────┘
- 思考块默认 60ms 后自动折叠
- 可点击展开查看完整思考内容
- 支持选中复制
多模态输入
支持图片理解模型(需模型支持):
- 在设置中开启「多模态」
- 发送时模型会处理图片内容
- 需要模型以
--mmproj参数加载视觉编码器
打字动画
发送消息后,SA Lite 显示三点跳动加载动画:
● ● ● ← 等待第一个 Token
一旦收到模型返回的第一个 Token(思考或正文),动画消失并开始流式输出。
自动总结(长对话保护)
当对话上下文使用率达到 80% 时,自动触发总结:
对话上下文 80% → LLM 生成总结 → 存为系统消息 → 释放上下文空间
- 80%:静默自动总结,无感
- 95%:强制总结
总结内容会注入到后续每次请求中作为 system 消息,保持长对话的连续性。
上下文状态指示
聊天框右下角显示进度环:
▓▓▓▓░░░░ 45% ← 当前上下文使用率
- 绿色:健康(< 70%)
- 橙色:接近阈值(70-80%)
- 红色:超限风险(> 90%)
9. 会话管理
会话列表
在「会话」页面可以查看所有保存的聊天历史:
┌──────────────────────────────────┐ │ 会话 │ │ │ │ ┌──────────────────────────────┐│ │ │ 关于项目架构讨论 ││ │ │ 12 条消息 · 14:23:05 ││ │ ├──────────────────────────────┤│ │ │ 新会话 ││ │ │ 3 条消息 · 14:15:02 ││ │ └──────────────────────────────┘│ │ │ │ [新建会话] │ └──────────────────────────────────┘
操作
| 操作 | 方式 |
|---|---|
| 加载会话 | 点击会话条目 → 自动切换到对话页并加载消息 |
| 新建会话 | 点击「新建会话」按钮 |
| 重命名 | 点击编辑图标 → 输入新名称 |
| 删除 | 点击删除图标 → 确认删除 |
自动重命名
当触发自动总结时,会话标题会根据总结内容自动更新。
数据存储位置
所有会话数据存储在:
%APPDATA%\Soul-Agent-Launcher\sessions\
├── s{id}.json ← 会话元数据(标题、时间)
├── s{id}.msgs.json ← 消息历史
└── s{id}.summary ← 自动总结(可选)
10. 设置
通用设置
| 设置项 | 说明 |
|---|---|
| llama.cpp 路径 | llama-server.exe 所在目录 |
| 模型目录 | GGUF 模型文件存放位置 |
| 默认端口 | 服务监听端口(默认 20000) |
| 默认上下文 | 推理上下文窗口大小(默认 4096) |
语言
支持中文和英文,三种切换方式:
- 自动检测:根据系统语言自动切换
- 手动设置:在设置页下拉选择
- 持久化:选择后自动保存到 localStorage
主题
- 亮色模式 / 暗色模式 切换
- 通过顶栏的主题按钮快速切换
行为
- 退出时自动卸载模型:关闭窗口后自动清理所有模型进程,释放显存
检查更新
点击「检查更新」按钮手动触发版本检查。详见[自动更新](#update)章节。
11. 自动更新
检查机制
- 自动检查:启动后 3 秒自动检查
- 手动检查:设置页点击「检查更新」
- 检查地址:
https://sal.bszx.site/api/check-update
更新提示
当有新版本时,右下角弹出提示卡:
┌──────────────────────────┐ │ SAL 0.3.3 发布! │ │ 建议更新至最新版! │ │ │ │ [更新] [跳过] │ └──────────────────────────┘
- 更新:打开浏览器下载最新 MSI
- 跳过:当前版本不再提示(localStorage 记录)
管理后台
管理员可通过网页发布新版本:
| 地址 | https://sal.bszx.site/admin |
|---|---|
| 用户名 | Saki |
| 密码 | 已设置 |
管理功能:
- 登录后台
- 填写版本号、更新说明
- 上传 MSI 安装包
- 选择是否强制更新
- 点击「发布版本」
12. 多语言支持
当前支持语言
| 语言 | 代码 | 覆盖度 |
|---|---|---|
| 简体中文 | zh | 100% |
| English | en | 100% |
切换方式
方法一:自动切换
系统语言为中文 → 自动使用中文
系统语言为其他 → 自动使用英文
方法二:手动切换
设置 → 语言 → 下拉选择 → 即时生效
切换范围
切换语言会即时更新:
- 导航栏文字
- 服务状态文字
- 会话列表文字
- 对话输入框占位符
- 新建会话欢迎语
- 设置页文字
- 自动总结提示
13. 常见问题
Q:启动后一直显示「未启动」
可能原因:
- 首次安装需要自动解压:等待几秒钟,SAL 正在解压对应的后端包
- 端口被占用:更改默认端口(设置 → 默认端口)
- 后端包下载不完整:重新安装完整 MSI
Q:模型加载时报错
常见错误:
- OOM(显存不足):降低上下文长度或换用小尺寸模型
- 模型文件损坏:重新下载模型
- 格式不兼容:确认模型为 GGUF 格式
Q:503 "Loading model"
这是正常现象,表示模型正在加载进显存。等待 10-30 秒后自动变为"运行中"。
Q:按钮点了没反应
通常是因为 JavaScript 加载失败:
- 关闭应用重新打开
- 如反复出现,重新安装 MSI
- 检查日志:
E:\Soul-Agent\SoulLogs\soul_*.json
Q:聊天记录不见了
检查会话目录:
%APPDATA%\Soul-Agent-Launcher\sessions\
如果文件存在,重启应用即可自动加载。如果文件被删除则无法恢复。
Q:如何手动添加模型?
将 GGUF 格式的模型文件放入以下目录即可:
%APPDATA%\Soul-Agent-Launcher\models\
放置后在「模型」页点击刷新即可看到。
Q:更新后配置会丢失吗?
不会。用户数据(配置、会话、模型文件)保存在 %APPDATA%\Soul-Agent-Launcher\,与程序安装目录分离,卸载/更新/重装均不会影响。
Q:日志在哪里?
E:\Soul-Agent\SoulLogs\soul_YYYY-MM-DD.json
每条日志包含时间戳、等级、分类和消息内容。