Saltar al contenido principal

Configuración

miyagi tiene tres sitios de configuración: el config.json de cada curso, un .env opcional en la carpeta del curso y un archivo global para todos tus cursos. Las opciones de la línea de órdenes mandan sobre todos ellos.

config.json del curso​

Lo crea miyagi init en la carpeta del curso. Es un JSON con dos partes: classroom (el curso de Moodle, opcional) y agent (cómo trabaja el asistente). Puedes editarlo a mano con cualquier editor; los cambios se aplican en la siguiente sesión.

Un ejemplo completo:

{
"classroom": {
"label": "Introducción a SQL",
"description": "1.º de DAW, grupo A",
"url": "https://moodle.micentro.es",
"courseId": "42",
"username": "mgarcia",
"password": "tu-contraseña"
},
"agent": {
"role": "teacher",
"persona": "warm",
"language": "español",
"headless": false,
"allowPracticeRunner": true,
"draftsLimits": {
"downloadMB": 100,
"unzipMB": 500,
"unzipFiles": 5000
}
}
}
La contraseña va en claro

config.json guarda tu contraseña de Moodle sin cifrar, en tu ordenador. El asistente no puede leer ese archivo (ver Seguridad y privacidad), pero cualquier persona o programa con acceso a tu carpeta sí. En Mac y Linux, miyagi le pone permisos solo para tu usuario. Si versionas la carpeta del curso con git, el .gitignore que crea init ya lo deja fuera.

classroom​

ClaveQué esSi falta
labelNombre para reconocer el curso; aparece en la cabecera del chat.Obligatoria. init propone la dirección de tu Moodle y el número del curso.
descriptionDescripción libre, para ti.Sin descripción.
urlDirección base de tu Moodle, sin /course/view.php (incluye la subcarpeta si Moodle está instalado en una).Obligatoria.
courseIdNúmero del curso, el id de course/view.php?id=….Obligatoria.
usernameTu usuario de Moodle con rol de profesor.Inicias sesión tú a mano en la ventana de Chrome cada vez.
passwordTu contraseña de Moodle.Igual que sin usuario.

Sin usuario y contraseña no se puede usar --headless ni el modo autonomous, porque nadie podría iniciar sesión a mano.

Sin aula​

classroom es opcional. Sin ella, miyagi ayuda con la programación, los temas y los materiales (en drafts/), sin navegador ni nada que publicar, y explore no hace nada. El nombre y la descripción van entonces en la raíz:

{
"label": "Programación 1.º DAM",
"description": "Módulo de Programación, sin aula todavía",
"agent": { "role": "teacher", "language": "español" }
}
ClaveQué esSi falta
labelNombre de la materia; aparece en la cabecera del chat. Con aula, se usa el de classroom.El nombre de la carpeta.
descriptionDescripción libre, para ti.Sin descripción.

Para conectar un aula más tarde, vuelve a ejecutar miyagi init en la carpeta: te pregunta los datos de Moodle y guarda classroom con ese nombre y esa descripción. Si classroom está pero le falta url o courseId, miyagi no arranca y te dice qué falta.

agent​

ClaveQué esSi falta
roleSiempre "teacher". miyagi lo escribe solo para que otro agente que abra la carpeta sepa de quién es. Una carpeta con "student" se rechaza.miyagi lo añade la primera vez.
personaEl tono con los alumnos (foro, retroalimentación, avisos): "formal", "warm" (cercano) o "motivating" (cercano y motivador).Tono neutro.
languageTexto libre con tu idioma preferido para hablar con él, por ejemplo "español" o "English". Si es español, inglés, francés o alemán, también fija el idioma de los menús.El defaultLanguage global; si tampoco está, te responde en el idioma en que le escribas y los menús siguen el del sistema.
headlesstrue para trabajar sin mostrar la ventana de Chrome.El defaultHeadless global; si tampoco está, false.
allowPracticeRunnertrue activa el probador de prácticas en Docker (Prácticas en Docker).Desactivado. Si la clave no existe, miyagi te lo pregunta una vez al abrir chat o run y guarda tu respuesta.
draftsLimitsLímites de la caja de herramientas de drafts/ (ver abajo).Los valores por defecto.

draftsLimits​

Por seguridad, las herramientas con las que el asistente descarga y descomprime archivos en drafts/ tienen límites. Puedes subirlos o bajarlos clave a clave; las que no pongas mantienen su valor por defecto.

ClaveQué limitaPor defecto
downloadMBTamaño de una descarga (y de cada archivo al guardar una página web completa), en MB50
unzipMBTamaño total de lo que escribe al descomprimir un ZIP, en MB200
unzipFilesNúmero de archivos que escribe al descomprimir un ZIP2000

Cada valor tiene que ser un número positivo y una de esas tres claves: si no, miyagi se niega a arrancar y te dice cuál está mal.

.env del curso​

Opcional. Un archivo .env en la carpeta del curso con variables de entorno que miyagi carga al arrancar, por encima de las que ya tenga el sistema. Sirve para usar en ese curso un acceso a Claude distinto del global:

CLAUDE_CODE_OAUTH_TOKEN=tu-token

Como config.json, el asistente no puede leerlo, y el .gitignore de init lo deja fuera.

También se acepta ANTHROPIC_API_KEY: si está definida, se usa en lugar del token, con facturación por uso de la API en vez de tu suscripción.

Configuración global: ~/.miyagi/config.json​

Un archivo en tu carpeta personal (en Windows, C:\Users\<tu-usuario>\.miyagi\config.json) con lo que no depende de un curso:

{
"claudeCodeOAuthToken": "lo-escribe-miyagi",
"defaultLanguage": "español",
"defaultHeadless": false,
"autoCompactEnabled": true
}
ClaveQué esPor defecto
claudeCodeOAuthTokenTu acceso a Claude. miyagi lo guarda aquí la primera vez que lo creas y no te lo vuelve a pedir.Te ofrece crearlo al arrancar.
defaultLanguageEl idioma para los cursos que no fijan agent.language.Ninguno: te sigue en el idioma en que le escribas.
defaultHeadlessSin ventana de Chrome en los cursos que no fijan agent.headless.false
autoCompactEnabledSi la conversación llena el contexto del modelo, la resume automáticamente para poder seguir. Pon false para desactivarlo.true

El token es tan delicado como una contraseña: en Mac y Linux, miyagi deja el archivo legible solo para tu usuario. Si venías de teacher-agent, la primera vez copia ~/.teacher-agent/config.json aquí (el antiguo se queda donde estaba).

Opciones de la línea de órdenes​

Mandan sobre todo lo anterior, solo para esa ejecución:

  • --dir <carpeta>: el curso con el que trabajar. Por defecto, la carpeta actual.
  • --language=<código>: el idioma de los textos de miyagi y del chat: es, en, fr o de. Por defecto, el de agent.language, luego defaultLanguage, luego el del sistema.
  • --headless: sin ventana de Chrome. Orden de preferencia: --headless, luego agent.headless, luego defaultHeadless, luego false. --headless=false la fuerza visible.
  • --mode, --task, --plain, --inline, --continue: ver Sesiones y modos y la Referencia.

El idioma, en detalle​

Hay dos reglas distintas:

  • Cuando habla contigo, usa tu idioma: el que le escribas, o el preferido de la configuración. Eso incluye los resúmenes que te enseña al pedir aprobación.
  • Lo que publica en Moodle (respuestas del foro, retroalimentación, contenido nuevo) va siempre en el idioma que ya usa el curso, aunque tú le hables en otro. Solo cita tal cual, en el idioma del curso, el texto que se va a publicar.