本地优先的 AI 助手平台 · Windows / Linux / macOS 三端一行命令部署 · 手机遥控同一账号
自动识别 Apple Silicon / Intel 芯片,自动安装 Homebrew 与 Node.js,配置 LaunchAgent 开机自启,装完自动打开 http://localhost:3456。
curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash
支持 Ubuntu 20.04+ / Debian 11+ / CentOS Stream 8/9,自动安装 Node.js 20 与全部依赖。DGX(DGX OS 即 Ubuntu)同样适用,桌面端自动配置应用菜单 + systemd 用户服务自启。
curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash
curl -fsSL https://www.lingxi-engine.com/install.sh | bash
支持 Windows 10 1809+ / Windows 11,便携版开箱即用,集成 15 种 AI 模型,无需命令行。
⏳ Windows 版暂未上架 ⬇ PowerShell 一键安装(推荐 Windows 用户) ⬇ PowerShell 安装脚本irm https://www.lingxi-engine.com/install.ps1 | iex
Android 7.0+。它不在手机上跑模型,本身不产生任何算力——它是你这个账号的遥控器。
登录一次账号,「我的灵犀」里就会列出云端和你电脑上的所有引擎,并实时显示在线/离线。只有在线且登录了同一账号的引擎才能一键接管。
| 能力 | 在哪里执行 | 说明 |
|---|---|---|
| 模型推理/算力 | 电脑端或云端服务器 | 手机端不跑模型、不消耗手机算力 |
| 工具调用(搜索/文件/终端/计算) | 电脑端或云端服务器 | 在引擎所在机器上真实执行,手机只看结果 |
| 记忆/智能体/会话/工作区 | 同一账号同一份数据 | 不是副本,是同一份,上下文完全互通 |
| 长任务接管 | 引擎侧持续运行 | 电脑上跑的任务,手机上看进度、继续下指令 |
| 多代理协作/子任务 | 引擎侧执行 | 和桌面端完全一致 |
换句话说:你在公司电脑上部署的灵犀、家里笔记本上的灵犀、云服务器上的灵犀,手机都能接管。手机上像不像在自己电脑上用?是,因为它本来就是在操作那台机器。
App 内可随时切换要连的引擎。顶栏显示当前地址,点一下就能改:
| 填什么 | 遥控哪台 |
|---|---|
| http://192.168.1.10:3456 | 家里/公司电脑上的自部署引擎(需同一 WiFi) |
| https://你的域名 | 公网引擎 |
| 留空 / 恢复官方云端 | 官方云引擎 |
iPhone / iPad 版,同样不在手机上跑模型,同样是你这个账号的遥控器。功能与 Android 版完全一致,不是阉割版。
1. 点上方「立即用 Safari 打开」
2. 底栏点分享 → 添加到主屏幕
3. 桌面出现紫色星形图标,点开即全屏运行
打开 /m/ 页面后,点顶栏(手机号/地址栏下方那一条)即可切换要连的引擎:
| 填什么 | 遥控哪台 |
|---|---|
| http://192.168.1.10:3456 | 家里/公司电脑上的自部署引擎(需同一 WiFi) |
| https://你的域名 | 公网引擎 |
| 平台 | 要求 | 部署命令 |
|---|---|---|
| Windows | Win10 1809+ / Win11,PowerShell 5.1+,磁盘 ≥ 2GB | irm https://www.lingxi-engine.com/install.ps1 | iex |
| macOS | macOS 12+,Apple Silicon 或 Intel,磁盘 ≥ 2GB | curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash |
| Linux 桌面 | Ubuntu 20.04+ / Debian 11+ / CentOS Stream 8/9 | curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash |
| Linux 服务器 | 同上,建议 1 核 2GB 起步 | curl -fsSL https://www.lingxi-engine.com/install.sh | bash |
| NVIDIA DGX | DGX OS(Ubuntu 基底),自带 CUDA 驱动 | curl -fsSL https://www.lingxi-engine.com/install.sh | bash |
| CentOS 7 | ❌ 不支持(glibc 2.17 过旧) | — |
引擎装好后,如需接本地 GPU 模型:
curl -fsSL https://ollama.com/install.sh | sh ollama pull qwen2.5:14b # 按显存选模型 cat >> /opt/lingxi-engine/.env <<'EOF' OPENAI_BASE_URL=http://localhost:11434/v1 OPENAI_API_KEY=ollama MODEL_NAME=qwen2.5:14b EOF pm2 restart lingxi-engine || sudo systemctl restart lingxi-engine
DGX OS 自带 CUDA,Ollama 直接识别 GPU,无需额外装驱动;端口对外需 sudo ufw allow 3456。
curl http://localhost:3456/api/health
# 期望返回 {"ok":true,"version":"2.0.37","agents":11,...}
完整手动步骤(Node 安装 → tarball 解压 → .env 配置 → npm install → PM2/systemd 托管)参考 install.sh 内的安装逻辑;Linux 桌面还可选 deb / AppImage 安装包(构建脚本在仓库 linux_packaging/ 目录)。
📖 更完整的图文部署指南(含离线部署、PM2 托管、常见排障)见 站内文档。
Q:curl 命令执行后没反应 / 卡住?
A:检查网络能否访问 https://www.lingxi-engine.com(公司内网可能拦截非常用端口);macOS 用户确认用的是「终端」而非 IDE 内置受限终端。
Q:macOS 上 dmg 应用被系统拦截?
A:执行 curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash -s -- --fix-app 一键解除 Gatekeeper 拦截。
Q:Linux 提示 glibc too old?
A:系统过旧(如 CentOS 7),请升级到 Ubuntu 20.04+ / Debian 11+ / CentOS Stream 8+。
Q:npm 安装很慢或超时?
A:切换国内镜像 npm config set registry https://registry.npmmirror.com 后重跑脚本。
Q:手机端需要配置什么吗?
A:不需要配置模型、不需要装运行环境。手机只做显示和下发指令,用同一个账号登录即可。
Q:手机端会不会消耗手机算力/手机会不会发烫?
A:不会。模型推理和工具执行全部发生在引擎所在机器(你的电脑或云端服务器)上,手机不承担计算。
Q:手机登录后为什么和我电脑上的会话不一样?
A:多半是登录了不同账号。请确认手机端与电脑端使用完全相同的账号密码;另外若引擎是本地/自部署的,需确认手机访问的正是那台引擎。
Q:电脑上正在跑的任务,手机能接管吗?
A:能。同账号下任务状态共享,手机上可查看进度、继续下发指令,任务仍在引擎侧持续运行。
Q:端口 3456 被占用?
A:编辑 .env 修改 PORT 后重启;或用 ss -tlnp | grep 3456(Linux)/ lsof -i :3456(macOS)找到占用进程。
Q:怎么验证装好了?
A:浏览器打开 http://localhost:3456,或终端执行 curl http://localhost:3456/api/health,返回 ok 即成功。
Q:开机没有自启?
A:macOS 检查「系统设置 → 通用 → 登录项」;Linux 检查 systemctl --user status lingxi-engine;重跑安装脚本可修复。
Q:怎么彻底卸载?
A:curl -fsSL https://www.lingxi-engine.com/public/install.sh | bash -s -- --uninstall,会清理程序文件、自启配置和菜单图标(保留用户数据)。
Q:WSL 里能跑吗?
A:能。按 Linux 方式安装,Windows 浏览器直接访问 localhost:3456 即可。
新增天气插件(按城市查询实时天气),/api/health 返回服务指纹(version / agents),新增时钟偏移自检与自动校准提示,并修复多项稳定性问题。
| 能力 | 说明 | v2.0.37 |
|---|---|---|
| 天气插件 | 按城市查询实时天气与预报 | ✅ |
| 服务指纹 | /api/health 返回 version / agents 指纹 | ✅ |
| 时钟自检 | 启动检测系统时钟偏移并提示校准 | ✅ |
这一版全是「用起来别扭」的问题,改的都是聊天页本身:粘贴截图不再被立刻发出去、 右下角「任务」按钮终于能开合、引擎重启后状态栏不会一直挂着红字。
| 问题 | 旧行为 | v2.0.37 |
|---|---|---|
| 粘贴截图 | 一粘贴立即上传并发出,没法再补文字 | 先进输入框上方预览条(缩略图 + 可移除),补完文字按 Enter 一起发 |
| 右下角「任务」 | 点击无任何反应(只切了一个没有样式的 class) | 正常展开 / 收起右侧任务监控栏,按钮高亮跟随状态 |
| 状态栏 API / 任务监控 | 启动瞬间失败就永久显示「Failed to fetch」「API 不可达」 | 自动重试(3~4 秒),恢复后红字自动消失;失败提示改中文并带「重试」按钮 |
| 文件上传入口 | 📎 选完文件直接发出 | 与粘贴/拖拽一致:先进预览条,可多附件 |
已用 Chromium 端到端验证:粘贴截图只进预览不发送 → 补「这张截图说明什么」→ 回车后图片与文字各一条落库; 「任务」按钮 display 在 flex ↔ none 之间正常切换。
彻底重写记忆系统核心三模块,解决「越用越乱」的长期痛点:
语义去重(MinHash+LSH)、事实冲突检测(四类冲突全覆盖)、写入前安全合并(原子持久化)。
| 模块 | 旧状态 | 新状态 |
|---|---|---|
semantic-dedup.ts |
空实现 / 仅占位 | MinHash + LSH 语义去重,中文阈值 0.85,支持增量索引 |
fact-conflict-detector.ts |
空壳类,仅返回 allow | 规则检测 + 可选 LLM 增强,四类冲突全覆盖: 直接矛盾、语义覆盖、时序取代、偏好变更 |
memory-write-integration.ts |
未存在 | 写入前自动去重 + 冲突检测 + 合并入库,原子事务保证 |
| 单元测试 | 无 | memory-dedup-conflict.test.ts 25/25 通过 |
| 官网版本显示 | v2.0.32(落后) | v2.0.34(同步) |
| 冲突类型 | 触发条件 | 处理建议 |
|---|---|---|
direct_contradiction | 同 key 不同值 | 高置信度/用户陈述 → replace_old |
semantic_override | 不同 key 同实体(姓名/叫、喜欢/爱吃) | 身份类 replace_old,偏好类 keep_both |
temporal_supersede | 新事实带「现在/更新为」且时间更晚 | replace_old |
preference_change | 互斥值翻转(过敏花生→海鲜) | keep_both 保留画像历史 |
npx tsc --noEmit 核心模块 0 错误;npm run test 25/25 通过(记忆系统专项);
GitHub + 官网镜像已同步推送(commit ce54c4f)。
两个真实故障的根因修复:数据目录解析散落各处导致「会话/Provider 凭空消失」, 前端 120 秒安全网低于后端超时导致「停止按钮提前消失、排队消息提前放行」。
| 原问题 | 现在 |
|---|---|
把 DATA_DIR 设成绝对路径时,旧的 join(cwd, DATA_DIR) 拼出
<仓库>\D:\lingxi-data 这种荒谬目录,
main.db 与 providers.json 各存各的 → 会话和 Provider 凭空消失 |
新增 src/core/paths.ts 作为唯一数据目录入口,
用 resolve() 兼容相对与绝对路径;同时支持
LINGXI_DATA_DIR / DATA_DIR / LINGXI_HOME,
未设置时从模块路径反推仓库根,不再随启动目录漂移 |
| 任何超过 2 分钟的正常长回复,前端安全网都判为「已结束」并强行清零 generatingChats —— 停止按钮提前消失、排队消息提前放行, 而后端其实还在正常写流 | 安全网阈值提到 1500s(高于后端最长聊天超时 1200s):
既不误杀长回复,又仍能兜住真正丢失 streaming.end 的情况 |
| hub / provider-registry / docker-sandbox / mobile / builtin 各自拼自己的数据路径 | 全部切到 dataPath() / dataDir(),路径解析只有一处实现 |
| 刷新后新 app.js 配旧 style.css,页面样式错乱 | 前端缓存版本号统一(20261002a)+ Service Worker 缓存升到 v22 |
npm run typecheck 0 错误;npm run test 106 passed / 106;
全部前端文件通过 node --check。
集中解决「任务失败后不自动重试」「遇到限流就停下」「一直让用户点继续」三个问题。 新增全引擎唯一的重试协调器,Executor、AI Hub、任务续跑三层统一决策, 不再各自为政地重复重试。
| 原问题 | 现在 |
|---|---|
| 续跑时网络抖一下,整个任务就停,并提示「输入继续」 | 按错误类型自动判断:限流 / 5xx / 网络抖动 → 退避后自动重试;凭据错误 / 模型不存在 → 立即停下并说明原因 |
| 三层各自重试,一次限流被叠乘放大,越撞越狠 | 统一由一个协调器计算重试次数与等待时长,不再叠乘 |
| 多个任务同时撞上同一个限流端点(惊群) | 退避加入随机抖动,错开重试时刻 |
| 无视服务端说的「等 N 分钟再试」 | 完整支持 Retry-After 的秒数与 HTTP 日期两种格式,并解析主流供应商的额度重置提示;单次等待设有绝对上限,不会真睡几小时 |
| 点了「停止」,任务仍会被后台复活 | 用户停止的优先级高于一切自动恢复策略 |
升级 multer 至 2.4.0,修复上传中断导致磁盘写入堆积的 DoS 漏洞(GHSA-3pph-fpjx-jg34)。
当前 npm audit 为 0 vulnerabilities。
TypeScript 编译 0 错误;测试套件 106 项全部通过(其中 29 项为本次新增的重试回归测试)。