hhyqhh/inno-agent

An open-source personal learning agent with three-layer memory (learner profile / wiki knowledge base / cross-conversation recall), a proactive scheduler, personal IM channels, and a workspace-scoped Practice Lab — built on the Pi SDK.

Inno Agent – 개인 학습 보조자

Inno Agent는 개인의 학습을 돕기 위해 설계된 오픈소스로 로컬에서 실행되는 AI 어시스턴트입니다. 이 프로젝트는 Pi 코드 에이전트 SDK (일반적인 LLM 에이전트 프레임워크)를 기반으로 하며, 계층적 메모리, 능동적 스케줄러, IM 채널 통합, 브라우저 내 실습 랩과 같은 교육 중심 기능을 추가했습니다. 동일한 상태를 공유하는 세 가지 실행 형태를 제공합니다:

  • 데스크톱 앱 (Electron) – macOS/Windows용 원클릭 설치.
  • 웹 UI (React 19 + Tailwind 4) – Node 서버, SSE 스트리밍, 터미널, 위키 뷰, 작업 목록, 설정 기능 포함.
  • CLI/TUI (inno) – HTTP 서버 없이 순수 터미널 인터페이스.

핵심 개념

계층 저장 내용 사용 방법
L1 – 학습자 프로필 목표, 지식 상태, 오해, 선호도. 매 차례에 주입되는 컨텍스트 팩으로 요약됨. 개인 맞춤 설명과 진단 피드백을 제공.
L2 – 네이티브 위키 인간이 읽을 수 있는 페이지(텍스트, PDF, 이미지)를 BM25 + 지식 그래프로 인덱싱. 인게스트 시 LLM 기반 요약. 에이전트가 위키를 질의하여 사실을 검색하거나 새로운 노트 생성 가능.
L3 – 세션 기록 SQLite FTS5에 저장된 완전한 대화 기록. 관련성 임계값 기반으로 검색 제어. 다중 대화 간 기억 및 세션 재생 가능.

cron 스타일 스케줄러를 통해 자연어로 작업을 생성할 수 있습니다 (예: "내일 2장 복습"). 개인용 IM 채널(Feishu, WeChat)을 통해 알림을 전달하고, 웹 UI 외부에서도 에이전트와 대화 가능합니다. 실습 랩은 xterm.js 기반의 워크스페이스 스코프 터미널을 제공하며, 에이전트가 명령 출력을 읽고 반응할 수 있습니다.


주요 기능 (README에 기재된 내용)

  • 3계층 메모리 (L1/L2/L3) – 개별 라이프사이클을 가짐.
  • 능동적 스케줄러 – 어떤 인터페이스에서도 자연어로 실행 가능한 cron 작업.
  • 개인용 IM 채널 – Feishu 네이티브 연동 및 WeChat (iLink QR 로그인 또는 브리지 모드).
  • 실습 랩 – 기록 가능한 실행 기록을 가진 브라우저 내 터미널.
  • 간단 모드 + 프리셋 – 비기술자용 원클릭 워크스페이스 템플릿 (수업 계획, PPT 생성, 시나리오 설명).
  • 스킬 시스템 및 콘텐츠 허브 – 공개 GitHub 허브 또는 자체 호스팅 번들 서비스에서 재사용 가능한 스킬/프리셋 가져오기 가능.
  • 대화 분기 편집 – 이전에 보낸 메시지를 편집하고, 그 지점부터 재생성 가능. 활성 모델 컨텍스트를 오염시키지 않음.
  • 플러그인 가능한 LLM 제공자 – OpenAI 스타일 또는 Anthropic 스타일 엔드포인트 (OpenAI, Anthropic, DeepSeek, Ollama, 로컬 모델) 지원. UI에서 실시간으로 모델 전환 가능.
  • 국제화 및 테마 – 영어/중국어 UI, 4가지 시각 테마.
  • 세션 재생 – 어떤 세션도 내보내고, 정적 사이트에서 정확한 UI 상호작용을 재생 가능.
  • 옵션 OS 수준 사전 – pi-sandbox로 파일 시스템/네트워크 접근 제한. 허용/질문/거부 권한 시스템으로 UI 승인 단계 추가.
  • 컴퓨터 사용 (데스크톱 전용) – @injaneity/pi-computer-use를 통해 사용자 승인 후 화면 관찰 및 UI 작업 수행 가능.

아키텍처 개요

사용자 인터페이스 → 애플리케이션 계층 → Pi 에이전트 런타임 → 계층적 메모리
  1. 사용자 인터페이스 – CLI, React 웹 UI, Electron 데스크톱, Feishu/WeChat 어댑터.
  2. 애플리케이션 계층 – 채널 어댑터, Server-Sent Events 포함 HTTP API, WebSocket 터미널, cron 스케줄러, 실습 랩 오케스트레이션.
  3. 에이전트 런타임 – 수정되지 않은 @earendil-works/pi-coding-agent 커널. Inno는 도구와 before_agent_start 훅을 추가하여 L1/L3 컨텍스트를 주입.
  4. 계층적 메모리 –
    • L1: src/memory/learner/
    • L2: src/memory/l2/ (위키, 그래프, 인게스트, 요약)
    • L3: src/memory/l3/ (세션 JSONL 파일에 대한 SQLite FTS5 인덱스)

리포지토리 구조는 이 분리를 반영합니다 (백엔드는 apps/inno-agent/, 프론트엔드는 apps/inno-agent/web/, Electron 래퍼, 콘텐츠 허브 서버 등).


시작하기

빠른 옵션

  • 데스크톱 앱 – GitHub 릴리스 페이지에서 최신 DMG/EXE를 다운로드하여 실행. 첫 실행 시 ~/.inno-agent/config/config.json가 생성되며, LLM 제공자 API 키를 추가합니다.
  • 소스에서 – 복제 후 npm install, npm run build, 다음 서버 시작:
    npm run server -- --home ./runtime --workspace ./workspace --port 3000
    
    http://localhost:3000 열기.
  • Docker – docker compose up -d (runtime/ 및 workspace/ 마운트).

설정

JSON 파일 (config.example.json)에서 정의:

  • 기본 제공자 및 모델.
  • 제공자 목록 (기본 URL, API 유형, API 키, 모델 ID).
  • 활성화된 채널 (Feishu, WeChat).
  • 활성화된 메모리 계층.
  • UI 선호사항 (테마, 닫기 동작).

런타임 디렉터리는 CLI 플래그 또는 환경 변수 (INNO_HOME, INNO_DATA_DIR 등)로 재정의 가능.


사용 사례 (기재된 내용)

  • 개인 맞춤 튜터링 – 에이전트는 대화에서 오해를 진단하고 L1에 증거를 저장하며, 필요 시 연습 문제나 설명을 생성 가능.
  • 자율 학습 스케줄 – 자연어로 복습 작업을 생성하고 스케줄러가 자동 실행.
  • 워크스페이스 스코프 코딩 연습 – 실습 랩 터미널 사용. 에이전트는 출력을 읽고 수정 제안 또는 새 파일 생성 가능.
  • 지식 기반 구축 – PDF, Office 문서, 이미지를 L2 위키에 인게스트. 나중에 채팅으로 위키 질의 가능.
  • 세션 리뷰 및 공유 – 세션을 내보내고 정적 사이트에서 재생하여 개인적 성찰 또는 교육 데모에 활용 가능.

라이선스 및 인용

  • MIT 라이선스 하에 제공.
  • 프로젝트는 Pi SDK (@earendil-works/pi-*)에 의존하며, 이 역시 MIT 라이선스.
  • README에 BibTeX 형식의 추천 인용이 포함되어 있음.

커뮤니티 및 기여

  • 이슈 및 풀 리퀘스트를 환영합니다. 빌드 단계 (npm run build)가 건전성 검사 역할을 합니다.
  • 비공식 지원을 위한 WeChat 사용자 그룹이 안내됩니다.
  • 문서에는 기술 보고서 (arXiv 2026년 6월), 상세한 시스템 문서, 세션 재생용 쇼케이스 사이트 포함.

결론: Inno Agent는 일반적인 LLM 에이전트 코어에 교육 전용 메모리 관리, 스케줄링, 도구를 결합한 완전 기능의 로컬 호스팅 AI 학습 보조자로, 데스크톱, 웹, 터미널 환경 모두에서 사용 가능합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트