56 KiB
🤝 あらゆる形の貢献を歓迎します!
ロードマップでアイテムに投票したり新しいアイデアを提案したりできます。ブランチ戦略、コーディング基準、参加方法については 貢献ガイド をご覧ください。
📰 ニュース
- 2026-05-22 🌐 公式ドキュメントサイトが deeptutor.info で公開 — ガイド、リファレンス、機能ツアーを一か所に。
- 2026-04-19 🎉 111日間で20kスター達成!真にパーソナライズされたインテリジェント個別指導に向けた支援に感謝します。
- 2026-04-10 📄 arXivに論文を公開 — DeepTutorの設計とアイデアについてはプレプリントをご覧ください。
- 2026-02-06 🚀 わずか39日間で10kスター達成!素晴らしいコミュニティに心から感謝します。
- 2026-01-01 🎊 あけましておめでとうございます!Discord、WeChat、またはDiscussionsに参加して一緒にDeepTutorを形作りましょう。
- 2025-12-29 🎓 DeepTutor正式リリース!
✨ 主な機能
DeepTutorは、個別指導、問題解決、クイズ生成、研究、ビジュアライゼーション、習熟度練習を1つの拡張可能なシステムに統合したエージェントネイティブな学習ワークスペースです。
- すべてのモードで1つのランタイム — Chat、Quiz、Research、Visualize、Solve、Mastery Pathが同じエージェントループで実行されるため、エンジンではなく目的を切り替えます。コンテキストは学習者とともに移動します。
- 接続された学習コンテキスト — 知識ベース、本、Co-Writerの下書き、ノートブック、問題バンク、ペルソナ、Memoryが孤立したツールに閉じ込められることなく、すべてのワークフローで利用可能です。
- サブエージェントとPartners — 任意のターンからライブのClaude Code、Codex、またはPartnerに相談(または過去の会話をインポート)し、同じブレインで永続的なIMコンパニオンを実行します。
- マルチエンジン知識 — LlamaIndex、PageIndex、GraphRAG、LightRAG、またはリンクされたObsidianボールトにまたがるバージョン管理されたRAGライブラリ(プラグ可能なドキュメント解析付き)。
- 拡張可能なツールとスキル — 組み込みツール、MCPサーバー、画像/ビデオ/音声生成モデル、EduHubからインストール可能なコミュニティスキル。
- 検査可能なメモリ — L1トレース、L2サーフェスサマリー、L3合成によりパーソナライズが可視化・編集可能となり、Memory Graphですべての主張を証拠まで追跡できます。
🚀 はじめに
DeepTutorは4つのインストールパスを提供しています。すべてのパスは同じワークスペースレイアウトを共有します。設定はデプロイするディレクトリ下のdata/user/settings/に保存されます(明示的に設定した場合はDEEPTUTOR_HOME/deeptutor start --homeの下)。完全なアプリの場合は ワークスペースディレクトリの選択 → インストール → deeptutor init → deeptutor start がお勧めのフローです。
オプション1 — PyPIからインストール · クローン不要のフルローカルWebアプリ + CLI
クローン不要のフルローカルWebアプリ + CLI。Python 3.11+ とPATH上の**Node.js 20+**ランタイムが必要です(パッケージ済みのNext.jsスタンドアロンサーバーはdeeptutor startによって起動されます)。
mkdir -p my-deeptutor && cd my-deeptutor
pip install -U deeptutor
deeptutor init # ポート + LLMプロバイダー + オプション埋め込みを設定
deeptutor start # バックエンド + フロントエンドを起動; ターミナルを開いたまま
deeptutor initはバックエンドポート(デフォルト8001)、フロントエンドポート(デフォルト3782)、LLMプロバイダー / ベースURL / APIキー / モデル、およびKnowledge Base / RAG用のオプション埋め込みプロバイダーを設定します。
deeptutor start後、ターミナルに出力されたフロントエンドURLを開いてください(デフォルトはhttp://127.0.0.1:3782)。そのターミナルでCtrl+Cを押すとバックエンドとフロントエンドが両方停止します。手軽に試すためにdeeptutor initをスキップしても問題ありません。アプリはデフォルトのポートと空のモデル設定で起動し、後からSettings → Modelsで設定できます。
オプション2 — ソースからインストール · チェックアウトに対して開発
チェックアウトに対して開発する場合。CIとDockerに合わせてPython 3.11+とNode.js 22 LTSを使用してください。
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
# venvを作成(macOS/Linux)。Windows PowerShell:
# py -3.11 -m venv .venv ; .\.venv\Scripts\Activate.ps1
python3 -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip
# バックエンド + フロントエンドの依存関係をインストール
python -m pip install -e .
( cd web && npm ci --legacy-peer-deps )
deeptutor init
deeptutor start
ソースインストールはローカルのweb/ディレクトリに対してNext.jsをdevモードで実行します。その他(設定レイアウト、ポート、Ctrl+Cでの停止)はオプション1と同じです。
Conda環境(venvの代わり)
conda create -n deeptutor python=3.11
conda activate deeptutor
python -m pip install --upgrade pip
オプションインストールエクストラ — dev / partners / matrix / math-animator
pip install -e ".[dev]" # テスト/lintツール
pip install -e ".[partners]" # Partner IMチャンネルSDK + MCPクライアント
pip install -e ".[matrix]" # MatrixチャンネルE2EE/libolmなし
pip install -e ".[matrix-e2e]" # Matrix E2EE; libolmが必要
pip install -e ".[math-animator]" # Maninアドオン; LaTeX/ffmpeg/システムライブラリが必要
フロントエンド依存関係の調整とdevサーバーのトラブルシューティング
フロントエンド依存関係の変更: npm install --legacy-peer-depsを実行してweb/package-lock.jsonを更新し、web/package.jsonとweb/package-lock.jsonの両方をコミットしてください。
devサーバーが動かない場合: deeptutor startが応答しない既存のフロントエンドを報告する場合は、表示されたPIDを停止してください。実際にNext.jsプロセスが実行されていない場合、ロックファイルが古くなっています — それらを削除して再試行してください:
rm -f web/.next/dev/lock web/.next/lock
deeptutor start
オプション3 — Docker · 自己完結型コンテナ1つ
フルWebアプリ用のコンテナ1つ。GitHub Container Registryのイメージ:
ghcr.io/hkuds/deeptutor:latest— 安定版リリースghcr.io/hkuds/deeptutor:pre— プレリリース(利用可能な場合)
ポッドマン/rootless/読み取り専用rootfsデプロイメントと完全なインストール別ガイドについては CONTAINERIZATION.md を参照してください。
docker run --rm --name deeptutor \
-p 127.0.0.1:3782:3782 \
-v deeptutor-data:/app/data \
ghcr.io/hkuds/deeptutor:latest
公開が必要なのは
3782のみです。 ブラウザはフロントエンドオリジンのみと通信し、Next.jsミドルウェア(web/proxy.ts)が/api/*と/ws/*をコンテナ内部のFastAPIバックエンドに転送します。8001を公開(-p 127.0.0.1:8001:8001)するのはオプションで、curlやスクリプトでAPIに直接アクセスする場合にのみ便利です。
http://127.0.0.1:3782を開いてください。コンテナは初回起動時に/app/data/user/settings/*.jsonを作成します。Web Settingsページからモデルプロバイダーを設定してください。設定、APIキー、ログ、ワークスペースファイル、メモリ、知識ベースはdeeptutor-dataボリュームに永続化されます。
- 異なるホストポート: 各
-p host:containerマッピングの左側を変更してください(例:-p 127.0.0.1:8088:3782)。/app/data/user/settings/system.jsonのコンテナ側ポートを変更する場合は、再起動して各マッピングの右側を一致するよう更新してください。 - デタッチ:
-dを追加し、docker logs -f deeptutorでログを追跡、docker stop deeptutorで停止、名前を再利用する前にdocker rm deeptutorを実行。deeptutor-dataボリュームは再起動をまたいで設定とワークスペースを保持します。
リモートDocker / リバースプロキシ: ブラウザはフロントエンドオリジン(:3782)のみと通信します。コンテナ内のNext.jsミドルウェアが/api/*と/ws/*をバックエンドサーバーサイドに転送します。一般的な単一コンテナの場合、APIベースをまったく設定しません — リバースプロキシ/TLS終端を:3782に向けるだけです。APIベースが必要なのは分割デプロイメント(バックエンドが別のコンテナ/ホスト)のみです:data/user/settings/system.jsonのnext_public_api_baseをフロントエンドサーバーがバックエンドに到達するためのネットワーク内アドレスに設定してください(サーバーサイドで読み取られ、ブラウザには送信されません)。
{
"next_public_api_base": "http://backend:8001"
}
next_public_api_base_external(およびそのエイリアスpublic_api_base)は低優先度のフォールバックとして受け入れられます。CORSはAPIのURLではなくフロントエンドのオリジンを使用します。認証が無効の場合、DeepTutorはデフォルトで通常のHTTP/HTTPSブラウザオリジンを許可します。認証が有効の場合、正確なフロントエンドオリジンを追加してください:
{
"cors_origins": ["https://deeptutor.example.com"]
}
ホスト上のOllama / LM Studio / llama.cpp / vLLM / Lemonadeへの接続
Docker内では、localhostはホストマシンではなくコンテナ自体です。ホスト上で実行中のモデルサービスに接続するには、ホストゲートウェイ(推奨)を使用してください:
docker run --rm --name deeptutor \
-p 127.0.0.1:3782:3782 -p 127.0.0.1:8001:8001 \
--add-host=host.docker.internal:host-gateway \
-v deeptutor-data:/app/data \
ghcr.io/hkuds/deeptutor:latest
Settings → ModelsでプロバイダーのBase URLをhost.docker.internalに向けてください:
- Ollama LLM:
http://host.docker.internal:11434/v1 - Ollama embedding:
http://host.docker.internal:11434/api/embed - LM Studio:
http://host.docker.internal:1234/v1 - llama.cpp:
http://host.docker.internal:8080/v1 - Lemonade:
http://host.docker.internal:13305/api/v1
Docker Desktop(macOS/Windows)は通常--add-hostなしでhost.docker.internalを解決します。Linuxでは、このフラグが最新のDocker Engineでそのホスト名を作成するポータブルな方法です。
Linuxの代替 — ホストネットワーキング: --network=hostを追加して-pフラグを削除します。コンテナはホストネットワークを直接共有するため、http://127.0.0.1:3782(またはsystem.jsonのfrontend_port)を開き、ホストサービスにはhttp://127.0.0.1:11434/v1のような通常のlocalhostのURLでアクセスできます。ホストネットワーキングはコンテナのポートをホスト上に直接公開し、既存のサービスと競合する可能性があります — それらをループバックに保つにはBACKEND_HOST=127.0.0.1とFRONTEND_HOST=127.0.0.1を設定してください(CONTAINERIZATION.md参照)。
オプション4 — CLIのみ · ソースチェックアウトからWeb UIなし
Web UIが不要な場合。CLIのみのパッケージはPyPIからではなく、ソースチェックアウトからインストールします。
git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
# venvを作成(macOS/Linux)。Windows PowerShell:
# py -3.11 -m venv .venv-cli ; .\.venv-cli\Scripts\Activate.ps1
python3 -m venv .venv-cli && source .venv-cli/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ./packaging/deeptutor-cli
deeptutor init --cli
deeptutor chat
deeptutor init --cliはフルアプリと同じdata/user/settings/レイアウトを共有しますが、バックエンド/フロントエンドのポートプロンプトをスキップし、埋め込みをデフォルトでオフにします(deeptutor kb …やRAGツールを使用する予定がある場合はYesを選択してください)。完全なランタイムレイアウト(system.json、auth.json、integrations.json、model_catalog.json、main.yaml、agents.yaml)を書き込み、アクティブなLLMプロバイダーとモデルのプロンプトも表示します。
よく使うコマンド
deeptutor chat # インタラクティブREPL
deeptutor chat --capability deep_solve --tool rag --kb my-kb
deeptutor run chat "Explain Fourier transform"
deeptutor run deep_solve "Solve x^2 = 4" --tool rag --kb my-kb
deeptutor kb create my-kb --doc textbook.pdf
deeptutor memory show
deeptutor config show
ローカルのdeeptutor-cliインストールにはWebアセットやサーバー依存関係がありません。ソースチェックアウトはそのままにしておいてください — 編集可能インストールはそれを参照します。後からWebアプリを追加するには、PyPIパッケージ(オプション1)をインストールして、同じワークスペースからdeeptutor init + deeptutor startを実行してください。
コード実行サンドボックス(オフィススキル) · docx / pdf / pptx / xlsx 用にモデル生成コードを実行
組み込みオフィススキル — docx / pdf / pptx / xlsx — は、モデルが短いPythonスクリプト(python-docx、reportlab、openpyxlなど)を書き、exec / code_executionツールで実行し、ダウンロードURLを返すことで機能します。これらのツールはサンドボックスバックエンドがアクティブなときにマウントされ、すべてのデプロイメント形態でデフォルトでアクティブです:
- ローカル(オプション1/2)とDocker(オプション3、単一コンテナ): 制限付きサブプロセスサンドボックスがモデルのコードを実行します(ローカルではホスト上、Dockerでは独自の隔離境界であるコンテナ内)。
- docker-compose:
DEEPTUTOR_SANDBOX_RUNNER_URL経由でハードニングされた最小権限のランナーサイドカー(Dockerfile.runner)にルーティングされます — 最も強固な姿勢であり、利用可能な場合は自動的に優先されます。
サブプロセスサンドボックスはdata/user/settings/system.jsonのsandbox_allow_subprocess設定で制御されます(デフォルトtrue)。ホスト上でモデル生成コードを実行することは実際の信頼上の決定です — ホスト側実行を無効にするにはfalseに設定するか(またはDEEPTUTOR_SANDBOX_ALLOW_SUBPROCESS=0をエクスポート)、オフィススキルがファイルを生成できなくなることに注意してください。
設定リファレンス — data/user/settings/下の設定ファイル(JSON/YAML)
data/user/settings/以下のものはすべてプレーンなJSON/YAMLです。ブラウザのSettingsページが推奨エディターです。
| ファイル | 目的 |
|---|---|
model_catalog.json |
LLM、埋め込み、検索プロバイダープロフィール;APIキー;アクティブモデル |
system.json |
バックエンド/フロントエンドポート、公開APIベース、CORS、SSL検証、添付ファイルディレクトリ |
auth.json |
オプション認証トグル、ユーザー名、パスワードハッシュ、トークン/クッキー設定 |
integrations.json |
オプションのPocketBaseとサイドカー統合設定 |
interface.json |
UIの言語/テーマ/サイドバー設定 |
main.yaml |
ランタイム動作のデフォルトとパス注入 |
agents.yaml |
機能/ツールのtemperatureとトークン設定 |
プロジェクトルートの.envはアプリケーション設定ファイルとして読み込まれません。最小限のモデル設定では、Settings → Modelsを開き、LLMプロフィール(ベースURL / APIキー / モデル名)を追加して保存してください。Knowledge Base / RAG機能を使用する予定がある場合のみ埋め込みプロフィールを追加してください。
📖 DeepTutorを探索する
日常的に使用するメインサーフェスから始めましょう:Chat、Partners、My Agents、Co-Writer、Book、Knowledge Center、Learning Space、Memory、Settings。ツアーの最後はマルチユーザーデプロイメントとして共有・分離ワークスペースをカバーします。
💬 Chat — 実際に使うエージェントループ
Chatはデフォルト機能であり、ほとんどの作業が始まる場所です。1つのスレッドで通常の会話、ツールの呼び出し、選択した知識ベースへのグラウンディング、添付ファイルの読み取り、画像生成、サブエージェントとの相談、ノートブックレコードの書き込みが可能で、ターンをまたいで同じコンテキストを維持します。
ループは意図的にシンプルです。モデルはラウンドで考え、役に立つときにツールを呼び出し、結果を観察し、ツールなしのメッセージで終了します。ask_userは特別で、推測する代わりに、エージェントはターンを一時停止し、構造化された明確化の質問をして、あなたが答えた後に再開できます。
ユーザーが切り替えられるツールはbrainstorm、web_search、paper_search、reason、geogebra_analysis — 加えて、対応する生成モデルを設定すればimagegenとvideogenも利用できます。rag、read_source、read_memory、write_memory、read_skill、load_tools、exec、web_fetch、ask_user、list_notebook、write_note、github、consult_subagentなどのコンテキスト依存ツールは、ターンに適切なコンテキストがある場合に自動的にマウントされます。
コンテキストには2種類あります:スティッキーセッションコンテキスト(サブエージェント、知識ベース、ペルソナ、モデル、音声)はコンポーザーツールバーに常駐し、ターンをまたいで持続します。ワンタイム参照(ファイル、チャット履歴、本、ノートブック、問題バンク、インポートしたエージェント)は単一のターンのために+メニューから追加します。
Chatはより深い機能へのローンチポイントでもあります:問題生成にはQuiz、引用付きレポートにはResearch、チャート/図/アニメーションにはVisualize、推論問題解決にはSolve(「その他の機能」下)、学習計画フローにはMastery Path。
🤝 Partner — 同じブレインで動く永続コンパニオン
Partnersは独自のソウル、モデルポリシー、ライブラリ、メモリ、チャンネルを持つ永続コンパニオンです。別個のボットエンジンではありません。ウェブまたはIMからの受信メッセージは、パートナースコープのワークスペース内の通常のChatOrchestratorターンになります。Partnerは「個性を持ったチャットであり、電話番号を持っている」存在です。
各PartnerにはSOUL.md、モデル選択、チャンネル、ツールポリシー、割り当てられたライブラリがあります。知識ベース、スキル、ノートブックはdata/partners/<id>/workspace/にコピーされるため、同じRAG、スキル、ノートブック、メモリツールが特別なケースなしに機能します。Partnerはオーナーのメモリを読み取れますが、自分自身のメモリにのみ書き込めます。
チャンネル層はスキーマ駆動で、インストール済みエクストラと設定された認証情報に応じて、Feishu、Telegram、Slack、Discord、DingTalk、QQ/NapCat、WeCom、WhatsApp、Zulip、Mattermost、Matrix、Mochat、Microsoft Teamsなどのプラットフォームに接続できます。PartnerはサブエージェントとしてMy Agentsに接続でき、通常のチャットターンから相談できます。詳細は以下のMy Agentsを参照してください。
🧑🚀 My Agents — 他のエージェントと相談・インポート
My Agentsは他のエージェントをDeepTutorのコンテキストにし、2つの異なることを行います。ライブエージェントを接続 — マシン上のClaude CodeやCodex CLI、またはPartnerの1つ — してチャットターン内から相談できます。DeepTutorは実際に他のエージェントを実行し、consult_subagentツールを介してその作業をActivityパネルにストリーミングします。Agentチップ(または@入力)で選択し、相談で取れるラウンド数を設定します。
過去の会話をインポート — 既存のClaude CodeやCodexの履歴を名前付き、検索可能、再開可能なエージェントとして取り込みます。インポートする日を選択してください。更新すると再同期されます。チャットターンから+ → My Agentsでインポートした会話を参照でき、DeepTutorはそれをサードパーティのトランスクリプトとして読み取ります — それはDeepTutor自身の声ではなく、相手の会話として保持されます。
✍️ Co-Writer — 選択対応Markdownドラフトツール
Co-Writerはレポート、チュートリアル、メモ、長文学習コンテンツのための分割表示Markdownワークスペースです。ドキュメントは自動保存され、ライブプレビュー(KaTeXの数式、図表フェンス)を表示し、下書きが再利用可能なコンテキストになったときにノートブックに保存できます。
その定義的なアイデアは外科的編集です。テキストの範囲を選択し、DeepTutorに書き直し、拡張、または短縮を依頼します。編集エージェントは知識ベースまたはウェブの証拠に基づいて変更をグラウンドし、ツール呼び出しのトレースを保持し、各変更を承認/拒否の差分として表示します — あなたが承認するまで何も適用されません。
📖 Book — 素材から生きている本を作成
Bookは選択したソースをインタラクティブな生きている本に変換します。静的なPDFではなく、タイプ指定されたブロックから構築された読書環境です。知識ベース、ノートブック、問題バンク、チャット履歴から本を開始できます。作成フローではコンテンツが生成される前に章のアウトラインを提案するため、盲目的な一発生成を受け入れるのではなく、構造を確認できます。
各章はタイプ指定されたブロックにコンパイルされます — テキスト、コールアウト、クイズ、フラッシュカード、タイムライン、コード、図、インタラクティブHTML、アニメーション、概念グラフ、詳細解説、ユーザーノート — 各ページには独自のPage Chatがあります。ブロックは編集可能です:章全体を書き直すことなく、挿入、移動、再生成、またはブロックの種類を変更できます。deeptutor book healthやdeeptutor book refresh-fingerprintsなどのメンテナンスコマンドは、ソース知識がコンパイル済みページからドリフトした場合に検出するのに役立ちます。
📚 Knowledge Center — マルチエンジンRAGライブラリ
知識ベースはRAGの背後にあるドキュメントコレクションです — Chatターン、Co-Writerの編集、Book生成、Partnerの会話をグラウンドします。特徴的なのは検索エンジンの選択です:LlamaIndex(デフォルト、ローカルベクター + BM25)、PageIndex(ホスト型、ページレベル引用付き推論検索)、GraphRAGとLightRAG(知識グラフ検索)、LightRAG Server(HTTP経由で接続する外部LightRAGインスタンスに検索をオフロード)、またはチューターがその場で読み書きするリンクされたObsidianボールト。各KBは1つのエンジンにバインドされます。
KBを作成する際は、新規作成(ドキュメントをアップロードして新しいインデックスを構築)または既存をリンク(再インデックスなしで既に構築されたインデックスを再利用)を選択します。再インデックスは新しいフラットなversion-Nディレクトリを書き込み、以前のものを保持するため、再構築中に作業中のインデックスが破壊されることはありません。解析に失敗したファイルを完全な削除・再構築なしで取り除けるよう、error状態のベースからでも単一のドキュメントを削除できます。ドキュメント解析(Text-only、MinerU、Docling、markitdown、PyMuPDF4LLM)はSettings → Knowledge Baseで選択し、ローカルモデルのダウンロードはデフォルトでオフです。CLIはdeeptutor kb list、info、create、add、search、set-default、deleteでライフサイクルをミラーします。
🌐 Learning Space — スキル、ペルソナ、再利用可能なコンテキスト
Learning Spaceはライブラリとパーソナライゼーション層です — 永続するものが置かれる場所です。会話と素材にはチャット履歴、ノートブック、問題バンク(各保存された質問にはあなたの回答、参照回答、説明が含まれます)が含まれます。パーソナライゼーションには習熟パス、ペルソナ(peer、research-assistant、teacherなどの動作プリセット)、スキル(モデルがオンデマンドで読み取るSKILL.mdプレイブック)が含まれます。ここのものはすべてChat、Partners、Co-Writer、Bookから再利用できます。
すべてのスキルを自分で書く必要はありません。EduHubからインポートでコミュニティカタログを参照し、セキュリティゲートを通じてスキルをライブラリに直接ダウンロードできます(エコシステム参照)。
🧠 Memory — 検査可能なパーソナライゼーション
Memoryはファイルバックの3層システムで、読み取り、キュレーション、監査が可能です — 意図的に隠されたベクターストアではありません。L1はワークスペースミラーに加えた追記のみのイベントトレース(trace/<surface>/<date>.jsonl)、L2はサーフェスごとのキュレートされた事実(L2/<surface>.md)、L3はクロスサーフェス合成(L3/<profile|recent|scope|preferences>.md)です。L2はL1を引用し、L3はL2を引用するため、プロフィールの何も説明不能なものはありません。
Memory Graphはピラミッド全体を表示します — L3合成が中心、L2が中間リング、L1トレースが外側 — どんな合成された主張も背後にある正確な生のイベントまで追跡できます。Memoryはchat、notebook、quiz、kb、book、partner、cowriterサーフェスで追跡されます。コンソリデーターのUpdate / Audit / DedupバジェットはSettings → Memoryで調整します。
⚙️ Settings — ワンコントロールプレーン
Settingsはオペレーションコントロールプレーンで、ライブステータスストリップ(バックエンド、LLM、埋め込み、検索)とエリアごとのカードがあります:外観(テーマ + UI言語)、ネットワーク(APIベース、ポート、CORS)、モデル(LLM、埋め込み、検索、TTS、STT、画像生成、動画生成)、Knowledge Base(ドキュメント解析エンジン)、Chat(ツール、MCPサーバー、機能パラメーター)、Partners & Agents(ターンから相談できるサブエージェント)、Memory(コンソリデーターのバジェット)。
ほとんどのセクションはドラフトと適用フローを使用するため、コミットする前にプロバイダーをテストできます。4つのテーマが箱に入っています:Default、Cream、Dark、Glass。プロジェクトルートの.envファイルは意図的に無視されます。ランタイム設定はDEEPTUTOR_HOMEまたはdeeptutor start --homeでアプリを別の場所に向けない限り、data/user/settings/*.jsonに保存されます。
👥 マルチユーザー — 共有デプロイメント · オプション認証、分離されたユーザーワークスペース
認証はデフォルトでオフです — DeepTutorはシングルユーザーで動作します。オンにすると、1つのdata/ツリーで管理者ワークスペース、分離されたユーザーワークスペース、Partnerワークスペースが同居します:
data/
├── user/ # 管理者ワークスペース + グローバル設定
├── users/<uid>/ # ユーザー単位スコープ:チャット履歴、メモリ、ノートブック、KB
├── partners/<id>/workspace/ # Partner(合成ユーザー)スコープ
└── system/ # auth/users.json · grants/<uid>.json · audit/usage.jsonl
最初に登録したユーザーが管理者になり、モデルカタログ、プロバイダー認証情報、共有知識ベース、スキル、ユーザー単位グラントを所有します。それ以外のユーザーは分離されたワークスペースと編集されたSettingsページを取得します — 管理者が割り当てたモデル、KB、スキルはスコープ付きの読み取り専用オプションとして表示され、生のAPIキーは見えません。
有効化: data/user/settings/auth.jsonで認証をオンにし、deeptutor startを再起動し、/registerで最初の管理者を登録し、/admin/usersからユーザーを追加し、グラントを通じてモデル、KB、スキル、Partner、ツール/MCPポリシー、コード実行アクセスを割り当てます。
PocketBaseはシングルユーザー統合のままです — 外部ユーザーストアを組み込まない限り、マルチユーザーデプロイメントでは
integrations.pocketbase_urlを空白にしてください。
⌨️ DeepTutor CLI — エージェントネイティブインターフェース
1つのdeeptutorバイナリで2つの使い方:ターミナルで生活する人のためのインタラクティブなREPLと、DeepTutorをツールとして動かす他のエージェントのための構造化されたJSON。同じ機能、ツール、知識ベースがどちらでも利用できます。
自分で操作する
deeptutor chatでインタラクティブなREPLを開きます。deeptutor run <capability> "<message>"で1回のターンを実行して終了します。どちらも同じ--capability、--tool、--kb、--configフラグを使用します。
deeptutor chat # インタラクティブREPL
deeptutor chat --capability deep_solve --kb my-kb --tool rag
deeptutor run chat "Explain the Fourier transform" --tool rag --kb textbook
deeptutor run deep_research "Survey 2026 papers on RAG" \
--config mode=report --config depth=standard
Webアプリのすべてもここにあります — 知識ベース(kb)、セッション(session)、パートナー(partner)、スキル(skill)、ノートブック、メモリ、設定。全リストは以下を参照。
エージェントに操作させる
DeepTutorは別のエージェントによって操作されるように設計されています。任意のrunに--format jsonを追加すると、各ターンがNDJSON — 1行1イベント(content、tool_call、tool_result、doneなど)としてストリームされ、各行がsession_idでタグ付けされます。実行はヘッドレスセーフです:TTYなしのask_user一時停止は、ハングする代わりに空の応答で自動解決されます。
# 1回実行、マシン読み取り可能
deeptutor run deep_solve "Find d/dx[sin(x^2)]" --tool reason --format json
# 1つのステートフルセッションでターンを連鎖 — IDをキャプチャして再利用
SID=$(deeptutor run deep_research "Survey 2026 papers on RAG" \
--config mode=report --config depth=standard --format json \
| jq -r 'select(.type=="done").session_id')
deeptutor run deep_question "Quiz me on that survey" --session "$SID" --format json
リポジトリにはルートのSKILL.mdが含まれています — ツール使用可能なLLMにサーフェス全体を1回の読み取りで教える約150行のハンドオーバードキュメント。Claude Code、Codex、OpenCodeに渡してください(これらはSKILL.mdを自動的に取得します)、またはdeeptutor runをLangChain / AutoGenループのツールとしてラップしてください。完全なレシピ:Agent Handoff。
コマンドリファレンス
| コマンド | 説明 |
|---|---|
deeptutor init |
現在のワークスペースのdata/user/settingsを作成または更新 |
deeptutor start [--home PATH] |
バックエンド + フロントエンドを一緒に起動 |
deeptutor serve [--port PORT] |
FastAPIバックエンドのみ起動 |
deeptutor run <capability> <message> |
単一機能ターンを実行(chat、deep_solve、deep_question、deep_research、visualize、math_animator、mastery_path);--format jsonでNDJSON出力 |
deeptutor chat |
機能、ツール、KB、ノートブック、履歴コントロール付きインタラクティブREPL |
deeptutor partner list/create/start/stop |
IM接続Partnersを管理 |
deeptutor kb list/info/create/add/search/set-default/delete |
LlamaIndex知識ベースを管理 |
deeptutor skill search/install/list/remove/login/logout/publish/update |
スキルを管理、ハブからインストール、自分のスキルを公開(デフォルトはeduhub:<slug>、エコシステム参照) |
deeptutor memory show/clear |
L2/L3メモリドキュメントを検査またはL1/全メモリをクリア |
deeptutor session list/show/open/rename/delete |
共有セッションを管理 |
deeptutor notebook list/create/show/add-md/replace-md/remove-record |
Markdownファイルからノートブックを管理 |
deeptutor book list/health/refresh-fingerprints |
本を検査してソースフィンガープリントを更新 |
deeptutor plugin list/info |
登録済みツールと機能を検査 |
deeptutor config show |
設定サマリーを出力 |
deeptutor provider login <provider> |
プロバイダー認証(openai-codex OAuthログイン;github-copilotは既存のCopilot認証セッションを検証) |
CLIのみのディストリビューション
CLIのみのパッケージはpackaging/deeptutor-cliにあります。このチェックアウトから、ソースからインストールしてください:
python -m pip install -e ./packaging/deeptutor-cli
まだPyPIには公開されていないため、メインのはじめにセクションにはソースインストールのパスが記載されています。
🧩 エコシステム — EduHubとスキルコミュニティ
DeepTutorスキルはオープンなAgent-Skillsフォーマットを使用します — SKILL.mdプレイブック(YAMLフロントマター + Markdown)と任意の参照ファイルを含むフォルダです。これはDeepTutor固有のものではないため、このフォーマットを話すどんなレジストリもあなたのライブラリのソースになります。DeepTutorには**EduHub** — 独自の教育特化スキルレジストリ — がデフォルトハブとして組み込まれています。
EduHub — DeepTutorのスキルエコシステム
EduHubは、DeepTutorが教育指向のエージェントスキルを共有するために立ち上げたコミュニティハブです — ソクラテス式チューター、フラッシュカードビルダー、エッセイフィードバック、試験ブループリント、概念説明者など。DeepTutorに組み込まれているため、設定不要です:ベアスラッグまたはeduhub:プレフィックスでそこに解決されます。
検索とインストール — ブラウザでLearning Space → スキル → EduHubからインポートを開いてカタログを参照し、スキルをライブラリに直接ダウンロードできます。ターミナルから:
deeptutor skill search "socratic tutor" # EduHubを検索(デフォルトハブ)
deeptutor skill install socratic-tutor # 取得 → 検証 → 登録
deeptutor skill install eduhub:socratic-tutor@1.2.0 # ハブとバージョンを指定
deeptutor skill list # ハブの出所付きローカルスキル
自分のスキルを公開 — SKILL.mdをパッケージ化してコミュニティに共有:
deeptutor skill login # EduHubへのブラウザサインイン
deeptutor skill publish ./my-skill # インタラクティブ:トラック + タグを選択してアップロード
deeptutor skill update # ロールバックまたは新バージョンをリリース
EduHubはまたスタンドアロンのClawHub互換レジストリでもあり、DeepTutor以外のエージェント(Claude Code、Codexなど)がeduhub CLI経由で直接使用できます — npx eduhub install socratic-tutor。
インポートセキュリティゲート
ソースに関わらず、すべてのインポートはワークスペースに触れる前に同じセキュリティゲートを通過します:
- レジストリのセキュリティ判定が最初にチェックされます — フラグが立てられたパッケージは
--allow-unverifiedを渡さない限り拒否されます; - アーカイブはテキスト/スクリプトサフィックスホワイトリストの後ろで防御的に展開されます(zip-slip / zip-bombガード)、バイナリはワークスペースに入れません;
- フロントマターはDeepTutorのスキーマに正規化され、
always:が削除されるため、ダウンロードしたスキルはすべてのシステムプロンプトに自分自身を強制できません; - 出所 — ハブ、バージョン、判定、インストール時間 — が監査と更新のために
.hub-lock.jsonに記録されます。
マルチユーザーデプロイメントでは、インストールは管理者のみです:新しいスキルは管理者カタログに入り、グラントが割り当てるまで他のユーザーには見えません。管理者はロールアウトする前にそれを審査できます。
ClawHubとも互換性あり
DeepTutorはオープンなAgent-Skillsフォーマットに対応しているため、**ClawHub**も一流のソースとして機能します — EduHubとともに組み込まれています。ハブプレフィックスで選択:
deeptutor skill search "git release notes" --hub clawhub
deeptutor skill install clawhub:git-release-notes@1.0.1
settings/skill_hubs.jsonにさらにレジストリを追加できます:type: "clawhub"エントリは互換性のあるHTTP APIを指し(EduHubとClawHubはどちらもそれを話します)、type: "command"はレジストリが配布するフェッチCLIをラップし、"default"はベアスラッグに使用するハブを選択します。すべて同じインポートゲートを通過します。
🌐 コミュニティ
📮 連絡先
DeepTutorはBingxi ZhaoがHKUDSグループ内でリードするオープンソースプロジェクトで、完全にオープンソースの形でコミュニティと共に反復されています。現在、いかなる有料オンライン製品も存在しません。議論、アイデア、協力についてはbingxizhao39@gmail.comまでお気軽にご連絡ください。
🙏 感謝
Chao Huang(HKUデータインテリジェンスラボディレクター)、HKUDSのラボメイト — 特にJiahao Zhang、Zirui Guo、Xubin Ren — の温かいサポートに心から感謝します。また、毎日DeepTutorを形作ってくれるオープンソースコミュニティにも深く感謝します:あなたたちのスター、Issue、プルリクエスト、ディスカッションがDeepTutorを形作っています。
DeepTutorは優れたオープンソースプロジェクトの肩の上に立っています。ツールとインスピレーションの両方を与えてくれた以下のプロジェクトに深く感謝します:
| プロジェクト | 役割 / インスピレーション |
|---|---|
| LlamaIndex | RAGパイプラインとドキュメントインデックスのバックボーン |
| nanobot | オリジナルTutorBotを動かした超軽量エージェントエンジン (HKUDS) |
| LightRAG | シンプルで高速なRAG (HKUDS) |
| AutoAgent | ゼロコードエージェントフレームワーク (HKUDS) |
| AI-Researcher | 自動化研究パイプライン (HKUDS) |
| OpenClaw | ClawHubの背後にあるオープンエージェントゲートウェイとスキルエコシステム |
| Codex | CLIワークフローにインスピレーションを与えたエージェントネイティブコーディングCLI |
| Claude Code | DeepTutorエージェントループにインスピレーションを与えたエージェントコーディングCLI |
| ManimCat | Math AnimatorのためのAI駆動数学アニメーション生成 |
🗺️ ロードマップと貢献
DeepTutorが反復し改善し続け、最終的にオープンソースコミュニティへのギフトになることを望んでいます。ロードマップは継続的に更新されています。アイテムに投票したり新しいものを提案したりできます。貢献したい方は、ブランチ戦略、コーディング基準、参加方法について貢献ガイドをご覧ください。
Apache License 2.0に基づきライセンス。























