• UnoRouterUNOROUTER
Documentación
  • Guía del chat
Primeros pasos
  • Primeros pasos
Personajes y mundo
  • Personajes
  • Personas
  • Lorebooks
  • Tarjetas
Prompting
  • Presets
  • Plantilla de prompt
  • Chats grupales
Scripting
  • Macros (CBS)
  • Scripts regex
  • Disparadores y Lua
Contexto y medios
  • Memoria y contexto
  • Imágenes
  • Proveedores personalizados
Tus datos
  • Tus datos
Navegar
  • Modelos
  • Clasificaciones
  • Inspector
  • Precios
  • Chat
  • Estado

Buscar documentación...

Empieza a escribir para buscar documentación

PlataformaIntegracionesChat
Guía del chat

Macros (CBS)

Scripting con llaves dentro de cualquier texto de prompt.

Las macros son fichas entre llaves dobles que se expanden al hacer la petición. Funcionan en campos de personaje, entradas de lorebook, presets, saludos y texto normal del chat, y se pueden anidar.

text
{{char}} smiles at {{user}}.
{{random::sunny::rainy::foggy}}
{{calc::1+2*3}}

Los argumentos se separan con dobles dos puntos. Las macros desconocidas se expanden a nada en vez de fallar, así que una errata nunca rompe una petición.

MacroSe expande a
{{char}}El nombre del personaje actual (en grupos, el hablante actual).
{{user}}El nombre de tu persona.
{{persona}}La descripción de tu persona.
{{description}}El campo descripción del personaje actual.
{{lastmessage}}El texto del mensaje más reciente.
{{time}} / {{date}}Hora / fecha actuales en tu idioma y zona horaria.

random elige un argumento nuevo en cada expansión, pick hace una elección estable durante la conversación, y roll lanza dados con notación d.

text
{{random::a::b::c}}   {{pick::a::b::c}}   {{roll::d20}}

Tiradas y aleatorios llevan semilla por turno: regenerar reutiliza los mismos valores, así que deslizar no vuelve a tirar tus dados.

Las variables de chat persisten por rama de conversación; las globales persisten en todos los chats. Defínelas en cualquier texto con macros o desde scripts de disparadores.

text
{{setvar::mood::happy}}
{{getvar::mood}}
{{setglobalvar::visits::1}}

El almacenamiento por rama significa que deslizar a otra rama restaura su estado de variables; las ramas hermanas nunca se filtran valores entre sí.

Los bloques envuelven contenido: if solo renderiza su cuerpo si la condición es verdadera, each recorre arrays con sustitución de hueco, y when añade ramas else por línea.

text
{{#if {{equal::{{getvar::mood}}::happy}}}}
{{char}} is in a great mood.
{{/if}}

{{#each {{array::red::green::blue}} item}}
Color: {{slot::item}}
{{/each}}

pure y escape protegen las llaves literales de la expansión; cualquier cierre cierra el bloque abierto más interno.

Las macros de comentario desaparecen antes de que el modelo las vea, ideales para notas dentro de los campos de la tarjeta. Usa bloques pure cuando necesites mostrar sintaxis de macros literalmente.

text
{{// note to self, never sent to the model}}
{{#pure}}{{char}} stays literal here{{/pure}}
Chats grupalesScripts regex

En esta página

Sintaxis
Macros básicas
Aleatoriedad
Variables
Bloques
Comentarios y literales