Liri
玲珑鸟 · AI 私人助手 · 本地优先 · 安全内生
$ git clone https://github.com/cocosoft/Liri.git 一条还没走完的路
2026 年 5 月 25 日,它只有 v0.1 和 100 次提交。五个月后,它长到 4000 多个文件、27 个渠道——也长出了代价:7000 行的巨石文件、105 个无人登记的超限文件,一次「清理死代码」甚至删掉了整个沙箱子系统。
我们回滚、恢复,然后把删除、边界、状态词表一条条做成 CI 门禁。这条路还没走完。
Liri 是什么
Liri 是一个基于 TypeScript + Rust 架构的 AI 私人助手。
它不只是聊天机器人——它能理解意图、执行命令、管理任务、调用工具、甚至与其他 AI Agent 协作。从终端到桌面,从 IM 到 MCP,同一个引擎支撑多个入口。
71 个模块化子系统,4,109 个 TypeScript 文件,429 个桌面组件 —— 可按构建变体裁剪。
核心能力
八项差异化能力,每一项都能在 GitHub 源码里核对
深度 Agent 引擎
自研 TAOR 循环:有策略、有记忆、有检查点
- TAOR 决策循环(Think-Act-Observe-Reason)
- 4 种 Agent 策略:通用 / 编码 / 探索 / 规划
- 检查点续跑,长任务中断可恢复
- 上下文分层切窗 + 三级自动压缩
- 8 类终止原因 + 轮级熔断,防止空转
5 层安全纵深
Rust AST 编译时分析 → 五层防线 → 多后端沙箱隔离
- Rust FFI AST 编译时 Bash 分析
- 37 条危险命令 + 14 条注入规则
- Guardrail 策略规则引擎
- AutoMode 风险分类器
- 沙箱覆盖 Landlock / macOS / Windows / Docker / SSH / PTY
69 个内置工具
23 个分类,覆盖文件、命令、网络、媒体、代码与协作
- Rust AST 级 Bash 执行
- LSP 智能提示集成
- 网页抓取与搜索
- Notebook、图像、音视频处理
- MCP 客户端 + 服务端完整支持
27 个消息渠道
27 个通道适配器,微信 / 企微 / 钉钉 / 飞书 / QQ 均已支持
- Telegram / Discord / Slack / WhatsApp
- 微信 / 企微 / 钉钉 / 飞书 / QQ / 元宝
- Email / SMS / Webhook / IRC / Matrix
- 统一通道目录与网关路由
- 支持按通道编译裁剪,产物更小
企业级可观测性
OpenTelemetry 接入 + 告警体系 + 健康检查
- Tracing + Metrics,对齐 OTel GenAI 语义约定
- 结构化日志分级管理
- 告警规则与事件管理
- 健康检查、备份与数据归档
- 会话事件可回放、可审计
可插拔架构
插件 SDK + 技能系统 + 四协议,按构建变体裁剪
- 5 种构建变体:core / personal / coding / enterprise / headless
- 插件市场,支持热加载与签名校验
- 技能三来源隔离(内置 / 用户 / 第三方)
- MCP / ACP / A2A / LSP 四协议
- 四阶段启动(T0–T3)与按需加载
本地优先
Ollama / llama.cpp 本地模型,数据默认存在本机
- 本地推理,可完全离线运行
- SQLite 单一数据文件,不出设备
- 会话以 events.jsonl 追加存储
- 云端 Provider 作为可选增强
- 按工作区隔离的沙箱目录
智能路由
19 类任务 × 4 档 tier × 5 层决策 + 供应商回退链
- 19 种任务类型自动识别
- 4 档 tier:simple / medium / complex / reasoning
- 5 层决策:开关 → 快通道 → 会话黏性 → LLM 判别 → Tier
- FallbackChain 多供应商回退 + 重试策略
- 定价与上下文窗口均取自数据库
像操作系统那样分层
薄内核 + 子系统边界 + 依赖门禁;本地优先是默认,不是开关。
内核
@openliri/kernel 独立包,对外只暴露薄接口,K01–K08 门禁守着
子系统
工具、渠道、记忆、路由、沙箱、任务各自有入口与边界
门禁
6 层依赖方向 + 20+ 项架构检查,违反即 CI 阻断
本地优先
数据默认留在本机,模型可以完全本地运行
五层安全纵深
从编译时 AST 分析到运行时沙箱:规则条数、阈值与降级策略都写在源码里
🦀 Rust AST 编译时分析
编译时 在代码执行前用 Rust FFI 做 AST 级安全分析,命中 37 条危险命令规则
Rust AST 编译时分析
编译时在代码执行前用 Rust FFI 做 AST 级安全分析,命中 37 条危险命令规则
- Rust FFI 层解析 Bash AST
- Bash AST 解析,37 条危险命令规则
- 变量注入检测、路径穿越拦截
- 参数篡改识别,白名单命令验证
🔍 TypeScript 语义分析
运行时 运行时逐段判定复合命令,拒绝原因可归因到具体语句
TypeScript 语义分析
运行时运行时逐段判定复合命令,拒绝原因可归因到具体语句
- 复合只读命令逐段放行,不再整条拒绝
- 14 条注入模式检测(含零宽字符、环境变量污染)
- 10 条 Shell 专项规则(bash / PowerShell / cmd)
- 拒绝报文指向真实原因与命中语句
⚙️ Guardrail 规则引擎
策略 可配置策略规则系统,按工具/渠道/用户组精细化授权
Guardrail 规则引擎
策略可配置策略规则系统,按工具/渠道/用户组精细化授权
- deny-by-default 白名单模式
- 权限粒度:工具 → 规则 → 指纹
- 规则变更即时生效,无需重启
- 拒绝时回传规则来源与命中语句
🤖 AutoMode 分类器
智能 按任务与工具上下文判定风险等级,自动决定放行、询问还是拒绝
AutoMode 分类器
智能按任务与工具上下文判定风险等级,自动决定放行、询问还是拒绝
- 基于命令语义与工具上下文的风险分级
- 低风险命令按策略自动放行
- 高风险转入审批,进 Inbox 待处理
- 未受信命令默认转询问而非直接拒绝
🔒 沙箱隔离执行
隔离 6 种隔离后端:Landlock / macOS / Windows / Docker / SSH / PTY,越权命令无法触及宿主机
沙箱隔离执行
隔离6 种隔离后端:Landlock / macOS / Windows / Docker / SSH / PTY,越权命令无法触及宿主机
- Linux Landlock:内核级文件系统限制
- macOS 沙箱 / Windows Low IL + Job 兜底
- Docker 容器:完整隔离 + 资源与网络策略
- SSH 远程执行与 PTY 伪终端路径控制
- 无可用隔离后端时诚实降级并给出提示
安全防护数据
Rust AST 编译时分析 · TypeScript 语义分析 · Guardrail 规则引擎 · AutoMode 分类器 · 沙箱隔离执行
智能路由
按任务类型与难度选择模型档位;主供应商不可用时按配置顺序回退
自动识别 19 种任务类型(下为常见 8 类)
5 层决策管线
供应商回退链
主模型不可用 → 自动回退 → 降级不中断
语音交互
不只是打字——说出你的需求,Liri 听懂、执行、回答
语音输入
本地 faster-whisper 与 SenseVoice,或云端 OpenAI Whisper
语音输出
本地 Piper 或云端 Edge / OpenAI,也可接自定义命令
工具化调用
语音能力本身也是工具,模型可按需调用
多端适配
桌面端与终端共享同一套语音服务
免提操作 · 多任务场景 · 无障碍辅助 · 语音快捷指令 · 随时随地,说出即执行
外脑系统
知识库 → 记忆 → 会话事件:三段可检索上下文,都保存在本机
知识库
Markdown 落盘 + 语义索引,检索结果带来源标注
记忆系统
分层记忆 + SQLite 向量表,按相关性加权召回
会话事件日志
进入模型请求的内容都会落为会话事件,可回放
整理与治理
空闲时整理知识,超窗时压缩上下文 —— 两条真实存在的后台管线
DreamEngine 五阶段管线
上下文分层治理
超窗的长会话先丢头部旧轮次,构建期内存占用从 O(全量) 降到 O(窗口);切窗时保留「原文可取回」提示,需要细节再按页读回;再按 token 水位自动压缩。
PDCA 自迭代闭环
对于长程任务,Liri 自动执行 Plan-Do-Check-Act 循环:分解任务 → 执行步骤 → 评审结果 → 修正方案,直至完成或触发终止条件。
桌面客户端
Tauri 2.11 + React 19 构建 · 429 个 TSX 组件 · 32 个功能页面 · 完整的桌面体验
界面结构示意,非真实截图
27 个消息渠道
27 个通道均有对应适配器;按通道配置环境变量后启用,也可在编译期裁剪
共 27 个通道 · 统一通道目录 · 按通道启用 · 支持编译期裁剪
生态市场
插件市场 + MCP 市场 + 技能三来源 + 模板市场 = 可组合的 Liri 生态
MCP 市场
5 个来源适配器统一检索
插件市场
本地 / npm / 远端目录三种来源
技能三来源
内置 / 用户 / 第三方物理隔离
模板与协议
Agent 与文档模板,接入即用
不止于功能清单
三块容易被忽略、但每天都在用的东西。
Buddy 人格系统
不是工具,是伙伴:外观由种子确定性生成,同一只始终长得一样;成长状态落盘,跨会话累计。
成本透明
定价读数据库、按 provider 回显的真实模型名归因、每次调用写入 cost_records;预算过水位先预警,再压缩,最后阻断。
四类使用场景
开发者拿它跑命令改代码,安全负责人用它做 AST 级拦截与审计,运维当常驻服务,普通用户从聊天软件里直接调用。
当前限制
快速迭代期哪些地方还没到位,我们先写出来,省得你自己踩。
安全体系待外部审计
待外部审计5 层防线与 6 种沙箱后端已实现,51 个沙箱相关文件可逐条核对,但尚未通过第三方安全审计。
桌面端交互打磨中
打磨中429 个 TSX 组件与 32 个页面已就绪,快捷键、动效与边界场景仍在调整。
生态市场条目有限
建设中插件市场、MCP 市场与技能来源已打通,但可安装的条目还在补齐。
快速开始
三步启动:安装依赖 → 配置 API Key → 运行 dev
安装依赖
$ git clone https://github.com/cocosoft/Liri.git
$ cd Liri/app && bun install
配置 API Key
$ cp .env.example .env
$ # 编辑 .env 填入你的 API Key 启动 Liri
$
bun run dev