전문적인 오케스트레이션을 위한 리듬(Laya)
요약
Laya는 Slack, Gmail, GitHub 등 다양한 전문 도구의 알림을 통합하는 오픈 소스 AI 명령어 센터입니다. 로컬 LLM 또는 클라우드 모델(Claude, GPT 등)을 사용하여 에이전트가 자율적인 리서치와 액션 스테이징을 수행합니다. 이를 통해 사용자는 열기 전에 승인할 수 있는 '액션 카드'를 받게 됩니다.
핵심 포인트
- 다양한 전문 도구의 알림 통합 및 중앙 관리 제공
- 로컬 LLM(Ollama, LM Studio)과 클라우드 모델 모두 지원
- AI 에이전트를 통한 자율적인 리서치와 액션 스테이징 수행
- 액션 카드 기능을 통해 승인 전 미리보기 및 검토 가능
전문적인 오케스트레이션을 위한 리듬입니다.
Laya는 Slack, Gmail, GitHub, Jira, Notion, Outlook, Calendar 알림을 통합하는 오픈 소스, 로컬 우선 AI 알림 명령어 센터입니다. 이 시스템은 Ollama 및 LM Studio를 통한 로컬 LLM 또는 사용자 API 키를 사용한 Claude나 GPT 같은 클라우드 모델로 구동됩니다. Laya는 전문 도구에서 발생하는 이벤트를 가로채고, LLM 기반 에이전트를 사용하여 자율적인 리서치와 액션 스테이징을 수행하며, 알림을 열기 전에 승인할 준비가 된 **액션 카드(Action Cards)**를 제시합니다.
작동하는 도구:
- Ollama 및 LM Studio (로컬 LLM)
- Claude 모델 (Anthropic)
- GPT 모델 (OpenAI)
- Gemini 모델 (Google)
- Llama 모델 및 모든 OpenAI 호환 엔드포인트 — LiteLLM을 통해
통합하는 도구:
- Gmail
- Slack
- GitHub
- Bitbucket
- Jira
- Linear
- Notion
- Outlook (이메일 및 캘린더)
- Google Calendar
사용자 도구 (Jira, Slack, Gmail, Bitbucket, Calendar)
|
v
...
다중 페르소나 브레인: 이벤트를 전문화된 AI 페르소나(엔지니어, 커뮤니케이션, 운영, 영업, 인사, 재무)로 라우팅하며, 도메인별 전용 도구와 프롬프트를 사용하고 모든 알림에 대해 AI가 우선순위를 지정합니다.카드 워크스페이스: 복잡한 작업을 위한 에이전트 워크플로우(버그 수정, 코드 검토) — 여러 승인 단계를 거쳐 코딩 에이전트(Claude Code, Gemini CLI, Codex, Pi CLI 또는 Cursor Agent)와 협업하는 인터랙티브 워크스페이스입니다.카드 리서치: 모든 카드에 대해 온디맨드 심층 리서치 세션을 시작합니다. 코딩 에이전트가 웹 검색, 시맨틱 컨텍스트 및 샌드박스 파일 액세스를 통해 조사합니다.에이전트 추론 백엔드: API 키 대신 설치된 CLI 에이전트 자체의 할당량을 사용하여 분류/합성 파이프라인을 실행할 수 있습니다 — agent/<id>/<model> 형태의 모델을 선택하세요.
(Claude Code, Codex, Gemini 또는 Pi)를 사용하여 모든 단계에 적용할 수 있습니다. Claude Code는 JSON 스키마를 네이티브하게 강제하며, 다른 에이전트는 최선의 노력(best-effort) 기반의 스키마와 재시도 기능을 사용합니다.Spaces: 이벤트 소스를 그룹화하는 사용자 정의 컨텍스트로, 공간별 모델 및 API 키 구성을 지원합니다.Context Association (컨텍스트 연관): 시맨틱 유사성 및 LLM 확인을 사용하여 플랫폼 간 관련 카드를 자동으로 연결합니다. 시간 경과에 따라 그룹화 정확도를 개선하기 위해 사용자의 수정 사항으로부터 학습합니다.Cross-platform memory (크로스 플랫폼 메모리): Jira의
)", Reciprocal Rank Fusion을 통해 병합되어 의미론적(semantic) 일치와 정확한 키워드 매치가 모두 노출됩니다.일관성 (Coherence): 하이브리드 로컬 검색을 사용하여 모든 플랫폼에 걸쳐 특정 인물, 티켓 또는 PR의 추적 기록을 AI가 생성한 내러티브로 제공합니다.이그레스 (Egress): Laya에서 아웃바운드 액션(이메일, Slack 메시지, PR 댓글)을 미리 보기 후 전송하여 직접 실행합니다.옴니 (Omni): 네 가지 시간적 레이어(Attention, Recent, Period, Milestone)를 통해
Laya를 가장 빠르게 사용해 보는 방법은 사전 제작된 릴리스(prebuilt release)입니다. 별도의 툴체인 설치가 필요 없습니다.
-
Releases 페이지에서 사용하는 플랫폼의 설치 파일을 다운로드하세요:
플랫폼별 다운로드 macOS.dmg(universal — Apple Silicon + Intel)
Windows.msi또는.exe
Linux.deb또는.AppImage -
설치하고 실행합니다. 릴리스 빌드를 실행하기 위해 Python, Node, 또는 Rust가 설치되어 있을 필요는 없습니다. 처음 실행 시 Laya는 기기에 이미 호환되는 Python (3.10–3.14; Windows의 경우 x64 빌드) 및 Node.js (20+)가 있는지 확인하고 발견되면 이를 사용하며, 그렇지 않으면 자체 번들된 런타임(bundled runtimes)을 제공합니다. 어느 쪽이든 로컬 n8n 인스턴스가
~/.laya/아래에 설정됩니다. -
API 키(Anthropic, OpenAI, Google 등)를 추가하거나 Laya가 로컬 Ollama / LM Studio 엔드포인트를 가리키도록 지정한 다음, 설정(Settings)에서 도구를 연결합니다.
macOS: 릴리스 빌드는 서명되어 있으므로 일반적인 방식으로 열립니다. 더블 클릭하여 실행하기만 하면 됩니다.
소스 코드로부터 빌드하거나, 엔진을 해킹하거나, 기여하고 싶으신가요? 아래 Development 설정을 따르세요.
세 가지 런타임이 설치되어야 합니다. 각 런타임을 얻는 방법은 다음과 같습니다:
macOS: brew install [email protected] (또는 python.org에서 다운로드)
Ubuntu/Debian: sudo apt install python3 python3-venv python3-pip
Windows: python.org에서 다운로드 (설치 시
Linux: Tailwind CSS 클래스 누락 또는 스타일 업데이트 문제
기본 Linux inotify 파일 감시자 제한(65,536)이 이 프로젝트에는 너무 낮을 수 있습니다. Vite는 소스 파일을 감시해야 하는데, Rust의 target/ 디렉터리가 할당량 대부분을 사용하면서 Tailwind CSS가 유틸리티 클래스를 생성하는 데 조용히 실패하게 만듭니다. 제한을 늘리세요:
# 즉시 적용 (재부팅 시 초기화)
echo 524288 | sudo tee /proc/sys/fs/inotify/max_user_watches
# 영구적 설정
...
Linux AppImage: 빈 흰색 창, WebKitWebProcess가 EGL_BAD_PARAMETER로 중단됨
EGL_BAD_PARAMETER
Mesa가 libwayland 1.23 이상과 함께 빌드된 배포판(Arch/CachyOS, Fedora 44+ 등 일부 구성의 Ubuntu 25.04+)의 경우, AppImage가 빈 창을 열고 다음 메시지를 출력할 수 있습니다:
Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...
AppImage는 오래된 libwayland-client.so.0 (Ubuntu 22.04 빌드 호스트에서 가져옴)을 번들링하여 LD_LIBRARY_PATH를 통해 모든 프로세스에 강제 적용하는 반면, EGL/Mesa는 시스템에서 가져옵니다. 최신 Mesa는 번들된 복사본이 갖지 못한 Wayland 심볼을 필요로 하므로, EGL 드라이버가 로드되지 않아 WebKit이 중단됩니다. WEBKIT_DISABLE_DMABUF_RENDERER, GDK_BACKEND=x11 및 유사한 변수는 아무런 렌더러도 선택되기 전에 실패가 발생하기 때문에 도움이 되지 않습니다.
임시 해결책: AppImage를 추출하고 번들된 Wayland 라이브러리를 삭제하여 시스템 복사본이 사용되도록 한 다음, 추출된 앱을 실행하세요:
./Laya_*_amd64.AppImage --appimage-extract
mv squashfs-root ~/.local/share/laya-app # 또는 영구적인 다른 위치
rm ~/.local/share/laya-app/usr/lib/libwayland-*.so.*
...
.deb 및 .rpm 패키지는 시스템 WebKitGTK를 사용하므로 영향을 받지 않으므로, 깨끗하게 설치되는 곳에서는 이들을 선호하세요. 이는 Laya가 사용하는 AppImage 번들러(Tauri는 오래된 linuxdeploy를 고정하는데, 이 목록은 상위 버전의 libwayland-client 제외 이전입니다) 때문에 발생합니다. tauri-apps/tauri#15665 및 tauri-apps/tauri#15976을 참조하고, #17에서 Laya에 대한 추적을 확인하세요.
Linux 설정: '자동화 설정(Setting up automation)'이 EALLOWREMOTE 오류와 함께 실패합니다.
(npm 12 이상)
EALLOWREMOTE
(npm 12 이상) 만약 ~/.laya/logs/n8n-install.log 파일의 끝 부분이 다음과 같다면:
npm error code EALLOWREMOTE
npm error Fetching packages of type "remote" have been disabled
npm error Refusing to fetch "xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz"
이는 사용자의 npm이 버전 12 이상이며, 이로 인해 기본적으로 allow-remote가 none으로 설정되었기 때문입니다. n8n은 n8n-nodes-base에 의존하며, 이는 xlsx를 npm 레지스트리 외부에 호스팅된 tarball로 고정(pins)합니다. 따라서 npm이 이를 설치하는 것을 거부합니다. 이러한 현상은 Laya가 시스템의 Node 22+ 버전을 발견했지만, 해당 Node의 npm은 별도로 업그레이드되었을 때 발생합니다 (예: Arch의 npm 패키지). Laya가 관리하는 Node 다운로드는 npm 10을 사용하며 이 문제의 영향을 받지 않습니다.
Laya는 v1.9.1 이후 버전부터 n8n 설치 시 --allow-remote=all 옵션을 전달합니다. v1.9.1 또는 그 이전 버전을 사용하는 경우, 프로젝트 로컬 .npmrc 파일을 사용하여 수동으로 n8n을 설치하여 전역 npm 설정이 변경되지 않도록 한 다음, 설정 화면에서 **재시도(Retry)**를 클릭하십시오:
mkdir -p ~/.laya/n8n_module
printf 'allow-remote=all\n' > ~/.laya/n8n_module/.npmrc
npm install --prefix ~/.laya/n8n_module [email protected]
allow-remote=root만으로는 충분하지 않습니다. 왜냐하면 xlsx가 전이적 의존성(transitive dependency)이기 때문입니다. 이는 #18에서 추적되었습니다.
Windows (ARM 기반 Windows 포함): 설정이 "aiohttp" / "tiktoken" / "chromadb"에 '휠(Wheels)'이 필요하다는 오류와 함께 실패합니다.
만약
그리고 다른 라이브러리들 역시 아직 휠(wheels)을 게시하지 않았습니다. 이는 모든 플랫폼에 영향을 미칩니다.Windows용 네이티브 ARM64 Python(win-arm64)의 경우, 어떤 버전의 chromadb, tiktoken, litellm (via fastuuid), grpcio, 그리고 torch도 Windows-on-ARM 휠을 게시하지 않습니다. Laya의 Windows 릴리스는 x64 앱이며, 이는 Windows on ARM에서 에뮬레이션을 통해 실행되므로 x64 Python과 작동합니다.
v1.9.2 이후 버전은 이러한 인터프리터를 자동으로 건너뜁니다. 대신 Laya 자체의 x64 Python 3.12를 다운로드하고, 잘못된 인터프리터로 생성된 venv를 재구축합니다. v1.9.2 이하 버전에서는 Laya를 종료한 후, 아래 옵션 중 하나를 사용하여 호환 가능한 Python을 직접 지정해 주세요. 그런 다음 Laya를 다시 실행하세요. 설정이 venv를 재구축하며, 이 과정은 몇 분 정도 걸립니다.
옵션 A (권장): Laya가 관리하는 Python을 미리 설치합니다. Laya는 PATH에 있는 어떤 것보다도 %USERPROFILE%\.layautton을 선호하므로, 다른 Python 버전을 가지고 있더라도 이 방법이 작동합니다. PowerShell에서는 다음과 같이 실행합니다:
$laya = "$env:USERPROFILE\.laya"
Remove-Item -Recurse -Force "$laya\venv", "$laya\.deps_hash", "$laya\python" -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force $laya | Out-Null
...
옵션 B: x64 Python 3.12 또는 3.13을 설치하고 PATH의 가장 앞에 위치시킵니다. python.org에서 ARM64용이 아닌 **"Windows installer (64-bit)"**를 다운로드하여
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기