How hhyqhh/inno-agent works
Inno Agent is a single-learner personal learning companion, available through a web interface, desktop shell, and CLI. The main workflow is a learner’s chat turn entering the server, running through the Pi-based agent, and returning as a streamed response; registered tools support teaching with learner evidence and durable knowledge. Separate memory layers preserve learner state, wiki knowledge, and session recall. Scheduler-driven reminders, messaging channels, workspace practice, and remote skills/presets extend that loop. The README documents several capabilities whose source wiring is not shown in the excerpts, so those links are represented only where the tree and documentation support them.
Main entry points: server.ts HTTP server · pi-runner.ts Pi agent runtime · practice-tools.ts Learning tools · job-runner.ts Job runner
Components 24
User interaction
- Web interface
apps/inno-agent/web/src/react/App.tsx - Chat experience
apps/inno-agent/web/src/react/ChatCenter.tsx - HTTP server
apps/inno-agent/src/server.ts - Desktop shell
electron/main.js - CLI entry
apps/inno-agent/src/cli.ts
Agent runtime
- Pi agent runtime
apps/inno-agent/src/agent/pi-runner.ts - Learning tools
apps/inno-agent/src/agent/practice-tools.ts
Learning memory
- Learner profile
apps/inno-agent/src/memory/learner/profile-store.ts - Knowledge state
apps/inno-agent/src/memory/learner/state-engine.ts - Wiki knowledge base
apps/inno-agent/src/memory/l2/l2-memory.ts - Wiki retrieval
apps/inno-agent/src/memory/l2/wiki-query.ts - Session recall
apps/inno-agent/src/memory/l3/sqlite-store.ts
Proactive learning
- Job scheduler
apps/inno-agent/src/scheduler/cron-scheduler.ts - Job runner
apps/inno-agent/src/scheduler/job-runner.ts - IM channels
apps/inno-agent/src/channels/channel.ts
Workspace tools
- Workspace registry
apps/inno-agent/src/workspace/workspace-registry.ts - Practice terminal
apps/inno-agent/src/terminal/terminal-session-manager.ts - Run records
apps/inno-agent/src/terminal/run-record-store.ts - Skill and preset catalog
apps/inno-agent/src/content-source/catalog-service.ts
Other components
- Learner
- Feishu service
- WeChat service
- Content hub
- Model provider
Connections 24
- Learner → Web interface: uses
- Web interface → Chat experience: opens chat
- Chat experience → HTTP server: sends turns
- HTTP server → Pi agent runtime: initializes and dispatches
- Pi agent runtime → Model provider: requests completion
- Pi agent runtime → Learning tools: registers tools
- Learning tools → Learner profile: updates profile
- Knowledge state → Learner profile: projects knowledge
- Learning tools → Wiki knowledge base: queries or ingests
- Wiki retrieval → Wiki knowledge base: searches pages
- Pi agent runtime → Session recall: recalls sessions
- HTTP server → Job scheduler: hosts jobs
- Job scheduler → Job runner: dispatches jobs
- Job runner → Pi agent runtime: runs agent work
- Job runner → IM channels: sends reminders
- IM channels → Feishu service: connects
- IM channels → WeChat service: connects
- HTTP server → Practice terminal: serves practice API
- Practice terminal → Workspace registry: resolves workspace
- Practice terminal → Run records: records runs
- HTTP server → Skill and preset catalog: serves catalog
- Skill and preset catalog → Content hub: fetches skills and presets
- Desktop shell → HTTP server: starts and displays
- CLI entry → Pi agent runtime: starts agent