Skip to content
Proyectos

HKUDS/DeepTutor has 55,382 GitHub stars and 6,788 forks. GitHot measured +351 stars in 24 hours and +5,393 in 7 days. Last checked 2026-11-05 19:09 UTC. Last push 2026-10-31.

Cómo se miden estas cifras

DeepTutor: tutoría personalizada para toda la vida. https://deeptutor.info/.

What you can do

  • One runtime, many learning modes — Chat, Quiz, Research, Visualize, Solve, Mastery Path, Reading, and more share session context while retaining purpose-built workflows.
  • A connected learning workspace — Home, Learning, and Resources connect Chat, Books, Reading, Practice, Task Board, Calendar, and Learning notebook with shared materials, progress, and learning context.
  • Grounded knowledge and reading — Build versioned libraries with LlamaIndex, PageIndex, GraphRAG, or LightRAG, connect external knowledge sources, and learn beside documents, video, and audio with source-linked citations.
  • Partners and subagents — Consult live agents such as Claude Code, Codex, and Grok CLI, import past conversations, or run persistent Partners with their own memory, resources, and IM channels.

Crecimiento de estrellas medido

in 24h
+351
in 7 days
+5393
in 15 days
Actualización retrasada
in 1 month
Actualización retrasada

Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.

assets/README/README_ES.md

Original

DeepTutor

DeepTutor: Tutoría Personalizada de Por Vida

Documentación — deeptutor.info  Colabora — trabaja con nosotros

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

Python 3.11+ Next.js 16 License GitHub release arXiv

Discord Feishu WeChat

Características · Comenzar · Explorar · CLI · Ecosistema · Comunidad


🤝 ¡Damos la bienvenida a cualquier tipo de contribución! Vota en los elementos del roadmap o propone nuevos en Roadmap, y consulta nuestra Guía de Contribución para conocer la estrategia de ramas, los estándares de código y cómo comenzar.

📰 Noticias

  • 2026-10-28 🚀 ¡DeepTutor v1.7.0 ya está aquí! Una apariencia renovada, una navegación más fluida y herramientas de aprendizaje que funcionan mejor juntas.
  • 2026-05-22 🌐 Sitio de documentación oficial disponible en deeptutor.info — guías, referencias y recorridos por las capacidades en un solo lugar.
  • 2026-04-10 📄 Nuestro artículo ya está en arXiv — lee el preprint para conocer el diseño y las ideas detrás de DeepTutor.
  • 2026-01-01 🎊 ¡Feliz Año Nuevo! Únete a nuestro Discord, WeChat o Discussions — demos forma a DeepTutor juntos.
  • 2025-12-29 🎓 ¡DeepTutor se ha lanzado oficialmente!

✨ Características Principales

DeepTutor es un espacio de trabajo de aprendizaje nativo de agentes que conecta tutoría, investigación, creación y práctica en un sistema extensible.

  • Un runtime, muchos modos de aprendizaje — Chat, Quiz, Research, Visualize, Solve, Mastery Path, Reading y otros comparten el contexto de sesión sin dejar de ofrecer flujos de trabajo diseñados para cada propósito.
  • Un espacio de trabajo de aprendizaje conectado — Inicio, Aprendizaje y Recursos conectan Chat, Books, Reading, Practice, Task Board, Calendar y el Cuaderno de aprendizaje con materiales, progreso y contexto de aprendizaje compartidos.
  • Conocimiento y lectura fundamentados — Crea bibliotecas con versiones mediante LlamaIndex, PageIndex, GraphRAG o LightRAG, conecta fuentes de conocimiento externas y aprende junto a documentos, vídeo y audio con citas vinculadas a las fuentes.
  • Partners y subagentes — Consulta agentes en vivo como Claude Code, Codex y Grok CLI, importa conversaciones anteriores o ejecuta Partners persistentes con su propia memoria, recursos y canales de IM.
  • Memoria inspeccionable — Las trazas L1, los hechos L2 y la síntesis L3 hacen que la personalización sea visible y editable, con enlaces a la evidencia que puedes auditar en el Memory Graph.
  • Extensible por diseño — Añade personas, skills integradas o de la comunidad, servicios MCP, aplicaciones CLI y modelos de generación mediante un único runtime nativo de agentes.

🚀 Comenzar

Elige la ruta de instalación que se adapte a cómo quieres usar DeepTutor. Las instalaciones desde la terminal comparten un mismo hogar de ejecución: la configuración privada se guarda en data/user/settings/ bajo el directorio de inicio, o bajo DEEPTUTOR_HOME / deeptutor start --home cuando se establece explícitamente. Después de iniciar la aplicación, configura un proveedor y un modelo en Settings → Providers y Language models.

Escritorio — macOS y Windows (vista previa)

Open DeepTutor incluye Python, Node.js y el espacio de trabajo de aprendizaje completo, por lo que no necesitas una terminal ni instalar runtimes por separado. Las vistas previas de escritorio están disponibles en dev; la versión v1.7.0 no incluye instaladores de escritorio.

Abre una ejecución correcta del workflow Desktop Release, desplázate hasta Artifacts y descarga el destino correspondiente. Debes iniciar sesión en GitHub y los artefactos caducan a los siete días.

Tu equipo Destino de descarga Instalador
Mac con Apple Silicon macos-arm64 Abre el DMG y arrastra Open DeepTutor a Applications.
Mac con Intel macos-x64 Abre el DMG y arrastra Open DeepTutor a Applications.
Windows x64 windows-x64 Ejecuta el Setup .exe, o extrae el ZIP portátil e inicia Open DeepTutor.exe.

Las compilaciones de vista previa para Windows no están firmadas y pueden mostrar una advertencia de SmartScreen. Consulta la guía de escritorio para obtener información sobre firma, datos locales y compilaciones desde el código fuente.

Docker — La forma más rápida de probar la aplicación completa

Ejecuta la aplicación Web completa sin instalar Python ni Node.js:

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

Abre http://127.0.0.1:3782. El volumen con nombre conserva la configuración y los datos locales; la aplicación Web solo necesita el puerto 3782. Consulta la guía de Docker para espacios de trabajo del host, servicios de modelos locales, proxies inversos y despliegue en producción.

PyPI — Aplicación Web completa y CLI

Usa Python 3.11–3.14 y Node.js 20.9+. En la versión modular 1.7.0, deeptutor[full] instala la aplicación Web y la CLI; deeptutor sin extras instala el chat básico y el SDK.

mkdir -p my-deeptutor && cd my-deeptutor
python -m pip install -U "deeptutor[full]"
deeptutor init     # ports + LLM provider + optional embedding/search
deeptutor start    # starts backend + frontend

Abre la URL que aparece en la terminal, por defecto http://127.0.0.1:3782. Pulsa Ctrl+C para detener ambos servicios.

Actualización desde 1.6.15 o una versión anterior: detén DeepTutor, haz una copia de seguridad del hogar de ejecución y desinstala el paquete antiguo deeptutor-cli antes de instalar la nueva familia. Conserva el mismo DEEPTUTOR_HOME y después ejecuta python -m pip check y deeptutor module list. Consulta la guía de PyPI y migración para ver los comandos exactos de actualización.

Código fuente — Dev actual y colaboradores

Usa Python 3.11–3.14 y Node.js 22 LTS para coincidir con CI y Docker.

git clone --branch dev https://github.com/HKUDS/DeepTutor.git
cd DeepTutor
python3 -m venv .venv && source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements/full.txt
python -m pip install -e . --no-deps
( cd web && npm ci --legacy-peer-deps )
deeptutor init
deeptutor start --dev

Usa deeptutor start sin --dev para una compilación de producción. Las dependencias opcionales se instalan desde la raíz del repositorio, por ejemplo python scripts/install_extras.py dev,partners,math-animator. Consulta la guía de instalación desde el código fuente para Conda, extras y solución de problemas, o la guía de configuración para agentes para permitir que un agente con acceso a la terminal realice y verifique la configuración.

CLI — Uso desde la terminal y por agentes

Para una instalación mínima desde la terminal, usa el wheel básico; no se necesitan Node.js ni el frontend Web:

mkdir -p my-deeptutor && cd my-deeptutor
python -m pip install -U deeptutor
deeptutor init --cli
deeptutor chat

El núcleo incluye Chat, Ask Questions, la CLI y el SDK; las demás capacidades y comandos de gestión requieren sus módulos de funciones correspondientes. Para la instalación actual desde el código fuente de dev y las dependencias opcionales, consulta la guía de solo CLI. La referencia de la CLI más abajo describe las ejecuciones puntuales y la salida legible por máquinas.

Espacios de trabajo y configuración avanzada: consulta Espacios de trabajo de contenido, Persistencia de datos locales, Contenedorización y despliegue con sandbox, Referencia de configuración y Solución de problemas.

📖 Explorar DeepTutor

Empieza con un espacio de trabajo para cada materia o proyecto. Inicio, Aprendizaje y Recursos cambian con el espacio de trabajo activo; Partners y Personalización permanecen disponibles en todos los espacios de trabajo.

Área Ámbito Qué contiene
Inicio Espacio de trabajo Chat, Task Board, Calendar y Cuaderno de aprendizaje
Aprendizaje Espacio de trabajo Books, Mastery Path, Immersive Reading y Practice
Recursos Espacio de trabajo Historial de chat, Favoritos, Diario de aprendizaje, Banco de preguntas y Centro de Conocimiento
Partners Cuenta Compañeros persistentes, Partner Groups, acceso a recursos y canales de IM
Personalización Cuenta Mis Agentes, Personas, Skills, Servicios MCP, Aplicaciones CLI, Memory y Settings
Inicio de DeepTutor y navegación del espacio de trabajo
🏗️ Arquitectura del sistema
Arquitectura del sistema DeepTutor
🏠 Inicio — Conversaciones, tareas, notas y calendario

Inicio es donde comienza el trabajo diario: habla con el tutor, organiza las próximas acciones y desarrolla tus propias notas en el espacio de trabajo actual. Calendar ofrece una vista de toda la cuenta sin perder el espacio de trabajo de origen de los eventos de estudio.

💬 Chat — El bucle de agente que realmente usas

Chat es la capacidad predeterminada y el lugar donde comienza la mayor parte del trabajo. Un único hilo puede conversar normalmente, llamar herramientas, fundamentarse en bases de conocimiento seleccionadas, leer adjuntos, generar imágenes, consultar subagentes, escribir registros de notebook y continuar con el mismo contexto entre turnos.

Espacio de trabajo de chat DeepTutor

El tutor llama a herramientas según las necesite y puede detenerse para hacer preguntas aclaratorias. Personalizar página, en la esquina superior derecha, permite elegir los modos visibles y los controles de Skills, MCP, Partners, Preferencias y entrada de voz. En Prompts iniciales, añade, edita o elimina los títulos y prompts de Explicar, Resolver, Practicar, Planificar e Investigar. Guardar aplica las preferencias de tu cuenta; Cancelar descarta los cambios y Restaurar valores predeterminados recupera las opciones originales.

Bucle de agente de chat DeepTutor

Las herramientas activables por el usuario son brainstorm, web_search, paper_search, zotero_search, reason y geogebra_analysis — más imagegen y videogen una vez que configures el modelo de generación correspondiente. Las herramientas contextuales como rag, kb_files, knowledge_frontier, read_source, read_memory, write_memory, read_skill, load_tools, exec, web_fetch, ask_user, list_favorites, save_favorite, write_note, search_notes, question_bank, github, consult_subagent, workspace_list, workspace_read, workspace_search, workspace_present y workspace_export se montan automáticamente cuando el turno tiene el contexto adecuado.

El contexto es de dos tipos: el contexto de sesión persistente (capacidad, espacio de trabajo o curso, herramientas, bases de conocimiento, persona, modelo y estado de Reading / Mastery) se conserva entre turnos; las referencias (archivos, historial de chat, libros, secciones de lectura, cuadernos, entradas seleccionadas del banco de preguntas, agentes importados) proceden del menú + y se aplican a un solo turno por defecto, o a todos los turnos cuando se fijan. El botón de voz solo transcribe el mensaje actual.

Con el perfil completo, Inicio mantiene Chat, Ask Questions, Quiz, Visualize y Video Lesson a un clic; Research para informes con citas y Solve para razonamiento desarrollado se encuentran en Más capacidades. Selecciona texto en una respuesta para abrir Little Tutor, un hilo centrado en la barra lateral que permanece anidado bajo la conversación de origen. Con al menos tres mensajes enviados, el margen izquierdo muestra una marca para cada pregunta cuando hay espacio; pasa el cursor para obtener una vista previa, haz clic para volver a ella o usa Alt/Option + ↑/↓ para desplazarte entre preguntas.

✅ Task Board y Calendar — Organiza el aprendizaje diario

Task Board sigue las tareas de estudio en To do, In progress y Done, con notas, controles de movimiento mediante arrastrar y soltar o accesibles desde el teclado, y un archivo desde el que puedes restaurarlas. Las tareas permanecen en el espacio de trabajo actual y no requieren configurar ningún modelo.

Calendar reúne sesiones de estudio personales, eventos recurrentes y recordatorios, con exportación .ics para Apple Calendar, Google Calendar, Outlook y Thunderbird. Las superposiciones del espacio de trabajo, como fechas de vencimiento de tareas y repasos, permanecen conectadas a su espacio de trabajo de origen.

✍️ Cuaderno de Aprendizaje — Páginas, fuentes y Dito
Páginas del Cuaderno de aprendizaje

El Cuaderno de aprendizaje, antes Co-Writer, organiza tus propios escritos en páginas, subpáginas y bloques dentro del espacio de trabajo activo. Importa documentos Word, organiza un árbol de páginas e inserta registros originales de Favoritos como evidencia. Las páginas mantienen visible su estado de guardado y se exportan a Markdown o Word; el contenido interactivo se convierte en estático en Word.

Exportar tarjetas flash a Anki. Las páginas del cuaderno pueden incluir Flash Cards. En una página que las tenga, abre el menú de la página y elige Export flashcards (Anki). En la cola de repaso del cuaderno, elige Export all for Anki. En Anki, usa File → Import y selecciona el archivo .txt descargado. Las tarjetas se añaden a un mazo llamado DeepTutor::<note title> con los campos de anverso y reverso, las etiquetas y las expresiones matemáticas intactos. Volver a importar el mismo archivo actualiza las tarjetas existentes en lugar de duplicarlas. El calendario de repaso propio de DeepTutor no se incluye.

Editor de bloques del Cuaderno de aprendizaje y Dito

Comenta un pasaje o bloque con Dito: pídele una explicación, un ejemplo, una reescritura o una pregunta de práctica. Las conversaciones permanecen vinculadas a la página y línea correspondientes. Revisa los cambios propuestos antes de aceptarlos, o inserta una respuesta debajo de la línea y sigue trabajando. Favoritos conserva los registros de las fuentes; el cuaderno es donde construyes tu propia comprensión.

🎓 Aprendizaje — Libros, rutas, lectura y práctica

Aprendizaje es el área de estudio del espacio de trabajo actual. Crea una actividad desde Aprendizaje → Nuevo aprendizaje y vuelve a abrirla desde Todo el aprendizaje con su progreso, sus conversaciones y el contexto de las fuentes intactos.

Actividades de aprendizaje en el espacio de trabajo actual
Actividad Para qué usarla Qué conservas
Book Crear un libro interactivo y estructurado a partir de fuentes seleccionadas Capítulos editables, bloques tipados, progreso de lectura y Page Chat
Mastery Path Dividir un objetivo de aprendizaje en temas y estudio guiado Un mapa de puntos de conocimiento, conversaciones por tema y evidencia de dominio
Immersive Reading Trabajar junto a un documento, página web, vídeo o fuente de audio Conversaciones vinculadas a la fuente, citas verificadas, destacados, notas y progreso
Practice Repasar preguntas recopiladas o importadas Respuestas, errores, valoraciones de recuerdo y la próxima fecha de repaso
📖 Book — Libros vivos de tus materiales
Biblioteca de libros DeepTutor

Book convierte las fuentes seleccionadas en un libro vivo interactivo — no un PDF estático, sino un entorno de lectura construido a partir de bloques tipados. Un libro puede comenzar desde bases de conocimiento, Favoritos, bancos de preguntas o historial de chat; el flujo de creación propone un esquema de capítulos antes de que se genere el contenido, así revisas la estructura en lugar de aceptar una salida de un solo intento sin verla antes.

Bloque de quiz en Book   Esquema y capítulos de Book   Bloque de widget interactivo en Book

Cada capítulo se compila en bloques tipados editables — texto, callouts, quizzes, tarjetas flash, líneas de tiempo, código, figuras, HTML interactivo, animaciones, gráficos de conceptos, profundizaciones y notas de usuario — con su propio Page Chat. Inserta, mueve, regenera, reescribe o cambia el tipo de un bloque; los pasajes seleccionados entran en una bandeja revisable de capturas de aprendizaje. El progreso, los marcadores, los intentos de quiz, las capturas y Page Chat se mantienen privados para cada lector incluso cuando un libro del administrador se comparte en modo de solo lectura o edición colaborativa; la eliminación de libros compartidos sigue siendo exclusiva del administrador. Cualquier libro se exporta a Markdown, las compilaciones largas se pausan y reanudan, deeptutor book health señala divergencias en las fuentes y deeptutor book refresh-fingerprints actualiza la referencia de las fuentes.

🗂️ Recursos — Materiales y registros de aprendizaje guardados

Recursos es la biblioteca reutilizable del espacio de trabajo actual. Conserva aquí el material original, los resultados guardados y los registros de aprendizaje para poder adjuntarlos a nuevas conversaciones y actividades sin mezclar proyectos.

📚 Centro de Conocimiento — Bibliotecas RAG multi-motor
Centro de Conocimiento DeepTutor

Las bases de conocimiento son las colecciones de documentos detrás del RAG — fundamentan los turnos de Chat, las ediciones del Cuaderno de aprendizaje, la generación de Book y las conversaciones de Partner. Lo que las distingue es la elección de motores de recuperación: LlamaIndex (el predeterminado, vector híbrido + BM25 con reranking opcional mediante cross-encoder e índices FAISS exact-flat o HNSW), PageIndex (recuperación por razonamiento con citas a nivel de página, hospedado o autoalojado OSS), GraphRAG y LightRAG (recuperación por grafo de conocimiento), LightRAG Server (recuperación delegada a una instancia externa de LightRAG a la que te conectas por HTTP), WeKnora (recuperación desde una base de conocimiento de tu despliegue autoalojado, sin índice local ni copia de documentos), Tencent IMA (una biblioteca que curas en IMA — consultada, explorada y con escritura de vuelta a través de su OpenAPI), MarginNote 4 (tus datos de estudio de MN4 — documentos, extractos, tarjetas de mapa mental y los enlaces entre ellos — enviados por el Add-on de la app y navegados con herramientas dedicadas), Kiwix (un archivo ZIM consultable servido por HTTP sin indexación local), o un vault Obsidian vinculado que el tutor lee y escribe en el lugar. Cada KB está vinculada a un motor.

Crear una base de conocimiento

¿Estás migrando una biblioteca existente de Obsidian, Hermes o Markdown? Consulta la guía de migración de conocimiento para conocer las rutas de vault conectado y copia indexada.

Al crear una KB, puedes crear nueva (subir e indexar documentos), vincular existente (reutilizar un índice en su ubicación) o conectar Kiwix (buscar bajo demanda en un archivo ZIM servido). Elige su espacio de trabajo de almacenamiento al crearla; una KB existente puede trasladarse entre espacios de trabajo tras una vista previa, conservando las asignaciones y las referencias guardadas. Una KB también puede rastrear repositorios de GitHub (repositorio, rama y patrón glob) o URLs de sitios de documentación (con límites de profundidad de rastreo y número de páginas, resincronizadas cada 24 h por defecto); la sincronización compara hashes para detectar contenido añadido, modificado y eliminado, de modo que la documentación que sigues se mantiene actualizada sin volver a subirla, y las carpetas vinculadas recogen archivos locales nuevos o modificados al sincronizar. La reindexación escribe un nuevo directorio version-N plano y conserva los anteriores, de modo que un índice funcional nunca se destruye a mitad de la reconstrucción. Un solo documento puede eliminarse incluso de una base en estado de error — descartando un archivo que no se pudo analizar sin necesidad de borrar y reconstruir todo. El análisis de documentos — Text-only, MinerU, Docling, Tika, markitdown, PyMuPDF4LLM o LiteParse — y un modelo opcional de descripción de imágenes se eligen en Settings → Knowledge & documents, con descargas de modelos locales desactivadas por defecto. Docling también puede ejecutarse en modo remoto contra un servidor Docling Serve (sin necesidad de instalación local ni modelos), configurado en esa página (mode=remote, una URL base de servidor y una clave API opcional) o las variables de entorno DOCLING_MODE / DOCLING_API_BASE_URL / DOCLING_API_TOKEN. Tika es solo remoto y apunta al servidor Apache Tika configurado en esa página. La CLI refleja el ciclo de vida con list/info/create/connect-kiwix/add/search/eval/eval-diff/set-default/delete, comandos para añadir o eliminar fuentes, list-sources y sync.

El motor LightRAG integrado se instala con pip install 'deeptutor[rag-lightrag]'. Ese extra contiene el SDK de LightRAG compatible pero no instala MinerU. Elige MinerU de forma independiente en Document Parsing y configura su modo en la nube o instala su CLI local vigente cuando se desee un análisis estructurado. MinerU acepta PDF, imágenes rasterizadas comunes, DOCX, PPTX y XLSX; el comando heredado magic-pdf sigue limitado a PDF. Text-only y los demás motores de análisis no requieren MinerU.

Las consultas nativas de LightRAG y la indexación incremental requieren la configuración de embeddings registrada por el índice publicado, incluyendo el modelo, la dimensión y la identidad del endpoint. Si cambia, restaura la configuración original o reconstruye con el embedding actual; los índices sin una identidad de embeddings registrada requieren una reconstrucción. Las vistas de detalle de la base de conocimiento y de versión de índice muestran orientación de recuperación, mientras los archivos permanecen disponibles para visualización y descarga.

Evaluar una base de conocimiento. Con varios motores disponibles, «¿cuál recupera mejor aquí?» es una pregunta empírica, y deeptutor kb eval permite responderla. Escribe un conjunto de preguntas y respuestas (un objeto JSON por línea: una query y los pasajes gold que debería devolver una recuperación ideal), y evalúa la KB con deeptutor kb eval <name> --dataset qa.jsonl --top-k 5 [--mode hybrid] [--save baseline.json]. Cada caso se recupera por la misma ruta que usa un turno de chat; sus citas ordenadas se comparan con los pasajes de referencia mediante coincidencia exacta de texto o solapamiento léxico (los umbrales se ajustan con --min-ratio; no se evalúa la equivalencia semántica), y la ejecución informa de Recall@k / Precision@k / nDCG@k / MRR / MAP / Hit@k. Las métricas son funciones puras sobre la clasificación; ningún modelo juzga la salida. Compara informes guardados con deeptutor kb eval-diff baseline.json candidate.json para ver los cambios por métrica y por caso. Usa --rewrite off o --rewrite standalone en kb eval para comparar consultas originales y reescritas; los informes conservan la procedencia de la reescritura. Los casos cuya búsqueda falla (por un índice ausente o credenciales incorrectas) no reciben puntuación y se informan por separado, en lugar de reducir las medias. PageIndex usa el razonamiento para recuperar y no devuelve fragmentos ordenados, por lo que se excluye.

{"query": "Why do transformers scale attention?", "gold": ["Scaling keeps the dot products from growing with the dimension."]}
🗃️ Historial, Favoritos, Diario y Banco de preguntas
Recursos del espacio de trabajo activo

Historial de chat vuelve a abrir conversaciones con su contexto de aprendizaje original. Favoritos conserva conversaciones y resultados originales útiles en colecciones movibles con exportación a Markdown, listos para insertar en un Cuaderno de aprendizaje. El Diario de aprendizaje registra la misión actual, el traspaso de la sesión y los registros de aprendizaje confirmados. El Banco de preguntas organiza preguntas, respuestas, explicaciones y errores; selecciona un conjunto para Aprendizaje → Practice a fin de repasar las áreas débiles y programar la repetición.

🤝 Partners — Compañeros persistentes en todos los espacios de trabajo

Los Partners pertenecen a la cuenta y no a un espacio de trabajo de una materia. Cada compañero conserva su propia identidad, instrucciones, política de modelo, relaciones y canales, mientras usa una biblioteca privada o los recursos de un espacio de trabajo existente.

Espacio de trabajo de partners DeepTutor
Identidad, recursos del espacio de trabajo, grupos y canales

Cada mensaje entrante de la Web o de IM se convierte en un turno normal de ChatOrchestrator — un Partner es «un chat que tiene personalidad y número de teléfono». Su SOUL.md, la selección de modelo, la política de herramientas y la biblioteca siguen siendo editables después de su creación. Un espacio de trabajo privado de Partner copia las bases de conocimiento, skills y colecciones de Favoritos asignadas; un espacio de trabajo vinculado comparte sus archivos y recursos actuales. Soul, las conversaciones y la memoria de relación permanecen separados en ambos modos.

Arquitectura de partners DeepTutor

Partner Groups reúne dos o más Partners en una conversación compartida con puestos diferenciados, modos seleccionables de debate y memoria compartida, e historial duradero. Los usuarios autenticados conservan sesiones privadas de Partner y memoria de relación incluso cuando se comparte un compañero.

Configuración de canales IM por partner

Los canales impulsados por esquema conectan a los compañeros con Feishu, Telegram, Slack, Discord, DingTalk, QQ/NapCat, WeCom, WhatsApp, Zulip, Mattermost, Matrix, Mochat y Microsoft Teams, según los extras instalados y las credenciales. La configuración desde el navegador admite incorporación mediante QR para determinados canales. Un Partner también puede conectarse mediante Personalización → Mis Agentes y consultarse desde un turno normal de Chat.

🧭 Personalización — Comportamiento y conexiones reutilizables

Personalización acompaña a la cuenta entre espacios de trabajo. Elige cómo debe comportarse el tutor y qué agentes, skills, servicios, aplicaciones y recuerdos puede reutilizar; las selecciones del espacio de trabajo y de la conversación pueden restringir aún más ese acceso.

Personalización de la cuenta: agentes, personas, skills y conexiones
🧑‍🚀 Mis Agentes — Consulta agentes en vivo e importa historial
Espacio de trabajo de Mis Agentes DeepTutor

Conecta un agente en vivo — Claude Code, Codex, Grok CLI, Antigravity, Kimi, opencode, MiMo Code, Hermes Agent, OpenClaw, DeepSeek Harness o un Partner — y consúltalo desde un turno de Chat. DeepTutor ejecuta el agente seleccionado y transmite su trabajo al panel de Activity mediante consult_subagent; el chip Agent o @ mantiene la conexión vinculada a la sesión. Los entornos locales usan su propia autenticación, directorio de trabajo y almacenamiento de sesiones.

Importa conversaciones anteriores de ChatGPT, Claude Code y Codex como referencias buscables y reanudables. ChatGPT usa una exportación oficial conversations.json; el historial de Claude se selecciona por proyecto o directorio de trabajo, y el de Codex por fecha. Haz referencia a una conversación importada mediante + → Mis Agentes sin convertirla en la voz propia de DeepTutor.

🎭 Personas, Skills, Servicios MCP y Aplicaciones CLI

Personas reutiliza una voz, un estilo de enseñanza o una política de respuestas, y también puede servir de base para el alma de un Partner. Skills empaqueta flujos de trabajo repetibles como guías SKILL.md, con bibliotecas compartidas por la cuenta y locales al espacio de trabajo. Importar desde EduHub explora skills de la comunidad y las instala mediante una puerta de seguridad (consulta Ecosistema).

Biblioteca de skills de Personalización

Servicios MCP autoriza herramientas externas, mientras que Aplicaciones CLI expone programas instalados del catálogo CLI-Anything mediante el sandbox de ejecución. Las asignaciones del espacio de trabajo y los permisos de usuario determinan qué recursos puede usar cada turno.

🧠 Memory — Personalización inspeccionable
Vista general de Memory DeepTutor

Memory es un sistema de tres capas respaldado por archivos que puedes leer, curar y auditar — deliberadamente no un almacén de vectores oculto. L1 es el espejo del espacio de trabajo más un rastro de eventos de solo adición (trace/<surface>/<date>.jsonl); L2 son hechos curados por superficie (L2/<surface>.md) con referencias a entidades L1; L3 es síntesis entre superficies (L3/<profile|recent|scope|preferences>.md) que registra las superficies L2 que contribuyeron a ella.

Gráfico de memoria DeepTutor

El Memory Graph muestra toda la pirámide — síntesis L3 en el centro, L2 en el anillo intermedio, trazas L1 en el exterior — con aristas de evidencia L2 → L1 exactas y enlaces de L3 → superficies contribuyentes. La memoria se rastrea en las superficies chat, notebook, quiz, kb, book, partner y cowriter; los presupuestos de Actualización / Auditoría / Deduplicación del consolidador se ajustan en Settings → Memory.

⚙️ Settings — Un panel de control
Navegación de configuración

Settings es el panel de control operativo y se abre en General, donde se configuran el idioma de la interfaz y el de salida del modelo. Su navegador con búsqueda enlaza páginas independientes: Personal incluye Espacios de trabajo, Migración de datos, Apariencia y Estadísticas de uso; Aprendizaje y conversación incluye puntos de partida, adjuntos, Video Learning, controles de alumnos y tutores, Progreso de aprendizaje y Memory; Modelos y servicios incluye Proveedores, Modelos de lenguaje, Modelos de tarea, Embedding, Search, Voz y Generación multimodal; Funciones e integraciones incluye herramientas, parámetros de capacidades, Partners y agentes, y Conocimiento y documentos. Sistema reúne Red, Estado de ejecución y Acerca de; Chats archivados permite buscar, restaurar o eliminar permanentemente conversaciones archivadas. Estado de ejecución contiene la salud del backend, la memoria residente y la matriz de Preparación, que clasifica bloqueos, advertencias y sugerencias de las capacidades. Espacios de trabajo mantiene separados los archivos de cada tema y el estado de aprendizaje, con migración y exportación verificadas en Migración de datos. Un proveedor guarda la dirección y la credencial de un fabricante para reutilizarlas con sus modelos de servicio; las páginas de modelos seleccionan proveedores guardados y configuran nombres y capacidades de modelo. Los modelos de tarea fijan un modelo pequeño y rápido para el trabajo automático — desde nombrar conversaciones y escribir puntos de partida hasta reparaciones de Math Animator y Video Lesson — y recurren al predeterminado activo cuando se dejan vacíos. Voz agrupa síntesis y transcripción de voz; Generación multimodal reúne modelos de imagen y vídeo. Partners y agentes configura entornos de agentes locales y una pasarela remota de Hermes.

Vietnamita: en Settings → General, elige Tiếng Việt para Idioma de la interfaz y selecciona Aplicar cambios. Idioma de salida del modelo es independiente: elige Tiếng Việt allí para recibir respuestas en vietnamita, o conserva otro idioma de respuesta mientras usas la interfaz en vietnamita. La calidad de las respuestas depende de la compatibilidad con el vietnamita del modelo seleccionado.

Voz de Xiaomi MiMo. Añade un proveedor Xiaomi MiMo con https://api.xiaomimimo.com/v1 y su clave API; después añade mimo-v2.5-tts en Settings → Voz. Elige una voz predefinida como mimo_default, 冰糖 o 苏打, usa salida wav o pcm16 y escúchala antes de aplicar los cambios. Las instrucciones de voz controlan el estilo y la velocidad del habla. Este adaptador solo admite voces predefinidas; el diseño y la clonación de voces requieren modelos separados y no son compatibles. Si un modelo de voz anterior de MiMo estaba configurado mediante el adaptador genérico compatible con OpenAI, vuelve a crear su entrada de voz usando el proveedor Xiaomi MiMo para que utilice el protocolo chat-completions. Consulta la guía oficial de voz de MiMo.

Voz de MiniMax — en Settings → Voz, elige MiniMax para texto a voz y selecciona speech-2.8-hd. Configura una clave API de MiniMax y selecciona explícitamente una voz del sistema o introduce un ID de voz personalizado. La base de API predeterminada es https://api.minimax.io/v1; para la región de China usa https://api.minimaxi.com/v1. La lectura en voz alta y las previsualizaciones de voz usan el endpoint nativo de voz, con salida MP3, WAV, FLAC o PCM, y controles de frecuencia de muestreo, velocidad e idioma. Consulta la API de voz de MiniMax para conocer los IDs de voz y la disponibilidad por cuenta.

Video Learning en Settings → Aprendizaje y conversación configura los subtítulos de YouTube y el acceso a Invidious para Reading. Para usar Invidious, establece el origen de su API de backend gestionado por el administrador (por ejemplo http://127.0.0.1:3000) y su origen público accesible desde el navegador, prueba la conexión, selecciona Invidious y guarda. Browse Invidious en el diálogo de Reading para añadir material permite buscar vídeos y acceder a las suscripciones y listas de reproducción conectadas. La reproducción de YouTube usa el reproductor oficial con privacidad mejorada; la falta de subtítulos se indica y limita la evidencia disponible para el tutor, sin bloquear la reproducción nativa. En un checkout de código fuente, ejecuta python scripts/install_extras.py video-learning para el cargador predeterminado de subtítulos de YouTube. Los enlaces existentes de Watching se migran a Reading conservando el historial de conversaciones, las transcripciones compatibles, las notas y el progreso; las nuevas notas con marcas de tiempo son anotaciones de Reading. Bilibili usa su propia ruta de reproducción y subtítulos.

Configuración de apariencia de DeepTutor y temas

La mayoría de las secciones usan un flujo de borrador y aplicación, de modo que puedes probar un proveedor antes de confirmarlo. También puedes simplemente pedirlo en Chat: el asistente lee la configuración actual, aplica un cambio y te dice si necesita un reinicio o una reindexación — probando un modelo nuevo antes de confirmarlo, de modo que no puede cambiarse a sí mismo hacia algo inalcanzable. Las claves API nunca pasan por el modelo, que en su lugar abre el formulario correspondiente para ti. Se incluyen cuatro temas — Default, Cream, Dark y Glass. Los archivos .env de la raíz del proyecto se ignoran intencionadamente; la configuración de runtime vive bajo data/user/settings/*.json a menos que DEEPTUTOR_HOME o deeptutor start --home apunten la aplicación a otro lugar.

OpenAI Codex OAuth (experimental). Añadir OpenAI Codex en Settings → Proveedores abre un inicio de sesión en el navegador que se ejecuta contra tu propio plan de ChatGPT, de modo que no se necesita OPENAI_API_KEY. Los tokens viven solo en data/system/user-secrets/<owner>/private/openai-codex/ — en el despliegue multicontenedor con Compose, fuera de cualquier árbol al que el sandbox de ejecución pueda acceder — y DeepTutor nunca lee ni modifica tu inicio de sesión de la CLI ~/.codex. La lista de modelos proviene del catálogo en vivo de esa cuenta; iniciar sesión publica el perfil, pero este solo se convierte en el modelo activo cuando todavía no hay ningún LLM configurado. Como un token autoriza el plan de una sola persona, el perfil no se puede compartir a través de permisos de usuario — cada cuenta inicia sesión por sí misma, incluidos los usuarios comunes: su tarjeta de inicio de sesión se encuentra en Proveedores, y los modelos, el catálogo y el cierre de sesión resultantes permanecen privados para esa cuenta.

En el inicio de sesión y Actualizar modelos, DeepTutor lee la última versión estable de @openai/codex desde el registro oficial de npm y la usa como client_version de la solicitud del catálogo. Esto es solo metadatos: no instala, descarga ni actualiza la CLI de Codex, y la solicitud a npm no lleva credenciales OAuth. El descubrimiento tiene un plazo de tres segundos y un límite de respuesta de 64 KiB. Si falla, DeepTutor usa la última versión correcta para esa cuenta, o su valor de reserva integrado cuando no hay ninguna en caché. Solo un catálogo en vivo analizado correctamente guarda una versión nueva; los validadores nunca se reutilizan entre versiones ni entre generaciones de credenciales. Un rechazo de versión o una estructura de catálogo incompatible permite un reintento con la versión anterior; los fallos de autenticación, límite de tasa y TLS no se reintentan como problemas de versión. Una actualización manual fallida informa de un error en lugar de presentar un catálogo antiguo en caché como actualizado.

El historial de versiones correctas sobrevive a la renovación de tokens de la misma cuenta y a los errores de autenticación del catálogo, sin volver a hacer utilizables los datos de modelo invalidados ni las ETags. Cerrar sesión borra la caché local de esa cuenta, incluido el historial de versiones. Las lecturas de estado ordinarias y la inferencia no consultan npm. Las nuevas entradas del catálogo no reemplazan un modelo que ya has seleccionado ni reinician las sesiones de aprendizaje; aparecer en el catálogo no establece compatibilidad total del protocolo de inferencia. No hay un actualizador de versiones en segundo plano ni una configuración de versión para el usuario.

Los despliegues locales predeterminados de Docker y Podman usan redes de loopback separadas y necesitan un puente temporal durante el inicio de sesión. Sigue la guía del puente temporal local de OAuth de Codex para conocer los comandos exactos de Docker, Compose, Podman y desmontaje.

Para un despliegue remoto, el localhost del navegador y el localhost del servidor son máquinas diferentes, de modo que un proxy inverso ordinario por sí solo no puede llevar la devolución de llamada localhost del navegador hasta el servidor. Usa un túnel SSH como puente de devolución de llamada. El túnel llega hasta el puerto Web ya publicado; Next.js reescribe únicamente la ruta exacta de devolución de llamada hacia el broker público de devolución de llamada, y el broker valida state antes de enrutar hacia la operación OAuth original. El listener de devolución de llamada permanece en el loopback del backend, los puertos 1455 y 1457 no se publican, y esta ruta admite la red bridge predeterminada de Docker.

ssh -N -L 1455:127.0.0.1:3782 <ssh-user>@<server-host>

Si DeepTutor informa del puerto de devolución de llamada de reserva 1457, usa:

ssh -N -L 1457:127.0.0.1:3782 <ssh-user>@<server-host>

Ejecuta solo el comando que coincide con el puerto de devolución de llamada real; nunca ejecutes ambos. 3782 es solo el puerto Web de ejemplo: es el puerto de frontend/contenedor configurado, indicado como callback_forward_port. Ese valor no garantiza que el mismo puerto esté escuchando en el 127.0.0.1 del host SSH. Si Docker o Podman publican un puerto de host diferente, o un proxy inverso escucha en un puerto distinto, reemplaza solo el puerto de destino del lado derecho (3782 arriba) por el puerto Web que realmente escucha en el 127.0.0.1 del host SSH; conserva el puerto de devolución de llamada del lado izquierdo como 1455 o 1457. <server-host> es el host SSH cuyo loopback posee ese puerto en escucha. Si la URL del navegador nombra un proxy inverso o balanceador de carga, reemplázala por el host frontend SSH correcto.

La CLI imprime el comando del túnel y luego intenta abrir el navegador de inmediato. En un despliegue remoto, mantén abierta la página de autorización sin completarla, establece el túnel impreso en otra terminal, y solo entonces continúa la autorización.

La detección de topología remota tiene un límite de localhost. Si la propia Web se alcanza a través de un reenvío de localhost de SSH o del IDE, el navegador no puede saber que el servidor es remoto. Para la operación Web actual, deja su página de autorización sin terminar, lee redirect_uri en la URL de autorización de esa operación para identificar el puerto de devolución de llamada 1455 o 1457, y crea el segundo túnel desde ese puerto local hasta el puerto Web real. Como alternativa, cancela esa operación Web e inicia una nueva con la CLI; la salida de la CLI pertenece a la nueva operación y no debe usarse para la operación Web existente. Los errores de cuota y los fallos de catálogo se informan tal cual y nunca recurren a un proveedor de pago. Esta ruta de compatibilidad es experimental: la interfaz upstream puede cambiar.

🛠️ Administración y despliegues compartidos

Las cinco áreas anteriores describen el espacio de trabajo orientado al estudiante. Los siguientes controles de despliegue son para administradores que alojan DeepTutor para varios usuarios.

👥 Multiusuario — Despliegues compartidos · autenticación opcional, espacios de trabajo aislados por usuario

La autenticación está desactivada por defecto — DeepTutor funciona en modo monousuario. Actívala y un árbol data/ aloja un espacio de trabajo de administrador, espacios de trabajo aislados por usuario y espacios de trabajo de partner en paralelo:

data/
├── user/                    # Admin workspace + global settings
├── users/<uid>/             # Per-user scope: chat history, memory, notebooks, KBs
├── partners/<id>/workspace/ # Partner (synthetic-user) scope
├── cli-apps/                # Installed CLI apps, mounted read-only into the sandbox
└── system/                  # auth · grants · audit · user-secrets/<owner> (OAuth tokens)

El primer usuario registrado se convierte en administrador y controla los catálogos de modelos, las credenciales de proveedor, las bases de conocimiento compartidas, las skills, los libros compartidos canónicos y los permisos por usuario. Para los usuarios locales creados por el administrador se elige Standard, Learner o Custom. Learner bloquea las capacidades de aprendizaje y la política de materiales, añade un perfil adaptativo y admite credenciales de dispositivo revocables con caducidad y límites diarios; los tutores autorizados pueden ver informes, aprobar materiales y restablecer credenciales. Los demás usuarios obtienen espacios de trabajo aislados y acceso con alcance a modelos, KB, skills, Partners y libros compartidos sin recibir claves API en bruto. Si auth.json ya contiene un username + password_hash, esa cuenta es el administrador: /register permanece cerrado y las cuentas creadas desde /admin/users siempre tienen role=user hasta que las asciendas.

Activarla: activa la autenticación en data/user/settings/auth.json, reinicia deeptutor start, registra al primer administrador en /register, luego añade usuarios desde /admin/users y asigna modelos, KB, skills, Partners, política de herramientas/MCP/aplicaciones CLI y acceso de ejecución de código mediante permisos; configura los libros compartidos en el panel Book access de cada usuario.

Para orígenes privados/públicos divididos, establece auth.private_login_hosts (o AUTH_PRIVATE_LOGIN_HOSTS) en los hosts de frontend privados que pueden mostrar el inicio de sesión con contraseña y el registro. El frontend reenvía el Host HTTP entrante al backend como su afirmación de host de frontend. Conserva el Host del navegador a través de tu proxy inverso y haz que la entrada pública rechace las solicitudes que nombren un host privado; no expongas un puerto de Next.js sin procesar que acepte valores de Host arbitrarios. El Host HTTP puede ser falsificado por un cliente directo, por lo que la autorización de host privado depende de ese límite de entrada. El backend acepta afirmaciones de host de frontend solo desde loopback por defecto. Si el frontend Web se conecta desde otro contenedor u host, establece AUTH_TRUSTED_FRONTEND_PROXY_IPS con la dirección IP exacta de ese proxy de frontend en el proceso del backend (separadas por comas si hay más de una). Esto sustituye los valores predeterminados; incluye 127.0.0.1,::1 si también necesitas conexiones locales del frontend. Mantén la API del backend privada para el proxy de frontend y no incluyas redes de clientes generales en esta lista. Cuando private_login_hosts no está vacío, un usuario autenticado en un origen privado puede abrir Perfil → Inicio de sesión público de dispositivo y crear un enlace de emparejamiento de corta duración vinculado al host para un origen público HTTPS. La página pública /handoff intercambia el código de un solo uso por un ticket JWE igualmente breve en un cuerpo POST, consume el ticket una vez y recibe la cookie de sesión HttpOnly normal.

PocketBase sigue siendo una integración monousuario — mantén integrations.pocketbase_url en blanco para despliegues multiusuario a menos que hayas conectado un almacén de usuarios externo.

⌨️ DeepTutor CLI — Interfaz Nativa de Agentes

Un binario deeptutor, dos formas de entrar: un REPL interactivo para quienes viven en la terminal, y JSON estructurado para otros agentes que manejan DeepTutor como herramienta. Las mismas capacidades, herramientas y bases de conocimiento en ambos casos.

Manejarlo tú mismo

deeptutor chat abre un REPL interactivo y selecciona un modo con --capability; deeptutor run <capability> "<message>" recibe esa capacidad como primer argumento posicional y sale después de un turno. Ambos aceptan --tool, --kb, --config y --workspace para seleccionar un espacio de trabajo registrado.

deeptutor chat                                              # interactive REPL
deeptutor chat --capability deep_solve --kb my-kb
deeptutor run chat "Explain the Fourier transform" --kb textbook
deeptutor run chat "Find recent work beyond this material" --kb textbook
deeptutor run deep_research "Survey 2026 papers on RAG" \
  --config mode=report --config depth=standard

--kb aporta contexto para las herramientas automáticas RAG y Knowledge Frontier; Frontier necesita tanto el módulo knowledge como research. --tool selecciona las herramientas activables por el usuario. Los módulos habilitados también proporcionan comandos de KB, sesiones, partners, skills, cuadernos, memoria y configuración.

Dejar que un agente lo maneje

DeepTutor está construido para ser operado por otro agente. Añade --format json a cualquier run y cada turno transmite NDJSON — un evento por línea (content, tool_call, tool_result, done, …), cada línea etiquetada con su session_id. Las ejecuciones no necesitan una terminal interactiva: una pausa ask_user sin TTY se resuelve automáticamente con una respuesta vacía en lugar de bloquearse.

# One shot, machine-readable
deeptutor run deep_solve "Find d/dx[sin(x^2)]" --tool reason --format json

# Chain turns in one stateful session — capture the id, reuse it
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

El repositorio incluye un SKILL.md en la raíz — un documento compacto de traspaso para la CLI. Pide a tu agente que lo lea explícitamente; su guía de configuración para agentes abarca la instalación y la configuración. También puedes envolver deeptutor run como herramienta en un bucle LangChain / AutoGen. Recetas completas: Agent Handoff.

Revisión visual opcional para animaciones de Manim

Establece enable_visual_review=true para inspeccionar los fotogramas renderizados en busca de solapamientos y problemas de legibilidad y encuadre, y después incorpora los problemas detectados al bucle existente de reparación de código:

deeptutor run math_animator "Animate a sine wave" --config enable_visual_review=true
deeptutor run visualize "Animate a sine wave" \
  --config render_mode=manim_video --config enable_visual_review=true

La opción está establecida en false por defecto. También funciona con output_mode=image para math_animator y render_mode=manim_image para visualize. Otros visualizadores, incluido el bucle general auto, la ignoran. Las dependencias opcionales de Manim siguen siendo necesarias.

Para turnos del SDK, pasa config={"enable_visual_review": True} en el TurnRequest enviado a DeepTutorApp.start_turn(). Los clientes de la API usan el mismo objeto config con true de JSON. Para bloques de animación de libros, establece params={"enable_visual_review": True} en el Block de animación.

La revisión añade llamadas al modelo de visión y puede añadir llamadas de reparación y nuevos renderizados, lo que aumenta el coste y la latencia. Usa el límite existente de cuatro reintentos, con un tiempo de espera de 120 segundos para la revisión y de 180 segundos para la reparación. Si no hay fotogramas disponibles o el modelo de revisión configurado no puede inspeccionar imágenes, la revisión se omite con un resumen. Una revisión fallida después de todos los reintentos devuelve el mejor renderizado disponible y su resultado de revisión fallido; un tiempo de espera de revisión sigue la ruta existente de error/reintento de renderizado. Los resultados de la capacidad exponen render.visual_review; los bloques de libro conservan los mismos datos de revisión en metadata.visual_review (null cuando no se ejecutó la revisión).

Referencia de comandos

La tabla abarca la instalación completa y los complementos opcionales; los comandos y las capacidades requieren que sus módulos estén habilitados. El núcleo proporciona chat y ask_questions.

Comando Descripción
deeptutor init [--non-interactive] [--home PATH] Ejecutar el asistente de configuración o crear los valores predeterminados que falten sin preguntas
deeptutor doctor [--online] Comprobar si el runtime está listo para iniciar una sesión; --online también sondea el proveedor de modelo configurado y --format json imprime el informe
deeptutor start [--home PATH] [--dev] [--detach] [--no-browser] Iniciar backend + frontend juntos; opcionalmente separar el proceso o impedir que se abra el navegador
deeptutor stop [--home PATH] Detener un launcher iniciado con --detach
deeptutor serve [--port PORT] Iniciar solo el backend FastAPI
deeptutor module list/install/uninstall/enable/disable Inspeccionar módulos y modificarlos con DeepTutor detenido; los checkouts de código fuente permiten habilitarlos y deshabilitarlos
deeptutor workspace show/set/reset Inspeccionar, seleccionar o restaurar el Espacio de Trabajo de Contenido por usuario
deeptutor run <capability> <message> Ejecutar un único turno de capacidad (chat, ask_questions, deep_solve, deep_question, deep_research, visualize, math_animator, video_lesson, mastery_path, immersive_reading, audio_overview); añade --format json para salida NDJSON
deeptutor chat REPL interactivo con controles de capacidad, herramienta, KB, notebook e historial
deeptutor partner list/create/start/stop Gestionar partners conectados por IM
deeptutor kb list/info/create/connect-kiwix/add/search/eval/eval-diff/set-default/delete/list-sources/sync Gestionar bases de conocimiento, conectar archivos Kiwix, evaluar y comparar ejecuciones de recuperación, y sincronizar fuentes registradas de GitHub/web (con comandos para añadir o eliminar fuentes)
deeptutor skill search/install/list/remove/login/logout/publish/update Gestionar skills, instalar desde hubs y publicar las propias (eduhub:<slug> por defecto, consulta Ecosistema)
deeptutor memory show/clear Inspeccionar documentos de memoria L2/L3 o borrar la memoria L1/toda la memoria
deeptutor session list/show/open/rename/delete Gestionar sesiones compartidas
deeptutor notebook list/create/show/add-md/replace-md/remove-record Gestionar cuadernos desde archivos Markdown
deeptutor book list/health/refresh-fingerprints Inspeccionar libros y actualizar huellas dactilares de fuentes
deeptutor plugin list/info/state/search/show/install/approve/enable/disable/rollback/uninstall Inspeccionar herramientas y capacidades; gestionar paquetes de plugins revisados y sus aprobaciones de permisos
deeptutor config show [--home PATH] Mostrar la configuración de runtime resuelta con las credenciales ocultas
deeptutor config providers Listar los proveedores de configuración compatibles y sus valores predeterminados como JSON
deeptutor config apply FILE [--check] [--home PATH] Aplicar JSON de configuración sin preguntas o validarlo sin escribir la configuración
deeptutor provider login <provider> Autenticación del proveedor (inicio de sesión OAuth de openai-codex; inicio de sesión de dispositivo de GitHub de github-copilot; codebuddy valida la autenticación del SDK de CodeBuddy e inicia sesión cuando es necesario)

Las credenciales de GitHub Copilot pertenecen al propietario que ha iniciado sesión en DeepTutor y solo se guardan en <runtime-home>/data/system/user-secrets/<owner-id>/private/github-copilot/credentials.v1.json, fuera de los espacios de trabajo del sandbox. Los partners de la CLI y del administrador usan las credenciales del administrador; los demás usuarios inician sesión por separado, y los perfiles de Copilot no se pueden compartir mediante permisos de modelos. Nunca se importan archivos de tokens externos de nanobot/Copilot: después de actualizar, vuelve a ejecutar deeptutor provider login github-copilot.

El inicio de sesión valida la inferencia con un modelo descubierto en ese momento; init valida el modelo seleccionado y aborta si falla, sin guardar el borrador de configuración. La autenticación correcta en GitHub no demuestra por sí sola el acceso a los modelos de Copilot (el inicio de sesión guardado se conserva si la validación falla). Las solicitudes de runtime usan el endpoint de API devuelto por el intercambio de tokens, incluidas las renovaciones, y respetan los metadatos de endpoints Responses/Chat Completions de cada modelo.

La compatibilidad de Responses específica de Copilot se aplica al enviar la solicitud, sin reescribir el historial guardado.

Distribución de solo CLI

El wheel básico proporciona la CLI y el SDK; deeptutor-cli es un metapaquete de compatibilidad. El código fuente expone todos los módulos incluidos en el repositorio, así que instala sus dependencias Python y omite la configuración del frontend para usar la CLI:

python -m pip install -r requirements/full.txt
python -m pip install -e . --no-deps

Para una instalación mínima, usa el wheel básico. Las distribuciones opcionales aportan herramientas, capacidades, rutas API, servicios en segundo plano y navegación. Los módulos comparten un entorno Python y deben coincidir con la versión del núcleo. deeptutor[full] selecciona los módulos habituales de la aplicación durante la instalación; después puedes eliminar funciones individuales.

Detén DeepTutor (Ctrl+C en su terminal) y utiliza el mismo entorno Python y DEEPTUTOR_HOME:

deeptutor module list                       # installed / enabled / ready
deeptutor module disable research           # hide and deactivate; keep code
deeptutor module enable research            # restore it and required modules

# Package installations only; source checkouts use enable / disable:
deeptutor module install solve              # install the matching module and dependencies
deeptutor module uninstall solve --dry-run  # inspect the plan and dependency blockers
deeptutor module uninstall solve            # remove only this module's distribution
deeptutor chat                              # restart the CLI; use start for an installed Web app

Ejemplos: solve, research, questions, knowledge, parsing, reading, mastery, books, memory, notebook y partners. Los módulos dependientes bloquean la eliminación; el núcleo no se puede eliminar mediante el comando de módulos. Deshabilitar o desinstalar conserva la configuración, las conversaciones, las bases de conocimiento y los archivos generados. También se conservan las dependencias compartidas de terceros.

En el navegador: Settings → Estado de ejecución → Módulos muestra el estado de los módulos y los comandos de terminal correspondientes. Los cambios de paquetes requieren que el entorno esté detenido y se realizan en la CLI. Chat → Personalizar página y Aprendizaje → Nueva actividad de aprendizaje → Personalizar página cambian inmediatamente las preferencias personales de esas páginas; ocultar una entrada no desinstala su módulo ni revoca el acceso.

La familia de paquetes 1.7.0 utiliza versiones coincidentes en los wheels del núcleo y de las funciones. Para instalar wheels locales, pasa --wheelhouse /path/to/wheels a module install. Consulta instalación de módulos y desarrollo desde código fuente para construir los wheels y conocer los detalles de despliegue.

🧩 Ecosistema — EduHub y la Comunidad de Skills

Las skills de DeepTutor usan el formato abierto Agent-Skills — una carpeta con una guía SKILL.md (frontmatter YAML + Markdown) y archivos de referencia opcionales. No hay nada específico de DeepTutor en ello, así que cualquier registro que hable el formato se convierte en una fuente para tu biblioteca. DeepTutor incluye EduHub — nuestro propio registro de skills centrado en la educación — conectado como hub predeterminado.

EduHub — El ecosistema de skills de DeepTutor

EduHub es el hub comunitario que DeepTutor lanzó para compartir skills de agentes orientadas a la enseñanza — tutores socráticos, creadores de tarjetas flash, retroalimentación de ensayos, esquemas de exámenes, explicadores de conceptos y más. Está integrado en DeepTutor, así que no hay nada que configurar: un slug simple o un prefijo eduhub: se resuelve a él.

Encontrar e instalar — en el navegador, abre Personalización → Skills → Importar desde EduHub para explorar el catálogo y descargar una skill directamente en tu biblioteca. Desde la terminal:

deeptutor skill search "socratic tutor"               # search EduHub (the default hub)
deeptutor skill install socratic-tutor                # fetch → verify → register
deeptutor skill install eduhub:[email protected]   # pin a hub and a version
deeptutor skill list                                  # local skills with their hub provenance

Publicar las tuyas — empaqueta un SKILL.md y compártelo con la comunidad:

deeptutor skill login                                 # browser sign-in to EduHub
deeptutor skill publish ./my-skill                    # interactive: pick a track + tags, then upload
deeptutor skill update                                # roll back or release a new version

EduHub también es un registro independiente compatible con ClawHub, así que los agentes que no son DeepTutor (Claude Code, Codex, …) pueden usarlo directamente a través de la CLI eduhub — npx eduhub install socratic-tutor.

La puerta de seguridad de importación

Sea cual sea la fuente, cada importación pasa por la misma puerta de seguridad antes de que nada toque tu espacio de trabajo:

  • el veredicto de seguridad del registro se comprueba primero — los paquetes marcados se rechazan a menos que pases --allow-unverified;
  • los archivos se extraen de forma defensiva con comprobaciones de recorrido de rutas, número de entradas, tamaño, relación de compresión, sufijos y enlaces simbólicos; se eliminan los bits ejecutables, pero se siguen permitiendo los archivos sin extensión;
  • el frontmatter se normaliza al esquema de DeepTutor y always: se elimina, de modo que una skill descargada nunca puede imponerse en todos los prompts del sistema;
  • la procedencia — hub, versión, veredicto y hora de instalación — se escribe en .hub-lock.json para auditorías y actualizaciones.

En despliegues multiusuario, las importaciones desde el navegador llegan a la capa de skills del usuario autenticado, mientras que las instalaciones desde la CLI y la consola de administración se dirigen al espacio de trabajo del propietario/administrador; las skills del administrador permanecen ocultas y son de solo lectura para los usuarios comunes hasta que se les conceda acceso.

También compatible con ClawHub

Como DeepTutor habla el formato abierto Agent-Skills, ClawHub también funciona como fuente de primera clase — está integrado junto con EduHub. Selecciónalo con el prefijo del hub:

deeptutor skill search "git release notes" --hub clawhub
deeptutor skill install clawhub:[email protected]
deeptutor skill install clawhub:udiedrichsen/stock-analysis

Cuando varios publicadores comparten el mismo slug, la búsqueda muestra cada publicador y una referencia de instalación completamente calificada (clawhub:<ownerHandle>/<slug>).

Añade más registros en data/user/settings/skill_hubs.json: una entrada type: "clawhub" apunta a cualquier API HTTP compatible (tanto EduHub como ClawHub lo hablan), type: "command" envuelve cualquier CLI de obtención que proporcione un registro, y "default" elige el hub usado para slugs simples. Todos ellos pasan por la misma puerta de importación.

🤝 Socios de Código Abierto

PageIndex

Usando el código: DEEPTUTOR20 — ¡obtén $20 de descuento en tu primera suscripción a PageIndex!

🌐 Comunidad

🔗 Mantenedores

Bingxi Zhao
Bingxi Zhao
Xingyu Hou
Xingyu Hou
Jiahao Zhang
Jiahao Zhang

📮 Contacto

DeepTutor es un proyecto de código abierto dirigido por Bingxi Zhao dentro del grupo HKUDS, y evoluciona de forma completamente abierta, construido junto con la comunidad. Hasta ahora, NO tenemos productos en línea de pago de ningún tipo. No dudes en escribirnos a [email protected] para conversar, proponer ideas o colaborar.

🙏 Agradecimientos

Un agradecimiento de corazón a Chao Huang, director del Data Intelligence Lab @ HKU, y a nuestros compañeros de HKUDS por su cálido apoyo — especialmente Jiahao Zhang, Zirui Guo y Xubin Ren. También estamos profundamente agradecidos a la comunidad de código abierto: tus estrellas, issues, pull requests y debates dan forma a DeepTutor cada día.

DeepTutor también se apoya en los hombros de destacados proyectos de código abierto que nos dieron herramientas e inspiración:

Proyecto Rol / Inspiración
LlamaIndex Columna vertebral del pipeline RAG y la indexación de documentos
nanobot Motor de agente ultraligero que impulsó el TutorBot original (HKUDS)
LightRAG RAG simple y rápido (HKUDS)
AutoAgent Marco de agentes sin código (HKUDS)
AI-Researcher Pipeline de investigación automatizada (HKUDS)
OpenClaw Pasarela de agentes abierta y ecosistema de skills detrás de ClawHub
Codex CLI de codificación nativa de agentes que inspiró nuestro flujo de trabajo de la CLI
Claude Code CLI de codificación agéntica que inspiró el bucle de agentes de DeepTutor
ManimCat Generación de animaciones matemáticas impulsada por IA para Math Animator

🗺️ Roadmap y contribuciones

Queremos que DeepTutor siga evolucionando y mejorando — y que finalmente se convierta en un regalo que devolvamos a la comunidad de código abierto. Nuestro roadmap se actualiza continuamente; vota por sus elementos o propone otros nuevos. Si quieres contribuir, consulta la Guía de Contribución para conocer la estrategia de ramas, los estándares de código y cómo empezar.

Esperamos que DeepTutor se convierta en un regalo para la comunidad. 🎁

Consulta la lista de colaboradores de la rama de desarrollo para ver las contribuciones integradas recientemente.

Licenciado bajo Apache License 2.0.

Explorar proyectos relacionados