快速迭代期 · 接口与文档可能变动
Liri Logo

Liri

玲珑鸟 · AI 私人助手 · 本地优先 · 安全内生

v0.5.22 · MIT 开源 · 发布于 2026-10-28 快速迭代期 · 接口与文档可能变动
4,109 个 TS 文件 69 个内置工具 5 层安全纵深 27 个消息渠道 18 种 Buddy 物种
$ git clone https://github.com/cocosoft/Liri.git
BUILD LOG

一条还没走完的路

2026 年 5 月 25 日,它只有 v0.1 和 100 次提交。五个月后,它长到 4000 多个文件、27 个渠道——也长出了代价:7000 行的巨石文件、105 个无人登记的超限文件,一次「清理死代码」甚至删掉了整个沙箱子系统。

我们回滚、恢复,然后把删除、边界、状态词表一条条做成 CI 门禁。这条路还没走完。

156 天 116 个版本段 20+ 项架构检查
读完整故事

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 FFI 层解析 Bash AST
  • Bash AST 解析,37 条危险命令规则
  • 变量注入检测、路径穿越拦截
  • 参数篡改识别,白名单命令验证
🔍

TypeScript 语义分析

运行时

运行时逐段判定复合命令,拒绝原因可归因到具体语句

  • 复合只读命令逐段放行,不再整条拒绝
  • 14 条注入模式检测(含零宽字符、环境变量污染)
  • 10 条 Shell 专项规则(bash / PowerShell / cmd)
  • 拒绝报文指向真实原因与命中语句
⚙️

Guardrail 规则引擎

策略

可配置策略规则系统,按工具/渠道/用户组精细化授权

  • deny-by-default 白名单模式
  • 权限粒度:工具 → 规则 → 指纹
  • 规则变更即时生效,无需重启
  • 拒绝时回传规则来源与命中语句
🤖

AutoMode 分类器

智能

按任务与工具上下文判定风险等级,自动决定放行、询问还是拒绝

  • 基于命令语义与工具上下文的风险分级
  • 低风险命令按策略自动放行
  • 高风险转入审批,进 Inbox 待处理
  • 未受信命令默认转询问而非直接拒绝
🔒

沙箱隔离执行

隔离

6 种隔离后端:Landlock / macOS / Windows / Docker / SSH / PTY,越权命令无法触及宿主机

  • Linux Landlock:内核级文件系统限制
  • macOS 沙箱 / Windows Low IL + Job 兜底
  • Docker 容器:完整隔离 + 资源与网络策略
  • SSH 远程执行与 PTY 伪终端路径控制
  • 无可用隔离后端时诚实降级并给出提示

安全防护数据

37
危险命令规则
AST 级匹配,覆盖 bash / PowerShell / cmd
14
注入检测规则
含零宽字符、环境变量污染等注入形态
6
沙箱隔离后端
Landlock / macOS / Windows / Docker / SSH / PTY
51
沙箱实现文件
app/src/sandbox 下的 TypeScript 实现

Rust AST 编译时分析 · TypeScript 语义分析 · Guardrail 规则引擎 · AutoMode 分类器 · 沙箱隔离执行

智能路由

按任务类型与难度选择模型档位;主供应商不可用时按配置顺序回退

自动识别 19 种任务类型(下为常见 8 类)

💻
编码
代码生成/调试/审查
✍️
写作
文档/文案/翻译
📊
分析
数据分析/推理/规划
🔧
工具
文件/搜索/系统操作
🌐
翻译
多语言翻译/本地化
🔍
搜索
Web 搜索/信息检索
🎨
创意
头脑风暴/设计/构思
💬
闲聊
日常对话/通用交流

5 层决策管线

1 L1: 路由开关 关闭时直连默认模型,不做额外判定
2 L2: 快通道命中 命中简单任务或前缀规则,直接走低档模型
3 L3: 会话黏性 同一会话保持已选模型,避免频繁切换
4 L4: LLM 判别 小模型判定任务类型与难度,产出 tier
5 L5: Tier 解析 按 simple/medium/complex/reasoning 落到具体模型

供应商回退链

主模型不可用 → 自动回退 → 降级不中断

首选 主供应商 · 当前档位模型
回退 1 同档备用供应商
回退 2 跨档降级供应商
回退 3 其余已配置供应商
兜底 本地 Ollama / llama.cpp

语音交互

不只是打字——说出你的需求,Liri 听懂、执行、回答

🎤

语音输入

本地 faster-whisper 与 SenseVoice,或云端 OpenAI Whisper

本地 faster-whisper
SenseVoice
OpenAI Whisper
流式识别
🔊

语音输出

本地 Piper 或云端 Edge / OpenAI,也可接自定义命令

本地 Piper
Edge TTS
OpenAI TTS
自定义命令
⚡

工具化调用

语音能力本身也是工具,模型可按需调用

tts 工具
audio_play 工具
语音输入
回复播报
📱

多端适配

桌面端与终端共享同一套语音服务

Tauri 桌面
CLI 终端
HTTP API

免提操作 · 多任务场景 · 无障碍辅助 · 语音快捷指令 · 随时随地,说出即执行

外脑系统

知识库 → 记忆 → 会话事件:三段可检索上下文,都保存在本机

第1层:知识库

知识库

Markdown 落盘 + 语义索引,检索结果带来源标注

Markdown 落盘 语义索引 JSONL 关键词检索 向量检索 RRF 融合
第2层:记忆

记忆系统

分层记忆 + SQLite 向量表,按相关性加权召回

分层记忆 memory_vectors 相关性加权 记忆清洗 上下文注入
第3层:事实源

会话事件日志

进入模型请求的内容都会落为会话事件,可回放

events.jsonl 追加 写前落盘 会话回放 审计可追溯 编译期强制登记

整理与治理

空闲时整理知识,超窗时压缩上下文 —— 两条真实存在的后台管线

DreamEngine 五阶段管线

01 Gather
采集
汇总待整理的会话与文档
02 Analyze
分析
抽取主题与可复用结论
03 Generate
生成
产出面向上层的笔记
04 Write
写入
落盘到知识库与记忆
05 Index
索引
重建向量与关键词索引
🧠

上下文分层治理

超窗的长会话先丢头部旧轮次,构建期内存占用从 O(全量) 降到 O(窗口);切窗时保留「原文可取回」提示,需要细节再按页读回;再按 token 水位自动压缩。

分层切窗
超窗先裁旧轮次
按需取回
原文可分段读回
三级压缩
Tier1/2 同步 + Tier3 后台
🔄

PDCA 自迭代闭环

对于长程任务,Liri 自动执行 Plan-Do-Check-Act 循环:分解任务 → 执行步骤 → 评审结果 → 修正方案,直至完成或触发终止条件。

Plan
自动分解
Do
逐步执行
Check
自动评审
Act
自动修正

桌面客户端

Tauri 2.11 + React 19 构建 · 429 个 TSX 组件 · 32 个功能页面 · 完整的桌面体验

Liri Desktop · Tauri 2.11
💬
聊天面板
Liri · 玲珑鸟
你好!我是 Liri,有什么需要帮忙的吗?
帮我分析一下这个项目的数据
好的,正在分析中...
输入消息,按 Enter 发送...

界面结构示意,非真实截图

💬
聊天面板
多轮对话
🤖
模型管理
多模型切换
📚
知识库
文件检索
🧠
记忆管理
历史回顾
⏰
定时任务
Cron 调度
🔌
MCP 接入
服务发现与安装
💰
成本中心
用量与费用记录
🎭
Buddy 伙伴
外观与成长数据

27 个消息渠道

27 个通道均有对应适配器;按通道配置环境变量后启用,也可在编译期裁剪

即时通讯
Telegram
Discord
Slack
WhatsApp
Signal
Matrix
IRC
Line
Zalo
国内平台
微信
企业微信
钉钉
飞书
QQ
元宝
协作与社交
Microsoft Teams
Google Chat
Mattermost
Facebook Messenger
Twitter/X
其它通道
Email
SMS
Webhook
Nostr
Claude
iMessage
移动端接入

共 27 个通道 · 统一通道目录 · 按通道启用 · 支持编译期裁剪

生态市场

插件市场 + MCP 市场 + 技能三来源 + 模板市场 = 可组合的 Liri 生态

🔌

MCP 市场

5 个来源适配器统一检索

GitHub 来源
NPM 来源
官方目录
Smithery 来源
预设服务
🧩

插件市场

本地 / npm / 远端目录三种来源

插件 SDK + 适配器
生命周期与热加载
签名校验
配置端点 + CLI
5 种构建变体
⚡

技能三来源

内置 / 用户 / 第三方物理隔离

11 个内置技能
用户自定义技能
ClawHub 第三方来源
条件触发编排
技能组合与匹配
📚

模板与协议

Agent 与文档模板,接入即用

Agent 模板市场
文档模板市场
MCP / ACP / A2A / LSP
插件与技能可组合
模板参数化复用

不止于功能清单

三块容易被忽略、但每天都在用的东西。

🐣

Buddy 人格系统

不是工具,是伙伴:外观由种子确定性生成,同一只始终长得一样;成长状态落盘,跨会话累计。

18 种物种 8 种帽子 6 种眼睛 5 级稀有度
🧾

成本透明

定价读数据库、按 provider 回显的真实模型名归因、每次调用写入 cost_records;预算过水位先预警,再压缩,最后阻断。

定价表 model_registry 真实 usage 逐次落库 每日预算
🎯

四类使用场景

开发者拿它跑命令改代码,安全负责人用它做 AST 级拦截与审计,运维当常驻服务,普通用户从聊天软件里直接调用。

开发者 安全负责人 运维 普通用户

当前限制

快速迭代期哪些地方还没到位,我们先写出来,省得你自己踩。

安全体系待外部审计

待外部审计

5 层防线与 6 种沙箱后端已实现,51 个沙箱相关文件可逐条核对,但尚未通过第三方安全审计。

桌面端交互打磨中

打磨中

429 个 TSX 组件与 32 个页面已就绪,快捷键、动效与边界场景仍在调整。

生态市场条目有限

建设中

插件市场、MCP 市场与技能来源已打通,但可安装的条目还在补齐。

快速开始

三步启动:安装依赖 → 配置 API Key → 运行 dev

1

安装依赖

$ git clone https://github.com/cocosoft/Liri.git
$ cd Liri/app && bun install
2

配置 API Key

$ cp .env.example .env
$ # 编辑 .env 填入你的 API Key
3

启动 Liri

$ bun run dev

开源 · 社区

Liri 是开源项目,我们欢迎每一位贡献者