Skip to content

Cómo escribir buenas entradas

Las Entradas son lo más importante que crearás. Cada Mundo en la plataforma las usa, y muchos de los populares funcionan enteramente con Entradas bien elaboradas y sin ninguna regla.

Esta guía enseña el arte de escribir Entradas que dan vida a los Mundos. Para lo básico sobre Entradas y secciones, consulta Para empezar: Entradas.


Cómo escribir personajes que se sienten vivos

Los mejores Mundos de la plataforma invierten más en Entradas de personajes que en cualquier otra cosa. Esto es lo que funciona.

Personalidad como comportamiento, no como etiquetas

No te limites a enumerar rasgos. Describe cómo se manifiestan esos rasgos en la acción.

En lugar de esto:

Kasu es tímido, introvertido y desesperado por ser aceptado.

Escribe esto — de la Tarjeta Veneno en el frasco (壺中の毒 · 大逃杀), la Entrada real para Kasu:

Kasu es tan introvertido que apenas se registra como una presencia, y lo que más quiere es ser aceptado. En tres años de escuela, casi nunca habló con nadie sin que se lo pidieran, no por frialdad, sino por miedo. Tiene miedo de que si abre la boca lo rechacen, se burlen de él o lo ignoren. Así que se queda callado y se convierte en parte del fondo.

En el grupo de la cueva, Kasu hace silenciosamente el trabajo más físico: traer agua del arroyo, organizar la ropa de cama, recoger mariscos durante la marea baja. Nunca se queja, porque "tener algo que hacer" es lo que le hace sentir necesario.

La IA no puede actuar "tímido" de forma consistente. Pero sí puede seguir actuando como "trae el agua, nunca se queja, se convierte en parte del fondo."

Etapas de relación

Los Mundos más inmersivos cambian cómo se comportan los personajes según lo bien que el jugador los conoce. Sakura Season hace esto brillantemente: cada una de sus tres heroínas tiene descripciones de comportamiento en cuatro niveles de afinidad (0-25, 26-50, 51-75, 76-100).

Puedes lograr esto con una Entrada por etapa de relación que solo se activa cuando una Variable alcanza un umbral:

  • Etapa temprana (afinidad 0-25): Formal, en guardia, conversación superficial
  • Confianza creciente (afinidad 26-50): Empieza a compartir opiniones, vulnerabilidad ocasional
  • Cercana (afinidad 51-75): Bromas privadas, silencio cómodo, pide ayuda
  • Vínculo profundo (afinidad 76+): Vulnerabilidad total, patrones de habla únicos, protectora

A medida que cambia la Variable de relación, la guía de la IA cambia automáticamente.

Cómo configurar esto

El editor de Entradas en sí solo expone palabras clave como disparador: no tiene una UI para condiciones basadas en Variables. Para que las Entradas dependan de una Variable como la afinidad, usas el sistema de Comportamientos (Reglas) con la acción toggle-entry:

  1. Crea una Entrada por etapa en Chat History ("Rin — Etapa temprana", "Rin — Confianza creciente", etc.). Márcalas todas como deshabilitadas por defecto.
  2. Para cada etapa, añade un Comportamiento:
    • When: cambio de Variable (o cada turno)
    • If: por ejemplo, rin_affinity >= 26 AND rin_affinity < 51
    • Then: toggle-entry activar "Rin — Confianza creciente", toggle-entry desactivar las demás

El motor activa/desactiva las Entradas cada turno según tus condiciones, y solo el contenido de la etapa coincidente llega a la IA.

Los creadores avanzados que manejan los Mundos desde JSON (Studio AI, Claude Code, etc. mediante la especificación del Mundo) también pueden establecer conditions: [...] directamente en un WorldEntry: el motor las evalúa en el matcher del Lorebook. La UI del editor simplemente no expone ese campo hoy en día, así que la ruta de Comportamientos es el camino dentro del producto.

Referencia completa del esquema → Especificación del mundo: Entradas

La fórmula de la hoja de personaje

Tras estudiar decenas de Mundos exitosos, este es el patrón que funciona:

  1. Identidad (1-2 oraciones): Nombre, rol, rasgo central
  2. Apariencia (2-3 oraciones): Lo que ve el jugador. Detalles específicos, no descripciones genéricas
  3. Patrones de comportamiento (la mayor parte): Cómo hablan, qué hacen cuando están nerviosos/enojados/felices, sus hábitos, contradicciones
  4. Relación con el jugador: Cómo ven al jugador inicialmente, qué cambia su opinión
  5. Secretos: Cosas que la IA conoce pero el personaje no revela fácilmente

La sección de patrones de comportamiento es donde la mayoría de los creadores invierten menos. También es donde sucede la magia.


El Lorebook: contexto bajo demanda

El Lorebook es el sistema de Entradas activadas por palabras clave. Es la razón por la que puedes construir un Mundo con 50.000 palabras de lore y aun así tener una IA rápida y enfocada.

Diseñar buenas listas de palabras clave

El motor escanea los últimos mensajes en busca de tus palabras clave. Cualquier coincidencia de una sola palabra clave activa la Entrada (lógica OR). Piensa en todas las formas en que un jugador podría referirse a algo.

Para una Entrada sobre una taberna:

  • tavern, inn, bar, drink, bartender, pub

Para una Entrada sobre un personaje llamado Sakurai Kimika:

  • Kimika, Sakurai, class rep, class representative

Coincidencia de palabra completa: actívala cuando palabras clave cortas causarían disparadores falsos. Sin ella, la palabra clave "art" coincidiría con "start", "heart" y "apart."

Palabras clave secundarias para precisión

A veces una palabra clave no es suficiente para saber si una Entrada es relevante. Las palabras clave secundarias te permiten añadir un segundo filtro:

ModoSignificadoCaso de uso de ejemplo
AND_ANYLa primaria coincide Y al menos una secundaria"forest" + cualquiera de ["elf", "danger", "ruins"]
AND_ALLLa primaria coincide Y todas las secundarias coinciden"forest" + tanto "night" Y "danger"
NOT_ANYLa primaria coincide Y ninguna de las secundarias"forest" pero NO "safe" ni "peaceful"
NOT_ALLLa primaria coincide Y no todas las secundarias"forest" pero no tanto "safe" Y "day" juntas

El uso más común: AND_ANY para intersección de temas. Quieres que la Entrada de "lore del bosque oscuro" se active cuando el jugador mencione tanto bosques COMO algo siniestro, no cualquier mención de árboles.

Inyección por profundidad: dónde aparece la Entrada en el chat

Las Entradas activadas por palabras clave no van al principio del prompt con los System Presets. Se inyectan en el historial de chat en una posición específica. El ajuste de depth controla dónde.

depth: 4 significa que la Entrada aparece 4 mensajes desde el final del chat. Esto hace que se sienta como una parte natural de la conversación reciente en lugar de una instrucción del sistema desde arriba.

Los números de profundidad más bajos (más cerca del final) reciben más atención de la IA. Los números más altos (más atrás) se sienten más como contexto de fondo.

Detalle técnico: cómo funciona la profundidad

Si el historial de chat es:

[1] User: Hello
[2] AI:   Hi there
[3] User: Where's the forest?
[4] AI:   Head north
[5] User: Alright, let's go

Una Entrada con depth 2 se inserta antes del mensaje [4]:

[1] User: Hello
[2] AI:   Hi there
[3] User: Where's the forest?
--- [Contenido de la Entrada insertado aquí] ---
[4] AI:   Head north
[5] User: Alright, let's go

depth 0 coloca la Entrada al final (similar a las Post Instructions).

Referencia completa → Especificación del mundo: Entradas


Entradas dirigidas por estado

Las Entradas más poderosas no esperan a las palabras clave. Se activan basándose en el estado real del Mundo.

Una cosa que aclarar primero: el editor de Entradas no expone una función incorporada de "activar según el valor de Variable". "Dirigida por estado" es un patrón, no un botón. Lo construyes combinando Entradas ordinarias con el sistema de Comportamientos: usando la acción toggle-entry para activar/desactivar Entradas a medida que las Variables cruzan umbrales, exactamente como se muestra en el bloque ::: details Cómo configurar esto bajo Etapas de relación arriba. Si manejas el Mundo desde JSON (Studio AI, la especificación del Mundo), también puedes establecer conditions: [...] directamente en un WorldEntry y el motor las evaluará durante la coincidencia del Lorebook, pero ese campo no está expuesto en la UI del editor.

El resultado es el mismo de cualquier manera: la Entrada se activa por el valor real de una Variable, no por si el jugador escribió o no una palabra clave.

Ejemplo del mundo real: actitudes de compañeros

Wandering Diary usa este patrón para cambiar cómo se comportan los compañeros hacia el jugador. Cada compañero tiene tres Entradas: una para afinidad baja (cautelosa y distante), una para media (calentándose), una para alta (lealtad profunda), más un pequeño conjunto de Comportamientos que activan la correcta a medida que la Variable de afinidad cruza cada umbral.

El jugador nunca ve esta maquinaria. Solo experimenta a un compañero que gradualmente se abre.

Condiciones + palabras clave juntas

La misma combinación funciona para contexto más estrecho. Dale a una Entrada tanto una palabra clave como una activación/desactivación dirigida por Comportamiento, y solo se dispara cuando ambas son verdaderas:

  • Palabra clave: Kimika, class rep
  • Compuerta de Comportamiento: habilitada cuando day_count > 3, deshabilitada de otra manera
  • Efecto: la historia de fondo del NPC solo aparece después del Día 3 y solo cuando el jugador la menciona

Esto evita que la información aparezca demasiado pronto en la historia.

Siete operadores de comparación

OperadorSignificadoMejor para
eqIgualComprobaciones de estado exactas ("location equals cave")
neqNo igualExclusiones ("no en la zona del tutorial")
gtMayor queUmbrales ("afinidad por encima de 50")
gteMayor o igualUmbrales inclusivos
ltMenor queDisparadores de estado bajo ("salud por debajo de 20")
lteMenor o igualEstado bajo inclusivo
containsString contieneCoincidencia de texto parcial

Múltiples condiciones se combinan con All (todas las condiciones deben cumplirse) o Any (una basta).


Técnicas avanzadas

Recursión: contexto encadenado

Cuando la Entrada A se activa y su contenido menciona una palabra clave de la Entrada B, ¿debería activarse también B? Eso es recursión. Está desactivada por defecto (profundidad de recursión = 0 en los ajustes) pero puede activarse para Mundos con lore interconectado.

Usa con cuidado. Las cadenas de recursión profunda pueden consumir mucho contexto. La mayoría de los Mundos lo mantienen en 0 o 1.

Dos controles de seguridad:

  • Prevent Recursion: Esta Entrada puede activarse, pero su contenido no escaneará otras Entradas. "Pueden despertarme, pero yo no despertaré a nadie más."
  • Exclude Recursion: Solo las palabras reales del jugador pueden activar esta Entrada. Invisible a los escaneos recursivos por completo.

Anulación del rol de la API

Por defecto, todas las Entradas se envían como mensajes del sistema. Pero puedes cambiar cómo la IA las interpreta:

  • Instruction (system): El valor por defecto. La IA lo trata como una regla a seguir.
  • User: La IA piensa que un jugador dijo esto. Algunos modelos ponderan los mensajes de usuario más fuertemente.
  • Assistant: La IA piensa que lo dijo ella misma. Útil para "prerellenar" un estilo de respuesta.

Diálogo de ejemplo

Las Entradas etiquetadas como ejemplos reciben un tratamiento especial. El motor las analiza en pares de mensajes usuario/asistente, así que la IA ve muestras reales de conversación en lugar de un bloque de texto.

Formato:

<START>
{{user}}: Can you heal this wound?
{{char}}: *examines the wound, frowning* This isn't a normal knife wound.
There's a curse residue. I need moonflower pollen... but it's daytime.
<START>
{{user}}: So what do we do?
{{char}}: *shrugs* Either wait for nightfall, or you endure it.
I recommend the latter — pain is the best teacher.

Usa <START> para separar diferentes ejemplos de conversación. {{user}} y {{char}} son macros que se reemplazan con los nombres reales del jugador y del personaje.

Pocos ejemplos buenos superan a muchos. 2-3 muestras de diálogo que capturen la voz del personaje son más efectivas que 10 que hagan que la IA las imite rígidamente.

Palabras clave con regex

Las palabras clave también admiten expresiones regulares. Escribe tu palabra clave en formato /pattern/flags (por ejemplo, /dark\s*forest/i) y el motor la tratará como una regex en lugar de un string literal. Útil cuando necesitas coincidir con fraseo flexible que las palabras clave simples no pueden cubrir.

Profundidad de escaneo y presupuesto de tokens

El motor no escanea todo el historial de chat en busca de palabras clave; eso sería un desperdicio. El ajuste del Mundo lorebookScanDepth (por defecto 2) controla cuántos mensajes recientes comprobar. Puedes cambiar esto en el editor en Entry Settings dentro de la sección Lorebook. Los valores más altos capturan más referencias pero cuestan más procesamiento.

También hay un presupuesto de tokens: lorebookBudgetPercent (por defecto 100%) y lorebookBudgetCap (por defecto ilimitado) limitan cuántos tokens totales pueden consumir las Entradas activadas. Cuando se excede el presupuesto, las Entradas con puntuaciones de coincidencia más altas tienen prioridad.

Organización en carpetas

Cuando tu Mundo tiene decenas o cientos de Entradas, la lista de la barra lateral se vuelve difícil de manejar. El editor admite carpetas: arrastra Entradas a agrupaciones lógicas (todos los NPC en una carpeta, todo el lore de ubicaciones en otra). Las carpetas son puramente organizativas; no tienen efecto en el comportamiento en tiempo de ejecución, la coincidencia ni el orden de inyección.

Ordenamiento por posición

Dentro de cada sección, las Entradas se ordenan por su número de position (más bajo = más temprano). Admite decimales, así que puedes colocar una Entrada entre las posiciones 2 y 3 dándole la posición 2.5.

Las Entradas más tempranas en System Presets se almacenan en caché de manera más eficiente, así que coloca tu contenido más estable (descripciones de personajes, reglas del mundo) en posiciones más bajas, y el contenido que podría cambiar (instrucciones dinámicas) en posiciones más altas.


Errores comunes

Entradas de palabra clave sin palabras clave. Si pones una Entrada en Chat History pero olvidas añadir palabras clave (y no la estás activando desde un Comportamiento), nunca se disparará. Las Entradas siempre activas pertenecen a System Presets.

Rangos de etapa superpuestos en tus Comportamientos. Si tu activación "Rin — Etapa temprana" se dispara cuando afinidad < 30 y "Rin — Confianza creciente" se dispara cuando afinidad > 25, ambas Entradas terminan habilitadas entre 26-29. Usa rangos no superpuestos: < 26 y >= 26 AND < 51.

Palabras clave demasiado específicas que nunca coinciden. Si tu Entrada sobre el "Crystalline Sanctum" solo se activa con crystalline sanctum, los jugadores que escriban "crystal place" o "that temple" nunca la verán. Piensa en cómo los jugadores realmente se refieren a las cosas, no solo en el nombre canónico.

Inyección por profundidad demasiado profunda para contexto importante. Una Entrada con depth 8 queda enterrada tan atrás en el historial de chat que la IA apenas la pondera. Mantén el contexto importante en depth 2-4. Reserva profundidades más altas para sabor de fondo.


Consulta también

Referencia completa del esquema → Especificación del mundo: Entradas y secciones