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 coding-agent SDK(汎用的なLLMエージェントフレームワーク)を基盤としており、階層的なメモリ、能動的なスケジューラ、IMチャネル連携、ブラウザ内実習ラボといった教育向け機能を追加しています。同じ状態を共有する3つの実行形式を提供しています:

  • デスクトップアプリ(Electron) – macOS/Windows向けワンクリックインストール。
  • Web UI(React 19 + Tailwind 4) – Nodeサーバー、SSEストリーミング、ターミナル、Wikiビュー、ジョブリスト、設定画面を備えています。
  • CLI/TUI(inno) – HTTPサーバー不要の純粋なターミナルインターフェース。

コアコンセプト

レイヤー 保存内容 使用方法
L1 – 学習者プロファイル 学習目標、知識状態、誤解、好み。毎ターンに注入されるコンテキストパックに要約されます。 パーソナライズされた説明と診断フィードバックを提供します。
L2 – ネイティブWiki 人間が読めるページ(テキスト、PDF、画像)をBM25 + 知識グラフでインデックス化。インジェスト時にLLMによる要約を実施。 エージェントがWikiを照会して事実を取得、または新しいノートを生成できます。
L3 – セッション記録 SQLite FTS5に格納された完全な会話ログ。関連性閾値に基づくリトリーブ制御。 複数会話間の記憶とセッションリプレイを可能にします。

cron形式スケジューラにより、自然言語でジョブを定義できます(例:「明日、第2章を復習する」)。個人用IMチャネル(Feishu、WeChat)でリマインダーを送信し、Web 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 Web 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/(Wiki、グラフ、インジェスト、要約)
    • 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 Wikiにインジェスト。後でチャットでWikiを照会可能。
  • セッションのレビューと共有 – セッションをエクスポートし、静的サイトで再現して個人的な振り返りや教育デモに活用可能。

ライセンスと引用

  • MITライセンスで提供。
  • プロジェクトは Pi SDK(@earendil-works/pi-*)に依存しており、こちらもMITライセンス。
  • READMEにBibTeX形式の推奨引用が記載されています。

コミュニティと貢献

  • 問題報告とプルリクエストを歓迎。ビルドステップ(npm run build)が健全性チェックとして機能します。
  • 非公式サポート用のWeChatユーザーグループが紹介されています。
  • ドキュメントには技術レポート(arXiv 2026年6月)、詳細なシステムドキュメント、セッションリプレイ用ショーケースサイトが含まれます。

結論:Inno Agentは、汎用LLMエージェントコアに教育特化のメモリ管理、スケジューリング、ツールを組み合わせた、完全機能のローカルホスティングAI学習アシスタントです。デスクトップ、Web、ターミナルのいずれの環境でも利用可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト