科研模拟面试(Research Mock Interview)

Un sistema de simulación de entrevistas de investigación local, con backend LLM intercambiable, ideal para preparar entrevistas de posgrado, doctorado, defensas de tesis, reuniones de grupo, etc.

¿Qué es 科研模拟面试(Research Mock Interview)?

Este skill de Hermes ofrece un sistema de simulación de entrevistas de investigación local-first con un backend LLM intercambiable. Permite a los candidatos practicar entrevistas para posgrado, doctorado, puestos de investigación, defensas, reuniones de grupo, PhD en el extranjero, etc., basándose en su perfil real (currículum, proyectos, publicaciones). El sistema utiliza un backend LLM (mock offline, Ollama local, cloud con BYOK) para realizar preguntas rigurosas, incluyendo 'preguntas duras' cuando las respuestas son superficiales. Al finalizar, genera una calificación, un repositorio de debilidades y un informe de revisión estructurado. Es completamente local, privado (sin telemetría, datos solo en SQLite local), y fácil de eliminar. Soporta modo de voz intercambiable (STT/TTS) y análisis agregado de debilidades entre sesiones. Ideal para desarrolladores que buscan una herramienta de práctica de entrevistas de investigación robusta, privada y personalizable.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add Bin-H-17/research-mock-interview

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Simulación de Entrevista de Investigación (Research Mock Interview) - Skill de Hermes

1. ¿Qué es esto?

Un sistema de simulación de entrevistas de investigación local-first, entregado como un Skill de Hermes. Lee los materiales de investigación reales del candidato (currículum / proyecto / tesis) y, para escenarios como admisión a posgrado, solicitud de doctorado, búsqueda de empleo en investigación, defensa de tesis, reuniones de grupo, PhD en el extranjero, etc., utiliza un backend LLM intercambiable para actuar como un examinador riguroso, llevando a cabo una simulación de entrevista conversacional de múltiples rondas. Cuando el candidato responde de forma superficial sobre su proyecto/código, el sistema realiza preguntas de seguimiento difíciles (hard blocking). Al finalizar, genera una puntuación, un repositorio de debilidades y un informe de revisión.

1.1 Consistencia con el plan arquitectónico (decisiones tomadas)

  • X1 Usuario objetivo: Todos los perfiles (admisión a posgrado/solicitud de doctorado + versión ligera para búsqueda de empleo). Esta versión v1 cubre seis escenarios: admisión a posgrado/solicitud de doctorado/búsqueda de empleo/defensa/reunión de grupo/PhD en el extranjero.
  • X2 Forma: Skill de Hermes local + captación de tráfico mediante contenido público; este repositorio es el Skill en sí mismo.
  • X3 Voz: En v1.1 se ha implementado un dúplex de voz intercambiable - mock funciona sin conexión y sin dependencias para completar todo el flujo; STT real (vosk/whisper) y TTS real (pyttsx3/edge-tts) son backends opcionales, todos con carga diferida, y si falta una dependencia, se muestra un error claro en tiempo de ejecución (sin romper el núcleo sin dependencias).
  • X4 Captura de artículos de WeChat: Descartado. Este Skill no captura contenido de fuentes externas.
  • X5 Versión de Python: Objetivo 3.12, mínimo 3.11 (ver requirements.txt y §6).
  • Backend LLM intercambiable: Interfaz abstracta + mock (sin conexión, sin dependencias) / ollama (predeterminado local) / cloud (BYOK, clave no almacenada en disco).
  • Material de inicio en frío: Datos de ejemplo anonimizados primero (data/sample_profile.json), con entrada para datos reales (cli run --profile).
  • Regla de privacidad: Local, mono-tenant, eliminable, sin telemetría, sin enviar datos fuera del dominio; tenant_id=local; purge elimina todos los datos del propietario con un solo clic.

2. ¿Cuándo activarlo?

  • El usuario quiere practicar/revisar entrevistas de investigación (admisión a posgrado, solicitud de doctorado, puesto de investigación, defensa, reunión de grupo, PhD en el extranjero).
  • El usuario quiere hacer una prueba de estrés basada en su experiencia real de proyecto para "explicarlo claramente y con detalle".
  • El usuario necesita un informe de revisión estructurado y una lista de debilidades consolidable.

3. Flujo de trabajo (orden de ejecución para el responsable/usuario)

Primer paso: Preparación del entorno (una sola vez)

cd research-mock-interview
python --version            # Debe ser >=3.11, recomendado 3.12
pip install -r requirements.txt   # Opcional: solo se necesita PyYAML si usas config.yaml

Segundo paso: Ejecutar la demostración (funciona sin conexión)

python src/cli.py run --demo

--demo usa los datos de ejemplo integrados + el backend mock, completando automáticamente el ciclo completo de "pregunta → respuesta → pregunta de seguimiento difícil → puntuación → informe de revisión", demostrando que el sistema funciona sin conexión y los datos se guardan localmente en SQLite.

Tercer paso: Cargar datos reales

Organiza tu currículum/proyecto real en un JSON (consulta los campos de data/sample_profile.json) y entonces:

python src/cli.py run --profile /ruta/a/tu_perfil.json --scenario 保研

Entra en modo interactivo, responde ronda por ronda; escribe /finish para terminar y generar el informe, /quit para salir a medio camino (los registros se conservan).

Cuarto paso: Cambiar el backend LLM (opcional)

Copia config.example.yaml como config.yaml, cambia llm.backend a:

  • mock: sin conexión, sin dependencias (predeterminado, adecuado para demostraciones / sin conexión).
  • ollama: backend de producción local predeterminado, completa base_url / model (ej. qwen2.5:7b).
  • cloud: API en la nube (BYOK), la clave solo proviene de variables de entorno (ej. RMI_LLM_API_KEY), nunca hardcodeada / almacenada en disco.

Quinto paso: Ver datos y derecho de eliminación

python src/cli.py list          # Lista todas las entrevistas de este tenant
python src/cli.py report --id <primeros 8 caracteres de session_id o completo>   # Ver informe de revisión
python src/cli.py weakness      # Ver repositorio de debilidades
python src/cli.py purge --yes   # Derecho de eliminación del propietario: borra todos los datos locales de este tenant

Sexto paso (nuevo en v1.1): Modo dúplex de voz (intercambiable)

# Autocomprobación sin conexión: dúplex mock, sin micrófono/red, demuestra que el flujo de voz está completo
python src/cli.py run --demo --voice

# Conectar voz real (primero pip install las dependencias opcionales correspondientes, ver requirements.txt)
# Copiar config.example.yaml a config.yaml, establecer voice.enabled=true o añadir --voice en tiempo de ejecución,
# y cambiar el backend de voice.stt/tts a vosk/whisper/pyttsx3/edge, completar la ruta del modelo.

Séptimo paso (nuevo en v1.1): Análisis agregado de debilidades entre sesiones

python src/cli.py analyze                 # Agregación de todos los escenarios
python src/cli.py analyze --scenario 保研   # Solo ver un escenario
python src/cli.py analyze --out report.md  # Exportar informe Markdown

Dimensiones de agregación: distribución por categoría, distribución por gravedad, tendencias entre sesiones (mejora/empeoramiento/estable), debilidades recurrentes (≥2 veces) y recomendaciones de acción.

4. Responsabilidades de los módulos (src/)

  • llm_backend.py: Abstracción LLMBackend + MockBackend / OllamaBackend / CloudBackend, fábrica from_config(cfg) para cambiar según la configuración.
  • storage.py: Store encapsula la persistencia local SQLite, aislamiento del alcance del tenant, purge_owner() implementa el cierre del derecho de eliminación.
  • interview_engine.py: InterviewSession impulsa el flujo "importar → preguntar → pregunta de seguimiento difícil → puntuar → repositorio de debilidades → informe de revisión".
  • voice_io.py (v1.1): STTProvider / TTSProvider / DuplexVoice de voz intercambiable; mock sin conexión y sin dependencias, backends reales con carga diferida + guardia de dependencia faltante.
  • analytics.py (v1.1): aggregate_weaknesses / render_aggregate_report para agregación de debilidades entre sesiones (solo bibliotecas estándar).
  • cli.py: Punto de entrada argparse (run / list / report / weakness / purge / analyze, run soporta --voice).

5. Disciplinas de diseño (no violar)

  1. No salir del dominio: Todos los datos solo en SQLite local; el backend cloud solo envía el texto de la entrevista a la API configurada por el usuario, la clave solo proviene de variables de entorno.
  2. Sin telemetría: No se recopila ni informa ningún comportamiento de uso.
  3. Eliminable: data_dir se puede eliminar por completo; purge proporciona una limpieza programática con un solo clic.
  4. Backend intercambiable: El código de negocio solo depende de la abstracción LLMBackend; para añadir un nuevo backend solo hay que implementar generate().
  5. Amigable con el arranque en frío: Los datos de ejemplo garantizan que funcione desde el primer momento; los datos reales se importan mediante --profile, con formato compatible hacia atrás.

6. Entorno de ejecución

  • Python objetivo 3.12; mínimo 3.11 (ver comentarios en requirements.txt).
  • Dependencias principales solo bibliotecas estándar; PyYAML es opcional (solo se necesita si se usa config.yaml).
  • La voz es una mejora opcional: el núcleo sigue sin dependencias de terceros obligatorias; las dependencias de STT/TTS reales solo son necesarias si se habilita la voz y se selecciona un motor real (ver comentarios en requirements.txt).

Skills relacionados