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 – Personal Learning Companion
Inno Agent is an open‑source, locally‑run AI assistant designed to help an individual learn. It builds on the Pi coding‑agent SDK (a generic LLM‑agent framework) and adds educational‑focused capabilities such as layered memory, a proactive scheduler, IM channel integration, and an in‑browser practice lab. The project ships three runtime forms that share the same state:
- Desktop app (Electron) – one‑click install for macOS/Windows.
- Web UI (React 19 + Tailwind 4) – Node server with SSE streaming, a terminal, wiki view, job list, and settings.
- CLI/TUI (
inno) – pure terminal interface, no HTTP server.
Core Concepts
| Layer | What it stores | How it is used |
|---|---|---|
| L1 – Learner profile | Goals, knowledge state, misconceptions, preferences. Summarized into a context pack injected at every turn. | Drives personalized explanations and diagnostic feedback. |
| L2 – Native wiki | Human‑readable pages (text, PDFs, images) indexed with BM25 + a knowledge‑graph. LLM‑assisted summarisation on ingestion. | Agent can query the wiki to retrieve facts or generate new notes. |
| L3 – Session records | Full conversation logs stored in SQLite FTS5. Retrieval is gated by a relevance threshold. | Enables cross‑conversation recall and session replay. |
A cron‑style scheduler lets the agent create natural‑language jobs (e.g., “review chapter 2 tomorrow”). Personal IM channels (Feishu, WeChat) deliver reminders and allow the user to chat with the agent outside the web UI. The Practice Lab provides a workspace‑scoped terminal (xterm.js) whose command output the agent can read and act upon.
Main Features (as listed in the README)
- Three‑layer memory (L1/L2/L3) with separate lifecycles.
- Proactive scheduler – natural‑language cron jobs runnable from any interface.
- Personal IM channels – Feishu native integration and WeChat (iLink QR login or bridge mode).
- Practice Lab – in‑browser terminal with recordable run history.
- Simple Mode + presets – one‑click workspace templates for non‑technical users (lesson plan, PPT creation, scenario explanation).
- Skill system & Content Hub – import reusable skills/presets from a public GitHub hub or a self‑hosted bundle service.
- Conversation branch editing – edit a previously sent message and regenerate from that point without polluting the active model context.
- Pluggable LLM providers – any OpenAI‑style or Anthropic‑style endpoint (OpenAI, Anthropic, DeepSeek, Ollama, local models). Model can be switched live in the UI.
- Internationalisation & themes – English/Chinese UI, four visual themes.
- Session replay – export any session and view it in a standalone site that replays the exact UI interactions.
- Optional OS‑level sandbox –
pi‑sandboxcan restrict filesystem/network access; a permission system (allow/ask/deny) adds a UI approval step. - Computer‑use (desktop only) – via
@injaneity/pi-computer-use, the agent can observe the screen and perform UI actions after user approval.
Architecture Overview
User Interfaces → Application Layer → Pi Agent Runtime → Layered Memory
- User Interfaces – CLI, React web UI, Electron desktop, Feishu/WeChat adapters.
- Application Layer – channel adapters, HTTP API with Server‑Sent Events, WebSocket terminal, cron scheduler, practice‑lab orchestration.
- Agent Runtime – the unmodified
@earendil-works/pi-coding-agentkernel; Inno adds tools and abefore_agent_starthook to inject L1/L3 context. - Layered Memory –
- L1:
src/memory/learner/ - L2:
src/memory/l2/(wiki, graph, ingestion, summarisation) - L3:
src/memory/l3/(SQLite FTS5 index over session JSONL files)
- L1:
The repository layout mirrors this separation (backend in apps/inno-agent/, frontend in apps/inno-agent/web/, Electron wrapper, content‑hub server, etc.).
Getting Started
Quick options
- Desktop app – download the latest DMG/EXE from the GitHub Releases page and run it. The first launch creates
~/.inno-agent/config/config.jsonwhere you add your LLM provider API key. - From source – clone,
npm install,npm run build, then start the server:
Opennpm run server -- --home ./runtime --workspace ./workspace --port 3000http://localhost:3000. - Docker –
docker compose up -d(mountsruntime/andworkspace/).
Configuration
A JSON file (config.example.json) defines:
- Default provider and model.
- Provider list (base URL, API type, API key, model IDs).
- Enabled channels (Feishu, WeChat).
- Which memory layers are active.
- UI preferences (theme, close behavior).
Runtime directories can be overridden with CLI flags or environment variables (INNO_HOME, INNO_DATA_DIR, etc.).
Use Cases (as described)
- Personalized tutoring – the agent diagnoses misconceptions from conversation, stores evidence in L1, and can generate exercises or explanations on demand.
- Self‑paced study schedule – create natural‑language review jobs that the scheduler runs automatically.
- Workspace‑scoped coding practice – use the Practice Lab terminal; the agent can read output, suggest fixes, or generate new files.
- Knowledge‑base building – ingest PDFs, Office docs, images into the L2 wiki; later query the wiki via chat.
- Session review & sharing – export a session and replay it in a static site for personal reflection or teaching demos.
License & Citation
- Licensed under the MIT License.
- The project depends on the Pi SDK (
@earendil-works/pi-*), also MIT‑licensed. - Recommended citation (BibTeX) is provided in the README.
Community & Contribution
- Issues and pull requests are accepted; the build step (
npm run build) serves as the sanity check. - A WeChat user group is advertised for informal support.
- Documentation includes a technical report (arXiv June 2026), detailed system docs, and a showcase site for session replay.
Bottom line: Inno Agent is a fully‑featured, locally‑hosted AI learning companion that combines a generic LLM‑agent core with education‑specific memory management, scheduling, and tooling, all packaged for desktop, web, or terminal use.
Related
- Project
- Project
- Project
- Dispatch
- Project