Skip to content

Latest commit

 

History

History
707 lines (487 loc) · 48.7 KB

File metadata and controls

707 lines (487 loc) · 48.7 KB

DeepTutor logo DeepTutor

DeepTutor: Dożywotnie Spersonalizowane Korepetycje

Docs — deeptutor.info

HKUDS%2FDeepTutor | Trendshift  HKUDS%2FDeepTutor | Trendshift  HKUDS%2FDeepTutor | Trendshift

English  简体中文  日本語  Español  Français  Arabic  Русский  Hindi  Português  Thai  Polski

Python 3.11+ Next.js 16 License GitHub release arXiv

Discord Feishu WeChat

Funkcje · Zacznij · Eksploruj · CLI · Ekosystem · Społeczność


🤝 Zapraszamy do wszelkich form współpracy! Głosuj na elementy planu działania lub proponuj nowe w Roadmap, a szczegóły dotyczące strategii gałęzi, standardów kodowania i sposobu rozpoczęcia pracy znajdziesz w naszym Przewodniku dla współtwórców.

📰 Aktualności

  • 2026-05-22 🌐 Oficjalna strona dokumentacji dostępna na deeptutor.info — przewodniki, odniesienia i wycieczki po możliwościach w jednym miejscu.
  • 2026-04-19 🎉 20 tys. gwiazdek w 111 dni! Dziękujemy za wsparcie na drodze do prawdziwie spersonalizowanych, inteligentnych korepetycji.
  • 2026-04-10 📄 Nasz artykuł jest już dostępny na arXiv — przeczytaj preprint, aby dowiedzieć się więcej o projekcie i pomysłach stojących za DeepTutor.
  • 2026-02-06 🚀 10 tys. gwiazdek w zaledwie 39 dni! Ogromne podziękowania dla naszej niesamowitej społeczności.
  • 2026-01-01 🎊 Szczęśliwego Nowego Roku! Dołącz do naszego Discorda, WeChat lub Dyskusji — razem kształtujmy przyszłość DeepTutor.
  • 2025-12-29 🎓 DeepTutor jest oficjalnie wydany!

✨ Główne funkcje

DeepTutor to natywne dla agentów środowisko nauki, które łączy korepetycje, rozwiązywanie problemów, generowanie quizów, badania, wizualizacje i ćwiczenia opanowania wiedzy w jednym rozszerzalnym systemie.

  • Jedno środowisko dla wszystkich trybów — Chat, Quiz, Research, Visualize, Solve i Mastery Path działają na tej samej pętli agenta, więc zmieniasz cel, a nie silnik, a kontekst podąża za uczącym się.
  • Połączony kontekst uczenia się — bazy wiedzy, książki, szkice Co-Writer, notatniki, banki pytań, persony i Memory są dostępne we wszystkich przepływach pracy zamiast żyć w izolowanych narzędziach.
  • Subagenty i Partners — konsultuj działającego Claude Code, Codex lub Partner z dowolnej tury (lub importuj ich poprzednie konwersacje) i uruchamiaj stałych towarzyszy IM na tym samym mózgu.
  • Wielosilnikowa wiedza — wersjonowane biblioteki RAG z LlamaIndex, PageIndex, GraphRAG, LightRAG lub podłączonym vault Obsidian, z podłączalnym parsowaniem dokumentów.
  • Rozszerzalne narzędzia i umiejętności — wbudowane narzędzia, serwery MCP, modele generowania obrazów / wideo / głosu oraz instalowalne umiejętności społecznościowe z EduHub.
  • Inspektowalna pamięć — ślady L1, podsumowania powierzchni L2 i synteza L3 sprawiają, że personalizacja jest widoczna i edytowalna, a Memory Graph śledzi każde twierdzenie z powrotem do jego dowodów.

🚀 Pierwsze kroki

DeepTutor oferuje cztery ścieżki instalacji. Wszystkie współdzielą jeden układ obszaru roboczego: ustawienia żyją w data/user/settings/ pod katalogiem, z którego uruchamiasz (lub pod DEEPTUTOR_HOME / deeptutor start --home jeśli ustawisz je jawnie). Dla pełnej aplikacji zalecany przepływ to wybierz katalog obszaru roboczego → zainstaluj → deeptutor initdeeptutor start.

Opcja 1 — Instalacja z PyPI · pełna lokalna aplikacja Web + CLI, bez potrzeby klonowania

Pełna lokalna aplikacja Web + CLI, bez potrzeby klonowania. Wymaga Python 3.11+ i środowiska uruchomieniowego Node.js 20+ na PATH (spakowany serwer standalone Next.js jest uruchamiany przez deeptutor start).

mkdir -p my-deeptutor && cd my-deeptutor
pip install -U deeptutor
deeptutor init     # pyta o porty + dostawcę LLM + opcjonalne osadzanie
deeptutor start    # uruchamia backend + frontend; utrzymuj terminal otwarty

deeptutor init pyta o port backendu (domyślnie 8001), port frontendu (domyślnie 3782), dostawcę LLM / bazowy URL / klucz API / model i opcjonalnego dostawcę osadzania dla Bazy wiedzy / RAG.

Po deeptutor start otwórz adres URL frontendu wydrukowany w terminalu — domyślnie http://127.0.0.1:3782. Naciśnij Ctrl+C w tym terminalu, aby zatrzymać backend i frontend. Pominięcie deeptutor init jest dobre dla szybkiego testu; aplikacja uruchamia się z domyślnymi portami i pustymi ustawieniami modelu, skonfiguruj je później w Settings → Models.

Opcja 2 — Instalacja ze źródeł · programowanie przy użyciu kodu źródłowego

Do programowania przy użyciu kodu źródłowego. Użyj Python 3.11+ i Node.js 22 LTS, aby dopasować do CI i Dockera.

git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor

# Utwórz 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

# Zainstaluj zależności backendu + frontendu
python -m pip install -e .
( cd web && npm ci --legacy-peer-deps )

deeptutor init
deeptutor start

Instalacje ze źródeł uruchamiają Next.js w trybie deweloperskim względem lokalnego katalogu web/; wszystko inne (układ konfiguracji, porty, zatrzymanie za pomocą Ctrl+C) odpowiada Opcji 1.

Środowisko Conda (zamiast venv)
conda create -n deeptutor python=3.11
conda activate deeptutor
python -m pip install --upgrade pip
Opcjonalne dodatki instalacyjne — dev / partners / matrix / math-animator
pip install -e ".[dev]"             # narzędzia testów/lint
pip install -e ".[partners]"        # SDK kanałów IM Partners + klient MCP
pip install -e ".[matrix]"          # kanał Matrix bez E2EE/libolm
pip install -e ".[matrix-e2e]"      # Matrix E2EE; wymaga libolm
pip install -e ".[math-animator]"   # addon Manim; wymaga LaTeX/ffmpeg/bibliotek systemowych
Dostosowania zależności frontendowych i rozwiązywanie problemów z serwerem deweloperskim

Zmiana zależności frontendowych: uruchom npm install --legacy-peer-deps, aby odświeżyć web/package-lock.json, a następnie zatwierdź zarówno web/package.json, jak i web/package-lock.json.

Zablokowany serwer deweloperski: jeśli deeptutor start zgłasza istniejący frontend, który nie odpowiada, zatrzymaj PID, który wydrukuje. Jeśli żaden proces Next.js nie jest uruchomiony, pliki blokady są przestarzałe — usuń je i spróbuj ponownie:

rm -f web/.next/dev/lock web/.next/lock
deeptutor start
Opcja 3 — Docker · jeden samodzielny kontener

Jeden kontener dla pełnej aplikacji Web. Obrazy w GitHub Container Registry:

  • ghcr.io/hkuds/deeptutor:latest — stabilne wydanie
  • ghcr.io/hkuds/deeptutor:pre — wersja wstępna, gdy dostępna

Zobacz CONTAINERIZATION.md w celu uzyskania informacji o wdrożeniach podman/rootless/read-only-rootfs i pełnym przewodniku per-instalacja.

docker run --rm --name deeptutor \
  -p 127.0.0.1:3782:3782 \
  -v deeptutor-data:/app/data \
  ghcr.io/hkuds/deeptutor:latest

Tylko 3782 musi być opublikowane. Przeglądarka komunikuje się wyłącznie z serwerem frontendu; middleware Next.js (web/proxy.ts) przekazuje /api/* i /ws/* do backendu FastAPI wewnątrz kontenera. Opublikowanie 8001 (-p 127.0.0.1:8001:8001) jest opcjonalne — przydatne tylko do bezpośredniego uderzania w API z curl lub skryptów.

Otwórz http://127.0.0.1:3782. Kontener tworzy /app/data/user/settings/*.json przy pierwszym uruchomieniu; skonfiguruj dostawców modeli ze strony Web Settings. Konfiguracja, klucze API, dzienniki, pliki obszaru roboczego, pamięć i bazy wiedzy są przechowywane w woluminie deeptutor-data.

  • Różne porty hosta: zmień lewą stronę każdego mapowania -p host:kontener (np. -p 127.0.0.1:8088:3782). Jeśli zmienisz porty po stronie kontenera w /app/data/user/settings/system.json, uruchom ponownie i zaktualizuj prawą stronę każdego mapowania, aby pasowała.
  • Odłączony: dodaj -d, następnie docker logs -f deeptutor, aby śledzić, docker stop deeptutor, aby zatrzymać, docker rm deeptutor przed ponownym użyciem nazwy. Wolumin deeptutor-data przechowuje ustawienia i obszar roboczy między restartami.

Zdalny Docker / odwrotne proxy: przeglądarka komunikuje się wyłącznie z serwerem frontendu (:3782); middleware Next.js wewnątrz kontenera przekazuje /api/* i /ws/* do serwera backendu po stronie serwera. W typowym przypadku jednego kontenera nie konfigurujesz w ogóle bazowego adresu API — po prostu skieruj swój reverse proxy / terminator TLS na :3782. Bazowy adres API jest potrzebny tylko dla wdrożenia rozdzielonego (backend w osobnym kontenerze/hoście): ustaw next_public_api_base w data/user/settings/system.json na adres sieciowy, którego serwer frontendu używa do osiągnięcia backendu (jest czytany po stronie serwera, nigdy nie wysyłany do przeglądarki).

{
  "next_public_api_base": "http://backend:8001"
}

next_public_api_base_external (i jego alias public_api_base) są akceptowane jako fallbacki o niższym priorytecie. CORS używa źródeł frontendu, a nie adresów URL API. Przy wyłączonym uwierzytelnianiu DeepTutor domyślnie zezwala na normalne źródła przeglądarki HTTP/HTTPS. Przy włączonym uwierzytelnianiu dodaj dokładne źródła frontendu:

{
  "cors_origins": ["https://deeptutor.example.com"]
}
Łączenie z Ollama / LM Studio / llama.cpp / vLLM / Lemonade na hoście

Wewnątrz Dockera localhost to sam kontener, a nie maszyna hosta. Aby dotrzeć do usługi modelu działającej na hoście, użyj bramy hosta (zalecane):

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

Następnie w Settings → Models wskaż bazowy URL dostawcy na 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) zazwyczaj rozwiązuje host.docker.internal bez --add-host. Na Linuksie flaga jest przenośnym sposobem tworzenia tej nazwy hosta w nowoczesnym Docker Engine.

Alternatywa dla Linuksa — sieć hosta: dodaj --network=host i usuń flagi -p. Kontener bezpośrednio współdzieli sieć hosta, więc otwórz http://127.0.0.1:3782 (lub frontend_port w system.json), a usługi hosta są dostępne pod normalnymi adresami URL localhost jak http://127.0.0.1:11434/v1. Pamiętaj, że sieciowanie hosta bezpośrednio ujawnia porty kontenera na hoście i może powodować konflikty z istniejącymi usługami — aby utrzymać je na loopback, ustaw BACKEND_HOST=127.0.0.1 i FRONTEND_HOST=127.0.0.1 (patrz CONTAINERIZATION.md).

Opcja 4 — Tylko CLI · bez interfejsu webowego, z kodu źródłowego

Gdy nie potrzebujesz interfejsu webowego. Pakiet tylko CLI jest instalowany ze źródłowego kodu, a nie z PyPI.

git clone https://github.com/HKUDS/DeepTutor.git
cd DeepTutor

# Utwórz 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 współdzieli ten sam układ data/user/settings/ co pełna aplikacja, ale pomija monity o porty backendu/frontendu i domyślnie wyłącza osadzanie (wybierz Yes jeśli planujesz używać deeptutor kb … lub narzędzi RAG). Nadal zapisuje kompletny układ środowiska uruchomieniowego (system.json, auth.json, integrations.json, model_catalog.json, main.yaml, agents.yaml) i nadal pyta o aktywnego dostawcę LLM i model.

Typowe polecenia
deeptutor chat                                          # interaktywny 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

Lokalna instalacja deeptutor-cli nie zawiera zasobów webowych ani zależności serwera. Zachowaj kod źródłowy — instalacja edytowalna wskazuje na niego. Aby dodać aplikację Web później, zainstaluj pakiet PyPI (Opcja 1) i uruchom deeptutor init + deeptutor start z tego samego obszaru roboczego.

Piaskownica wykonania kodu (umiejętności biurowe) · uruchamianie kodu generowanego przez model dla docx / pdf / pptx / xlsx

Wbudowane umiejętności biurowe — docx / pdf / pptx / xlsx — działają, sprawiając że model pisze krótki skrypt Python (python-docx, reportlab, openpyxl, …), uruchamia go przez narzędzia exec / code_execution i zwraca adres URL do pobrania. Te narzędzia montują się za każdym razem, gdy backend piaskownicy jest aktywny, co ma miejsce domyślnie w każdym kształcie wdrożenia:

  • Lokalne (Opcja 1 / 2) i Docker (Opcja 3, pojedynczy kontener): ograniczona piaskownica podprocesu uruchamia kod modelu (lokalnie na hoście lub wewnątrz kontenera pod Dockerem — kontener będący własną granicą izolacji).
  • docker-compose: zamiast tego kierowany do utwardzonego, o najmniejszych uprawnieniach sidecar runner (Dockerfile.runner) przez DEEPTUTOR_SANDBOX_RUNNER_URL — najsilniejsza postawa, automatycznie preferowana gdy jest obecna.

Piaskownica podprocesu jest kontrolowana przez ustawienie sandbox_allow_subprocess w data/user/settings/system.json (domyślnie true). Uruchamianie kodu generowanego przez model na twoim hoście to prawdziwa decyzja dotycząca zaufania — ustaw na false (lub eksportuj DEEPTUTOR_SANDBOX_ALLOW_SUBPROCESS=0), aby wyłączyć wykonanie po stronie hosta kosztem tego, że umiejętności biurowe nie będą mogły produkować plików.

Odniesienie do konfiguracji — pliki konfiguracyjne w data/user/settings/ (JSON/YAML)

Wszystko w data/user/settings/ to zwykły JSON/YAML. Strona Settings w przeglądarce jest zalecanym edytorem.

Plik Cel
model_catalog.json Profile dostawców LLM, osadzania i wyszukiwania; klucze API; aktywne modele
system.json Porty backendu/frontendu, publiczna baza API, CORS, weryfikacja SSL, katalog załączników
auth.json Opcjonalny przełącznik uwierzytelniania, nazwa użytkownika, hash hasła, ustawienia tokena/cookie
integrations.json Opcjonalne ustawienia PocketBase i integracji sidecar
interface.json Preferencje języka / motywu / paska bocznego interfejsu użytkownika
main.yaml Domyślne zachowanie środowiska uruchomieniowego i wstrzykiwanie ścieżek
agents.yaml Ustawienia temperatury i tokenów możliwości/narzędzi

Plik .env w katalogu głównym projektu nie jest czytany jako plik konfiguracyjny aplikacji. Dla minimalnej konfiguracji modelu otwórz Settings → Models, dodaj profil LLM (bazowy URL / klucz API / nazwa modelu) i zapisz. Dodaj profil osadzania tylko jeśli planujesz korzystać z funkcji Bazy wiedzy / RAG.

📖 Eksploracja DeepTutor

Zacznij od głównych powierzchni, których będziesz używać na co dzień: Chat, Partners, My Agents, Co-Writer, Book, Knowledge Center, Learning Space, Memory i Settings. Wycieczka obejmuje następnie wdrożenia dla wielu użytkowników dla współdzielonych, izolowanych obszarów roboczych.

Strona główna DeepTutor — obszar roboczy Chat z każdą powierzchnią w pasku bocznym
🏗️ Architektura systemu
Architektura systemu DeepTutor
💬 Chat — Pętla agenta, z której naprawdę korzystasz

Chat to domyślna możliwość i miejsce, gdzie zaczyna się większość pracy. Jeden wątek może rozmawiać normalnie, wywoływać narzędzia, opierać się na wybranych bazach wiedzy, czytać załączniki, generować obrazy, konsultować subagentów, pisać rekordy notatnika i kontynuować z tym samym kontekstem przez tury.

Obszar roboczy czatu DeepTutor

Pętla jest celowo prosta: model myśli w rundach, wywołuje narzędzia gdy są przydatne, obserwuje wyniki i kończy wiadomością bez narzędzi. ask_user jest wyjątkowy — zamiast zgadywać, agent może wstrzymać turę, zadać ustrukturyzowane pytanie wyjaśniające i wznowić po odpowiedzi.

Pętla agenta czatu DeepTutor

Narzędzia przełączalne przez użytkownika to brainstorm, web_search, paper_search, reason i geogebra_analysis — plus imagegen i videogen po skonfigurowaniu odpowiedniego modelu generowania. Narzędzia kontekstowe takie jak rag, read_source, read_memory, write_memory, read_skill, load_tools, exec, web_fetch, ask_user, list_notebook, write_note, github i consult_subagent montują się automatycznie gdy tura ma odpowiedni kontekst.

Kontekst dzieli się na dwa rodzaje: trwały kontekst sesji (subagent, bazy wiedzy, persona, model, głos) żyje na pasku narzędziowym kompozytora i jest zachowany przez tury; jednorazowe odwołania (pliki, historia czatu, książki, notatniki, bank pytań, zaimportowani agenci) pochodzą z menu + dla jednej tury.

Chat jest również punktem startowym dla głębszych możliwości: Quiz do generowania pytań, Research do cytowanych raportów, Visualize do wykresów / diagramów / animacji i — w sekcji More CapabilitiesSolve do wypracowanego rozumowania i Mastery Path do przepływów planu nauki.

🤝 Partner — Stali towarzysze na tym samym mózgu
Obszar roboczy Partners DeepTutor

Partners to stali towarzysze z własną duszą, polityką modelu, biblioteką, pamięcią i kanałami. Nie są osobnym silnikiem bota: każda przychodząca wiadomość webowa lub IM staje się normalną turą ChatOrchestrator wewnątrz obszaru roboczego z zakresem partnera. Partner to „czat który ma osobowość i numer telefonu."

Architektura Partners DeepTutor

Każdy partner ma SOUL.md, wybór modelu, kanały, politykę narzędzi i przypisaną bibliotekę. Bazy wiedzy, umiejętności i notatniki są kopiowane do data/partners/<id>/workspace/, więc te same narzędzia RAG, umiejętności, notatnika i pamięci działają bez specjalnych przypadków. Partner czyta pamięć swojego właściciela, ale zapisuje tylko do własnej.

Konfiguracja kanału IM per partner

Warstwa kanałów jest sterowana schematem i może łączyć się z platformami IM takimi jak Feishu, Telegram, Slack, Discord, DingTalk, QQ/NapCat, WeCom, WhatsApp, Zulip, Mattermost, Matrix, Mochat i Microsoft Teams w zależności od zainstalowanych dodatków i skonfigurowanych danych uwierzytelniających. Partner może być również podłączony jako subagent i konsultowany z normalnej tury czatu — patrz My Agents poniżej.

🧑‍🚀 My Agents — Konsultuj i importuj innych agentów
Obszar roboczy My Agents DeepTutor

My Agents zamienia innych agentów w kontekst dla DeepTutor i wykonuje dwie odrębne rzeczy. Połącz żywego agenta — Claude Code lub Codex CLI na twoim komputerze, lub jednego z twoich Partners — i konsultuj go z wnętrza tury czatu: DeepTutor faktycznie uruchamia drugiego agenta i strumieniuje jego pracę do panelu Activity przez narzędzie consult_subagent. Wybierz go chipem Agent (lub wpisz @) i ustaw ile rund może trwać konsultacja.

Konsultowanie subagenta Claude Code na żywo

Importuj poprzednie konwersacje — przynieś swoją istniejącą historię Claude Code i Codex jako nazwane, przeszukiwalne, wznawialne agenty. Wybierz które dni importować; odświeżanie ponownie synchronizuje je. Odwołaj się do zaimportowanej konwersacji z dowolnej tury czatu przez + → My Agents, a DeepTutor czyta ją jako transkrypt osoby trzeciej — pozostaje ich konwersacją, nie własnym głosem DeepTutor.

✍️ Co-Writer — Edycja Markdown z uwzględnieniem zaznaczenia
Obszar roboczy Co-Writer DeepTutor

Co-Writer to obszar roboczy Markdown z podzielonym widokiem dla raportów, samouczków, notatek i długich artefaktów uczenia się. Dokumenty są automatycznie zapisywane, renderują podgląd na żywo (matematyka KaTeX, schematy), i mogą być zapisane z powrotem do notatników gdy szkic staje się kontekstem wielokrotnego użytku.

Edytor Co-Writer z podglądem na żywo

Jego wyróżniającym pomysłem jest precyzyjna edycja: zaznacz fragment i poproś DeepTutor o przepisanie, rozszerzenie lub skrócenie. Agent edycji może ugruntować zmianę w bazie wiedzy lub dowodach webowych, zachowuje ślad swoich wywołań narzędzi i pokazuje każdą zmianę jako diff akceptuj/odrzuć — więc nic nie ląduje dopóki tego nie zatwierdzisz.

📖 Book — Żywe książki z twoich materiałów
Biblioteka książek DeepTutor

Book zamienia wybrane źródła w interaktywną żywą książkę — nie statyczny PDF, ale środowisko czytelnicze zbudowane z typowanych bloków. Książka może zaczynać się od baz wiedzy, notatników, banków pytań lub historii czatu; przepływ tworzenia proponuje konspekt rozdziałów przed wygenerowaniem treści, więc przeglądasz kształt zamiast akceptować ślepe jednorazowe wyjście.

Blok quizu w książce   Blok animacji Manim w książce   Blok interaktywnego widżetu w książce

Każdy rozdział kompiluje się do typowanych bloków — tekst, callouts, quizy, fiszki, osie czasu, kod, figury, interaktywny HTML, animacje, grafy konceptów, dogłębne analizy i notatki użytkownika — a każda strona ma swój własny Page Chat. Bloki są edytowalne: wstawiaj, przenoś, regeneruj lub zmieniaj typ bloku bez przepisywania rozdziału. Polecenia konserwacyjne takie jak deeptutor book health i deeptutor book refresh-fingerprints pomagają wykryć kiedy wiedza źródłowa odbiega od skompilowanych stron.

📚 Knowledge Center — Wielosilnikowe biblioteki RAG
Knowledge Center DeepTutor

Bazy wiedzy to kolekcje dokumentów za RAG — ugruntowują tury Chat, edycje Co-Writer, generowanie Book i konwersacje Partner. Wyróżnikiem jest wybór silnika wyszukiwania: LlamaIndex (domyślny, lokalny wektor + BM25), PageIndex (hostowany, wyszukiwanie z rozumowaniem z cytowaniami na poziomie strony), GraphRAG i LightRAG (wyszukiwanie oparte na grafach wiedzy), LightRAG Server (wyszukiwanie odciążone do zewnętrznej instancji LightRAG którą łączysz przez HTTP) lub podłączony vault Obsidian który tutor czyta i zapisuje w miejscu. Każda KB jest powiązana z jednym silnikiem.

Tworzenie bazy wiedzy

Tworząc KB, albo tworzysz nową (przesyłasz dokumenty i budujesz świeży indeks) albo łączysz istniejącą (ponownie używasz indeksu zbudowanego gdzie indziej, czytasz w miejscu bez ponownego indeksowania). Ponowne indeksowanie zapisuje nowy płaski katalog version-N i zachowuje poprzednie, więc działający indeks nigdy nie jest niszczony w trakcie przebudowy. Pojedynczy dokument można usunąć nawet z bazy w stanie błędu — usuwając plik, który nie sparsował się poprawnie, bez pełnego usuwania i przebudowy. Parsowanie dokumentów — Tylko tekst, MinerU, Docling, markitdown lub PyMuPDF4LLM — jest wybierane w Settings → Knowledge Base, z domyślnie wyłączonymi pobieraniami lokalnego modelu. CLI odzwierciedla cykl życia za pomocą deeptutor kb list, info, create, add, search, set-default i delete.

🌐 Learning Space — Umiejętności, persony i kontekst wielokrotnego użytku
Centrum Learning Space DeepTutor

Learning Space to biblioteka i warstwa personalizacji — miejsce gdzie żyją rzeczy, które się zachowują. Conversations & Materials przechowuje historię czatu, notatniki i bank pytań (każde zapisane pytanie zachowuje twoją odpowiedź, odpowiedź referencyjną i wyjaśnienie). Personalization przechowuje ścieżki opanowania, persony (presety zachowań takie jak peer, research-assistant, teacher) i umiejętności (podręczniki SKILL.md które model czyta na żądanie). Wszystko tutaj można ponownie używać z Chat, Partners, Co-Writer i Book.

Importowanie umiejętności z EduHub

Nie musisz pisać każdej umiejętności samodzielnie — Import from EduHub przegląda katalog społecznościowy i pobiera umiejętność bezpośrednio do twojej biblioteki przez bramę bezpieczeństwa (patrz Ekosystem).

🧠 Memory — Inspektowalna personalizacja
Przegląd Memory DeepTutor

Memory to system trzywarstwowy oparty na plikach, który możesz czytać, selekcjonować i audytować — celowo nie ukryty magazyn wektorowy. L1 to lustro obszaru roboczego plus dołączany ślad zdarzeń (trace/<surface>/<date>.jsonl); L2 to wyselekcjonowane fakty per-powierzchnia (L2/<surface>.md); L3 to synteza między-powierzchniowa (L3/<profile|recent|scope|preferences>.md). Ponieważ L2 cytuje L1, a L3 cytuje L2, nic w twoim profilu nie jest nierozliczalne.

Graf pamięci DeepTutor

Memory Graph pokazuje całą piramidę — synteza L3 w centrum, L2 w środkowym pierścieniu, ślady L1 na zewnątrz — więc możesz śledzić każde zsyntetyzowane twierdzenie z powrotem do dokładnego surowego zdarzenia za nim. Memory jest śledzone przez powierzchnie chat, notebook, quiz, kb, book, partner i cowriter; budżety Update / Audit / Dedup konsolidatora są dostosowywane w Settings → Memory.

⚙️ Settings — Jedna płaszczyzna kontroli
Centrum ustawień DeepTutor

Settings to operacyjna płaszczyzna kontroli z paskiem statusu na żywo (Backend, LLM, Embedding, Search) i jedną kartą na obszar: Appearance (motyw + język UI), Network (baza API, porty, CORS), Models (LLM, Embedding, Search, Text-to-Speech, Speech-to-Text, Image Generation, Video Generation), Knowledge Base (silnik parsowania dokumentów), Chat (narzędzia, serwery MCP, parametry per-możliwość), Partners & Agents (subagenty które możesz konsultować z tury) i Memory (budżety konsolidatora).

Ustawienia wyglądu DeepTutor i motywy

Większość sekcji używa przepływu szkic-i-zastosuj, więc możesz testować dostawcę przed jego zatwierdzeniem. Cztery motywy dostarczane w zestawie — Default, Cream, Dark i Glass. Pliki .env katalogu głównego projektu są celowo ignorowane; konfiguracja środowiska uruchomieniowego żyje pod data/user/settings/*.json chyba że DEEPTUTOR_HOME lub deeptutor start --home wskaże aplikację gdzie indziej.

👥 Multi-User — Wdrożenia współdzielone · opcjonalne uwierzytelnianie, izolowane obszary robocze per-użytkownik

Uwierzytelnianie jest domyślnie wyłączone — DeepTutor działa jednoosobowo. Włącz je a jedno drzewo data/ obsługuje obszar roboczy administratora, izolowane obszary robocze per-użytkownik i obszary robocze partnerów obok siebie:

data/
├── user/                    # Obszar roboczy administratora + globalne ustawienia
├── users/<uid>/             # Zakres per-użytkownik: historia czatu, pamięć, notatniki, KB
├── partners/<id>/workspace/ # Zakres partnera (użytkownika syntetycznego)
└── system/                  # auth/users.json · grants/<uid>.json · audit/usage.jsonl

Pierwszy zarejestrowany użytkownik staje się administratorem i jest właścicielem katalogów modeli, danych uwierzytelniających dostawców, współdzielonych baz wiedzy, umiejętności i uprawnień per-użytkownik. Wszyscy pozostali otrzymują izolowany obszar roboczy i zredagowaną stronę Settings — przypisane przez administratora modele, KB i umiejętności pojawiają się jako ograniczone, tylko do odczytu opcje, nigdy jako surowe klucze API.

Włącz: włącz uwierzytelnianie w data/user/settings/auth.json, uruchom ponownie deeptutor start, zarejestruj pierwszego administratora pod /register, następnie dodaj użytkowników z /admin/users i przypisz modele, KB, umiejętności, Partners, politykę narzędzi/MCP i dostęp do wykonania kodu przez uprawnienia.

PocketBase pozostaje integracją jednoosobową — zostaw integrations.pocketbase_url puste dla wdrożeń wieloużytkownikowych chyba że podłączyłeś zewnętrzny magazyn użytkowników.

⌨️ DeepTutor CLI — Interfejs natywny dla agentów

Jeden plik binarny deeptutor, dwa sposoby wejścia: interaktywny REPL dla osób żyjących w terminalu i strukturalny JSON dla innych agentów które prowadzą DeepTutor jako narzędzie. Te same możliwości, narzędzia i bazy wiedzy w obu przypadkach.

Prowadź sam

deeptutor chat otwiera interaktywny REPL; deeptutor run <capability> "<message>" uruchamia jedną turę i wychodzi. Oba używają tych samych flag --capability, --tool, --kb i --config.

deeptutor chat                                              # interaktywny 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

Wszystko co robi aplikacja Web jest tu dostępne — bazy wiedzy (kb), sesje (session), partnerzy (partner), umiejętności (skill), notatniki, pamięć i konfiguracja. Pełna lista poniżej.

Niech agent prowadzi

DeepTutor jest zbudowany aby być obsługiwany przez innego agenta. Dodaj --format json do dowolnego run a każda tura strumieniuje NDJSON — jedno zdarzenie na linię (content, tool_call, tool_result, done, …), każda linia oznaczona swoim session_id. Uruchomienia są bezpieczne bez TTY: pauza ask_user bez TTY automatycznie rozwiązuje się pustą odpowiedzią zamiast zawieszać.

# Jednorazowo, czytelne maszynowo
deeptutor run deep_solve "Find d/dx[sin(x^2)]" --tool reason --format json

# Łącz tury w jednej sesji stanowej — przechwyć id, ponownie użyj
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

Repozytorium zawiera główny SKILL.md — około 150-liniowy dokument przekazania który uczy każdy LLM używający narzędzi całej powierzchni w jednym czytaniu. Przekaż go Claude Code, Codex lub OpenCode (automatycznie pobierają SKILL.md) lub opakuj deeptutor run jako narzędzie w pętli LangChain / AutoGen. Pełne przepisy: Agent Handoff.

Odniesienie do poleceń
Polecenie Opis
deeptutor init Utwórz lub zaktualizuj data/user/settings dla bieżącego obszaru roboczego
deeptutor start [--home PATH] Uruchom backend + frontend razem
deeptutor serve [--port PORT] Uruchom tylko backend FastAPI
deeptutor run <capability> <message> Uruchom jedną turę możliwości (chat, deep_solve, deep_question, deep_research, visualize, math_animator, mastery_path); dodaj --format json dla wyjścia NDJSON
deeptutor chat Interaktywny REPL z kontrolkami możliwości, narzędzia, KB, notatnika i historii
deeptutor partner list/create/start/stop Zarządzaj partnerami połączonymi przez IM
deeptutor kb list/info/create/add/search/set-default/delete Zarządzaj bazami wiedzy LlamaIndex
deeptutor skill search/install/list/remove/login/logout/publish/update Zarządzaj umiejętnościami, instaluj z hubów i publikuj własne (eduhub:<slug> domyślnie, patrz Ekosystem)
deeptutor memory show/clear Inspekcjonuj dokumenty pamięci L2/L3 lub wyczyść pamięć L1/wszystko
deeptutor session list/show/open/rename/delete Zarządzaj współdzielonymi sesjami
deeptutor notebook list/create/show/add-md/replace-md/remove-record Zarządzaj notatnikami z plików Markdown
deeptutor book list/health/refresh-fingerprints Inspekcjonuj książki i odświeżaj odciski źródeł
deeptutor plugin list/info Inspekcjonuj zarejestrowane narzędzia i możliwości
deeptutor config show Wydrukuj podsumowanie konfiguracji
deeptutor provider login <provider> Uwierzytelnianie dostawcy (openai-codex logowanie OAuth; github-copilot weryfikuje istniejącą sesję auth Copilot)
Dystrybucja tylko CLI

Pakiet tylko CLI żyje w packaging/deeptutor-cli. W tym kodzie źródłowym zainstaluj go ze źródła:

python -m pip install -e ./packaging/deeptutor-cli

Nie jest jeszcze opublikowany na PyPI, więc główna sekcja Pierwsze kroki zachowuje ścieżkę instalacji ze źródła.

🧩 Ekosystem — EduHub i społeczność umiejętności

Umiejętności DeepTutor używają otwartego formatu Agent-Skills — folder z podręcznikiem SKILL.md (frontmatter YAML + Markdown) i opcjonalnymi plikami referencyjnymi. Nic w tym nie jest specyficzne dla DeepTutor, więc każdy rejestr który mówi w tym formacie staje się źródłem dla twojej biblioteki. DeepTutor jest dostarczany z EduHub — naszym własnym rejestrem umiejętności skupionym na edukacji — podłączonym jako domyślny hub.

EduHub — Ekosystem umiejętności DeepTutor

EduHub to hub społecznościowy który DeepTutor uruchomił do dzielenia się umiejętnościami agentów zorientowanymi na nauczanie — tutorzy sokratejscy, kreatory fiszek, informacje zwrotne na eseje, plany egzaminów, objaśniacze konceptów i więcej. Jest wbudowany w DeepTutor, więc nie ma nic do konfigurowania: gołe slug lub prefiks eduhub: rozwiązuje do niego.

Znajdź i zainstaluj — w przeglądarce otwórz Learning Space → Skills → Import from EduHub aby przeglądać katalog i pobrać umiejętność bezpośrednio do swojej biblioteki. Z terminala:

deeptutor skill search "socratic tutor"               # wyszukaj EduHub (domyślny hub)
deeptutor skill install socratic-tutor                # pobierz → weryfikuj → zarejestruj
deeptutor skill install eduhub:socratic-tutor@1.2.0   # przypnij hub i wersję
deeptutor skill list                                  # lokalne umiejętności z proweniencją hubu

Opublikuj własną — spakuj SKILL.md i podziel się ze społecznością:

deeptutor skill login                                 # logowanie przeglądarki do EduHub
deeptutor skill publish ./my-skill                    # interaktywne: wybierz ścieżkę + tagi, następnie prześlij
deeptutor skill update                                # wycofaj lub wydaj nową wersję

EduHub jest również samodzielnym, kompatybilnym z ClawHub rejestrem, więc agenty które nie są DeepTutorem (Claude Code, Codex, …) mogą używać go bezpośrednio przez CLI eduhubnpx eduhub install socratic-tutor.

Brama bezpieczeństwa importu

Niezależnie od źródła, każdy import przechodzi przez tę samą bramę bezpieczeństwa zanim cokolwiek dotknie twojego obszaru roboczego:

  • werdykt bezpieczeństwa rejestru jest sprawdzany jako pierwszy — oznaczone pakiety są odrzucane chyba że przekażesz --allow-unverified;
  • archiwa są ekstraktowane defensywnie (ochrona przed zip-slip / zip-bomb) za białą listą sufiksów tekst/skrypt, więc pliki binarne nigdy nie lądują w obszarze roboczym;
  • frontmatter jest normalizowany do schematu DeepTutor a always: jest usuwane, więc pobrana umiejętność nigdy nie może wymusić się do każdego systemowego promptu;
  • proweniencja — hub, wersja, werdykt i czas instalacji — jest zapisywana do .hub-lock.json dla audytów i aktualizacji.

W wdrożeniach wieloużytkownikowych, instalowanie jest tylko dla administratorów: nowa umiejętność ląduje w katalogu administratora i pozostaje niewidoczna dla innych użytkowników dopóki uprawnienie jej nie przypisze, więc administrator może ją sprawdzić przed wdrożeniem.

Kompatybilność z ClawHub

Ponieważ DeepTutor mówi otwartym formatem Agent-Skills, ClawHub działa również jako pierwszorzędne źródło — jest wbudowany obok EduHub. Wybierz go z prefiksem hubu:

deeptutor skill search "git release notes" --hub clawhub
deeptutor skill install clawhub:git-release-notes@1.0.1

Dodaj więcej rejestrów w settings/skill_hubs.json: wpis type: "clawhub" wskazuje na dowolne kompatybilne HTTP API (EduHub i ClawHub oba je mówią), type: "command" opakowuje dowolny CLI pobierania który rejestr dostarcza i "default" wybiera hub używany dla gołych slugów. Wszystkie zasilają tę samą bramę importu.

🌐 Społeczność

📮 Kontakt

DeepTutor to projekt open-source prowadzony przez Bingxi Zhao w ramach Grupy HKUDS, i iteruje w w pełni open-source formie, budowany razem ze społecznością. Do tej pory NIE mamy żadnych płatnych produktów online jakiegokolwiek rodzaju. Zapraszamy do kontaktu pod adresem bingxizhao39@gmail.com w sprawie dyskusji, pomysłów lub współpracy.

🙏 Podziękowania

Serdeczne podziękowania dla Chao Huang, dyrektora Data Intelligence Lab @ HKU, i naszych współpracowników z HKUDS za ciepłe wsparcie — szczególnie Jiahao Zhang, Zirui Guo i Xubin Ren. Jesteśmy również głęboko wdzięczni społeczności open-source: wasze gwiazdki, zgłoszenia, pull requesty i dyskusje kształtują DeepTutor każdego dnia.

DeepTutor stoi również na ramionach wybitnych projektów open-source które dostarczyły nam zarówno narzędzia jak i inspirację:

Projekt Rola / Inspiracja
LlamaIndex Kręgosłup potoku RAG i indeksowania dokumentów
nanobot Ultralekki silnik agenta który zasilał oryginalny TutorBot (HKUDS)
LightRAG Prosty i szybki RAG (HKUDS)
AutoAgent Framework agentów bez kodu (HKUDS)
AI-Researcher Zautomatyzowany potok badań naukowych (HKUDS)
OpenClaw Otwarta brama agentów i ekosystem umiejętności za ClawHub
Codex Natywny dla agentów CLI kodowania który zainspirował nasz przepływ pracy CLI
Claude Code Agentowy CLI kodowania który zainspirował pętlę agenta DeepTutor
ManimCat Generowanie animacji matematycznych sterowane AI dla Math Animator

🗺️ Plan działania i współtworzenie

Chcemy aby DeepTutor stale iterował i się rozwijał — a ostatecznie stał się prezentem który oddajemy społeczności open-source. Nasz plan działania jest aktualizowany na bieżąco; głosuj na elementy tam lub proponuj nowe. Jeśli chcesz współtworzyć, zapoznaj się z Przewodnikiem dla współtwórców po strategię gałęzi, standardy kodowania i sposób rozpoczęcia.

Mamy nadzieję, że DeepTutor stanie się prezentem dla społeczności. 🎁

Współtwórcy

Ranking historii gwiazdek

Licencjonowany na podstawie Apache License 2.0.

Odwiedziny