빠른 반복 기간 · API와 문서가 변경될 수 있습니다
Liri Logo

Liri

Linglong Bird · AI 개인 비서 · 로컬 우선 · 보안 내장

v0.5.22 · MIT 오픈소스 · 2026-10-28 공개 빠른 반복 기간 · API와 문서가 변경될 수 있습니다
TS 파일 4,109개 내장 도구 69개 보안 5계층 메시지 채널 27개 Buddy 종 18가지
$ git clone https://github.com/cocosoft/Liri.git
BUILD LOG

아직 끝나지 않은 길

2026년 5월 25일, 그것은 v0.1과 커밋 100개뿐이었습니다. 다섯 달 뒤에는 4,000여 개 파일, 채널 27개로 자랐습니다 — 그리고 그 대가도 함께 자랐습니다: 7,000줄의 거대 파일, 아무도 등록하지 않은 초과 파일 105개, 그리고 「죽은 코드 정리」 한 번이 샌드박스 서브시스템 전체를 삭제한 일.

우리는 롤백하고 복구한 뒤, 삭제와 경계, 상태 어휘를 하나씩 CI 게이트로 만들었습니다. 이 길은 아직 끝나지 않았습니다.

156일 116개 릴리스 20+개 아키텍처 검사
전체 이야기 읽기

Liri란 무엇인가

Liri는 TypeScript + Rust 아키텍처를 기반으로 한 AI 개인 비서입니다.

단순한 챗봇이 아닙니다. Liri는 의도를 파악하고, 명령을 실행하며, 작업을 관리하고, 도구를 호출하며, 다른 AI 에이전트와 협업까지 합니다. 터미널에서 데스크톱까지, IM에서 MCP까지 하나의 엔진이 여러 진입점을 뒷받침합니다.

모듈형 서브시스템 71개, TypeScript 파일 4,109개, 데스크톱 컴포넌트 429개 — 빌드 변형별로 잘라낼 수 있습니다.

핵심 기능

여덟 가지 차별화된 기능, 모두 GitHub 소스에서 확인할 수 있습니다

🧠
핵심

심층 에이전트 엔진

자체 개발한 TAOR 루프: 전략과 기억, 체크포인트를 갖췄습니다

  • TAOR 결정 루프 (Think-Act-Observe-Reason)
  • 4가지 에이전트 전략: 범용 / 코딩 / 탐색 / 계획
  • 체크포인트 재개로 장기 작업이 중단되어도 복구됩니다
  • 컨텍스트 계층 분할 윈도 + 3단계 자동 압축
  • 8가지 종료 사유 + 라운드 단위 서킷 브레이커로 공회전을 방지합니다
🛡️
보안

5계층 보안 심층 방어

Rust AST 컴파일 타임 분석 → 5계층 방어 → 다중 백엔드 샌드박스 격리

  • Rust FFI AST 기반 컴파일 타임 Bash 분석
  • 위험 명령 37개 + 주입 규칙 14개
  • Guardrail 정책 규칙 엔진
  • AutoMode 위험 분류기
  • 샌드박스: Landlock / macOS / Windows / Docker / SSH / PTY 지원
🛠️
풍부함

내장 도구 69개

23개 분류로 파일, 명령, 네트워크, 미디어, 코드, 협업을 아우릅니다

  • Rust AST 수준 Bash 실행
  • LSP 코드 인텔리전스 연동
  • 웹 스크래핑과 검색
  • Notebook, 이미지, 오디오·비디오 처리
  • MCP 클라이언트 + 서버 완전 지원
🌐
멀티 플랫폼

메시지 채널 27개

채널 어댑터 27개, WeChat / WeCom / DingTalk / Feishu / QQ 모두 지원

  • Telegram / Discord / Slack / WhatsApp
  • WeChat / WeCom / DingTalk / Feishu / QQ / Yuanbao
  • Email / SMS / Webhook / IRC / Matrix
  • 통합 채널 카탈로그와 게이트웨이 라우팅
  • 채널 단위 빌드 트리밍으로 산출물 축소
📊
관측성

엔터프라이즈급 관측성

OpenTelemetry 연동 + 알림 체계 + 헬스 체크

  • Tracing + Metrics, OTel GenAI 시맨틱 규약 준수
  • 구조화 로그 등급 관리
  • 알림 규칙과 인시던트 관리
  • 헬스 체크, 백업, 데이터 아카이빙
  • 세션 이벤트 재생과 감사 가능
🔌
유연함

플러그인 아키텍처

플러그인 SDK + 스킬 시스템 + 4개 프로토콜, 빌드 변형별 트리밍

  • 5가지 빌드 변형: core / personal / coding / enterprise / headless
  • 플러그인 마켓, 핫 로딩과 서명 검증 지원
  • 스킬 3개 출처 격리 (내장 / 사용자 / 서드파티)
  • MCP / ACP / A2A / LSP 4개 프로토콜
  • 4단계 기동 (T0–T3)과 필요 시 로딩
🏠
프라이버시

로컬 우선

Ollama / llama.cpp 로컬 모델, 데이터는 기본적으로 기기에 저장

  • 로컬 추론, 완전 오프라인 실행 가능
  • SQLite 단일 데이터 파일, 기기 밖으로 나가지 않음
  • 세션은 events.jsonl에 추가 저장
  • 클라우드 프로바이더는 선택적 확장
  • 워크스페이스별로 격리된 샌드박스 디렉터리
🚦
라우팅

스마트 라우팅

19개 작업 분류 × 4단계 tier × 5단계 의사결정 + 프로바이더 폴백 체인

  • 19가지 작업 유형 자동 인식
  • 4단계 tier: simple / medium / complex / reasoning
  • 5단계 의사결정: 스위치 → 빠른 경로 → 세션 고정성 → LLM 판별 → Tier
  • FallbackChain 다중 프로바이더 폴백 + 재시도 정책
  • 가격과 컨텍스트 윈도 모두 데이터베이스에서 조회

운영체제처럼 계층화

얇은 커널 + 서브시스템 경계 + 의존성 게이트. 로컬 우선은 스위치가 아니라 기본값입니다.

커널

@openliri/kernel은 독립 패키지로 대외에는 얇은 인터페이스만 노출하며 K01–K08 게이트가 지킵니다

서브시스템

도구, 채널, 메모리, 라우팅, 샌드박스, 작업은 각자 진입점과 경계를 가집니다

게이트

6계층 의존 방향 + 20여 개 아키텍처 검사, 위반 시 CI 차단

로컬 우선

데이터는 기본적으로 기기에 남고, 모델은 완전히 로컬에서 실행할 수 있습니다

5계층 보안 심층 방어

컴파일 타임 AST 분석에서 런타임 샌드박스까지: 규칙 개수, 임계값, 저하 정책이 모두 소스에 적혀 있습니다

🦀

Rust AST 컴파일 타임 분석

컴파일 타임

코드 실행 전 Rust FFI로 AST 수준 보안 분석을 수행하며 위험 명령 규칙 37개를 검사합니다

  • Rust FFI 계층이 Bash AST를 파싱
  • Bash AST 파싱, 위험 명령 규칙 37개
  • 변수 주입 탐지, 경로 탈출 차단
  • 인자 변조 식별, 허용 목록 명령 검증
🔍

TypeScript 의미 분석

런타임

런타임에 복합 명령을 구간별로 판정하고, 거부 사유를 구체적 문장에 귀속시킵니다

  • 복합 읽기 전용 명령을 구간별로 허용하며, 더 이상 명령 전체를 거부하지 않습니다
  • 주입 패턴 14개 탐지 (제로폭 문자, 환경 변수 오염 포함)
  • Shell 전용 규칙 10개 (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 분류기 · 샌드박스 격리 실행

스마트 라우팅

작업 유형과 난이도로 모델 tier를 선택하고, 주 프로바이더를 쓸 수 없으면 설정된 순서대로 폴백합니다

19가지 작업 유형 자동 인식 (아래는 흔한 8가지)

💻
코딩
코드 생성/디버깅/리뷰
✍️
작성
문서/카피/번역
📊
분석
데이터 분석/추론/계획
🔧
도구
파일/검색/시스템 작업
🌐
번역
다국어 번역/현지화
🔍
검색
웹 검색/정보 검색
🎨
창작
브레인스토밍/디자인/구상
💬
일상 대화
일상 대화/범용 교류

5단계 의사결정 파이프라인

1 L1: 라우팅 스위치 꺼져 있으면 기본 모델로 직결되며 추가 판정을 하지 않습니다
2 L2: 빠른 경로 적중 단순 작업이나 접두사 규칙에 맞으면 저단계 모델로 바로 갑니다
3 L3: 세션 고정성 같은 세션에서 선택된 모델을 유지해 잦은 전환을 피합니다
4 L4: LLM 판별 소형 모델이 작업 유형과 난이도를 판정해 tier를 산출합니다
5 L5: Tier 해석 simple/medium/complex/reasoning에 따라 구체적 모델로 연결합니다

프로바이더 폴백 체인

주 모델 불가 → 자동 폴백 → 중단 없는 저하

기본 선택 주 프로바이더 · 현재 tier 모델
폴백 1 동일 tier 예비 프로바이더
폴백 2 교차 tier 저하 프로바이더
폴백 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 5단계 파이프라인

01 Gather
수집
정리 대상 세션과 문서를 모읍니다
02 Analyze
분석
주제와 재사용 가능한 결론을 추출합니다
03 Generate
생성
상위 계층을 위한 노트를 산출합니다
04 Write
기록
지식 베이스와 메모리에 저장합니다
05 Index
인덱싱
벡터와 키워드 인덱스를 재구축합니다
🧠

컨텍스트 계층 거버넌스

윈도를 넘는 긴 대화는 먼저 오래된 앞부분을 버리고, 빌드 시 메모리 사용량을 O(전체)에서 O(윈도)로 낮춥니다. 윈도를 자를 때 「원문 복원 가능」 안내를 남겨 필요하면 페이지 단위로 다시 읽어오고, 토큰 수위에 따라 자동 압축합니다.

계층 분할 윈도
윈도 초과 시 오래된 라운드부터 절단
필요 시 복원
원문을 구간별로 다시 읽기
3단계 압축
Tier1/2 동기 + Tier3 백그라운드
🔄

PDCA 자체 반복 루프

장기 작업의 경우 Liri가 Plan-Do-Check-Act 루프를 자동으로 수행합니다: 작업 분해 → 단계 실행 → 결과 검토 → 계획 수정, 완료되거나 종료 조건에 도달할 때까지 반복합니다.

Plan
자동 분해
Do
단계별 실행
Check
자동 검토
Act
자동 수정

데스크톱 클라이언트

Tauri 2.11 + React 19 기반 · TSX 컴포넌트 429개 · 기능 화면 32개 · 완전한 데스크톱 경험

Liri Desktop · Tauri 2.11
💬
채팅 패널
Liri · Linglong Bird
안녕하세요! Liri입니다. 무엇을 도와드릴까요?
이 프로젝트의 데이터를 분석해 줘
네, 분석 중입니다...
메시지를 입력하고 Enter로 전송하세요...

인터페이스 구조 예시이며 실제 스크린샷이 아닙니다

💬
채팅 패널
멀티턴 대화
🤖
모델 관리
모델 전환
📚
지식 베이스
파일 검색
🧠
메모리 관리
과거 기록 돌아보기
⏰
예약 작업
Cron 스케줄링
🔌
MCP 연동
서버 탐색과 설치
💰
비용 센터
사용량과 비용 기록
🎭
Buddy 파트너
외형과 성장 데이터

메시지 채널 27개

채널 27개 모두 대응 어댑터가 있습니다. 채널별 환경 변수를 설정하면 활성화되고, 빌드 시 잘라낼 수도 있습니다.

메시징
Telegram
Discord
Slack
WhatsApp
Signal
Matrix
IRC
Line
Zalo
중국 플랫폼
WeChat
WeCom
DingTalk
Feishu
QQ
Yuanbao
협업 및 소셜
Microsoft Teams
Google Chat
Mattermost
Facebook Messenger
Twitter/X
기타 채널
Email
SMS
Webhook
Nostr
Claude
iMessage
모바일 연동

총 27개 채널 · 통합 채널 카탈로그 · 채널별 활성화 · 빌드 시 트리밍 지원

생태계

플러그인 마켓 + MCP 마켓 + 스킬 3출처 + 템플릿 마켓 = 조합 가능한 Liri 생태계

🔌

MCP 마켓

출처 어댑터 5개를 하나의 검색으로

GitHub 출처
NPM 출처
공식 카탈로그
Smithery 출처
기본 제공 서비스
🧩

플러그인 마켓

로컬 / npm / 원격 카탈로그 세 가지 출처

플러그인 SDK + 어댑터
라이프사이클과 핫 로딩
서명 검증
설정 엔드포인트 + CLI
5가지 빌드 변형
⚡

스킬 3출처

내장 / 사용자 / 서드파티를 물리적으로 격리

내장 스킬 11개
사용자 정의 스킬
ClawHub 서드파티 출처
조건 트리거 오케스트레이션
스킬 조합과 매칭
📚

템플릿과 프로토콜

에이전트와 문서 템플릿, 바로 사용

에이전트 템플릿 마켓
문서 템플릿 마켓
MCP / ACP / A2A / LSP
플러그인과 스킬 조합 가능
템플릿 파라미터 재사용

기능 목록 그 이상

놓치기 쉽지만 매일 쓰게 되는 세 가지.

🐣

Buddy 페르소나 시스템

도구가 아니라 동료입니다. 외형은 시드에서 결정론적으로 생성되어 같은 개체는 항상 같은 모습이고, 성장 상태는 디스크에 저장되어 세션을 넘어 누적됩니다.

18종 8가지 모자 6가지 눈 5등급 희귀도
🧾

비용 투명성

가격은 데이터베이스에서 읽고, 프로바이더가 회신한 실제 모델명으로 귀속하며, 모든 호출을 cost_records에 기록합니다. 예산이 수위를 넘으면 먼저 경고하고, 다음은 압축, 마지막은 차단입니다.

가격표 model_registry 실제 usage 호출마다 기록 일일 예산
🎯

네 가지 사용 장면

개발자는 명령을 돌리고 코드를 고치며, 보안 책임자는 AST 수준 차단과 감사에 쓰고, 운영팀은 상시 서비스로 두며, 일반 사용자는 채팅 앱에서 바로 호출합니다.

개발자 보안 책임자 운영팀 일반 사용자

현재 제한

빠른 반복 기간에 아직 미비한 부분을 먼저 적어 둡니다. 직접 부딪혀 알게 되지 않도록.

보안 체계는 외부 감사 대기

외부 감사 대기

5계층 방어와 샌드박스 백엔드 6가지는 구현되었고 샌드박스 관련 파일 51개를 하나씩 확인할 수 있지만, 서드파티 보안 감사는 아직 통과하지 못했습니다.

데스크톱 상호작용 다듬는 중

다듬는 중

TSX 컴포넌트 429개와 화면 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는 오픈소스 프로젝트이며 모든 기여자를 환영합니다