Ir al contenido

Skills

Una skill es un texto en Markdown con instrucciones que un agente recibe cuando corre en una etapa: cómo escribir notas de versión, qué revisar en una pantalla, qué formato llevan los commits del equipo. Se escriben una vez en la página “Skills” (/skills/) y se conceden a cada agente por etapa en “Agentes”. Una skill no ejecuta nada: si el agente necesita una herramienta (un navegador, GitHub), eso es un MCP.

La página muestra dos grupos. “Este workspace” son las skills de tu equipo: las crean y editan quienes tienen rol administrador en el workspace, y el resto de los miembros puede leerlas. Conceder una skill a un agente también pide rol administrador. “Thulu” son las skills del sistema, que vienen con la instalación y nadie del workspace puede cambiar. Si borraste alguna, aparece un tercer grupo, “Eliminadas”. El botón “Workshop” abre el catálogo para instalar skills de ejemplo o importar una desde un archivo (Workshop).

Cada corrida recibe las skills concedidas a ese agente en esa etapa, más las skills del sistema que aplican. Lo que ve el modelo depende del motor y de un campo de la skill:

  • Con Claude Code, cada skill llega como un archivo que el modelo abre cuando le parece que aplica. Hasta abrirla, sólo ve el nombre y la descripción. Una descripción vaga hace que la skill no se use nunca.
  • Con un motor que no descubre skills, todas se pegan enteras al prompt.
  • Una skill con “Entrega” en “Siempre en el prompt” (enforcement: always) va pegada al prompt en los dos casos. Sirve para reglas que tienen que valer en todos los turnos.

Podés forzar uno u otro modo por agente con “Entrega de skills”, en su pestaña “Configuración” (“Auto — sigue al motor”, “Nativo” o “En línea”). Ver Agentes.

Flujo recomendado: escribir una skill y concedérsela a un agente

Sección titulada «Flujo recomendado: escribir una skill y concedérsela a un agente»
  1. Abrí “Skills” en la barra lateral y hacé clic en “Nueva skill”. Completá “Nombre” (minúsculas, dígitos y guiones, por ejemplo notas-de-version) y “Descripción”, y hacé clic en “Crear”.

    Escribí la descripción para el modelo: qué cubre la skill y cuándo usarla (“Cómo redactar las notas de versión de una release: secciones, tono y qué cambios mencionar”). Es lo que el modelo lee para decidir si la abre.

    Modal Nueva skill con los campos Nombre y Descripción completos
    El nombre no se puede cambiar después; la descripción se edita en la cabecera de la skill.
  2. Se abre el editor de prompt.md con un título de una línea. Reemplazalo por las instrucciones y guardá con “Guardar” o ⌘S. El punto naranja al lado del nombre del archivo indica cambios sin guardar; si salís con cambios, Thulu te pide confirmar.

    Editor de prompt.md con instrucciones para redactar notas de versión
    prompt.md es lo que recibe el agente. Markdown plano, sin vista previa.
  3. En la vista de la skill, la sección “Usada por” dice qué agentes la conceden y en qué etapas. Mientras no la conceda nadie, dice “Ningún agente la concede todavía.” con el link “Concedela en Agentes”. Seguilo y elegí el agente en la lista de la izquierda. Si el agente todavía no tiene etapas, tildalas en “Etapas válidas” de la pestaña “Configuración”. Para crear el agente o entender las etapas, ver Agentes.

  4. Abrí la pestaña “Skills”. Hay un bloque por etapa válida con una casilla por cada skill del workspace. Tildá la skill en las etapas que la necesitan (“Copiar a las otras etapas” la repite en las demás) y hacé clic en “Guardar configuración”, en la barra de abajo.

    Pestaña Skills de un agente con dos skills tildadas en la etapa En curso y las skills del sistema debajo
    Arriba, las skills del workspace concedidas en la etapa. Abajo, las del sistema que Thulu suma por su cuenta.

La concesión rige desde la próxima corrida. Las corridas que ya están en marcha siguen con lo que tenían. “Configuración”, “Skills” y “MCP” comparten “Guardar configuración”, así que podés pasar entre esas tres pestañas sin guardar.

En la vista de una skill, escribí una ruta en el campo de arriba de la lista (por ejemplo references/ejemplo.md) y hacé clic en “Agregar archivo”. Se abre el editor vacío; escribí el contenido y guardá. Cada archivo tiene “Editar”, “Historial” y “Eliminar” (con confirmación); prompt.md y skill.yaml no se pueden eliminar sueltos porque son la skill: para eso está “Eliminar skill”. Un archivo eliminado queda en la lista como “Eliminado”, con su historial para restaurarlo.

Lista de archivos de la skill notas-de-version: prompt.md, references/ejemplo.md y skill.yaml
Los archivos de una skill del workspace, con su tamaño y sus acciones.

A la corrida le llegan todos los archivos de la skill. El modelo recibe prompt.md entero y el resto (lo de references/, plantillas, scripts/) como una lista de rutas: abre el que las instrucciones nombren. Para que lo use cuando corresponde, decí en prompt.md cuándo abrir cada archivo.

La cabecera de la skill tiene dos campos. “Descripción” es lo único que el modelo lee antes de decidir si abre la skill, hasta 1024 caracteres, con un contador al lado. “Entrega” elige entre “Cuando el modelo la necesite” (on_demand) y “Siempre en el prompt” (always). Usá “Siempre en el prompt” sólo para reglas que se rompen en silencio si el modelo no las lee: el texto entero va en cada corrida.

Las dos cosas también viven en skill.yaml, que se puede editar a mano con “Editar” en su fila:

Campo Qué hace
name El nombre de la skill. Se fija al crearla.
description Lo que el modelo lee antes de abrir la skill. Si lleva dos puntos, ponela entre comillas dobles.
type knowledge al crearla. Hoy no cambia cómo llega la skill.
enforcement on_demand (o vacío) o always, lo mismo que el campo “Entrega”.
requires Otras skills relacionadas. Se guarda pero no tiene efecto: conceder una skill no concede las que nombra.

Si el YAML queda mal formado, el guardado falla con “No se pudo guardar el archivo:” seguido del motivo, y el archivo sigue como estaba. Revisá comillas y sangrías.

Cada guardado queda en el historial del archivo. Hacé clic en “Historial” en la fila del archivo, elegí una versión de la lista para ver su contenido, hacé clic en “Restaurar esta versión” y confirmá. La versión más reciente no tiene el botón porque es la que el archivo ya tiene. La restauración también queda en el historial, así que se puede deshacer.

Historial de prompt.md con la versión Creado elegida, cuatro Editado encima y el botón Restaurar esta versión
Cada entrada muestra la acción, quién la hizo y cuándo.

Abrí la skill y hacé clic en “Eliminar skill”. El diálogo lista los agentes que la conceden y ofrece “Quitarla también de estos agentes”: si esas concesiones quedan, le pasan a esos agentes cualquier skill que se cree después con el mismo nombre. Confirmá con “Eliminar”. La skill deja de llegar a las corridas desde la próxima y pasa al grupo “Eliminadas”, donde “Restaurar skill” trae de vuelta todos sus archivos. Las concesiones que se quitaron al borrarla no vuelven.

Las skills del grupo “Thulu” le enseñan al agente a trabajar dentro de Thulu: dónde están los repos, cómo preguntar o pedir una aprobación, cómo levantar el sandbox. Enseñan Thulu, no el stack de tu equipo. Vienen dentro de la instalación con un número de versión y se actualizan con cada release. El prefijo octopus- está reservado: ninguna skill del workspace puede empezar así.

Nadie las concede. Cada corrida recibe las que aplican a su etapa: octopus-run llega siempre, octopus-token-optimizer llega cuando el agente tiene prendidas las “Lecturas grandes”, y el resto llega cuando la etapa tiene cableado el MCP que la skill indica en su etiqueta “MCP”.

Vista de la skill del sistema octopus-sandbox con las etiquetas Thulu, su versión y MCP argus-sandbox, y sus archivos con el botón Ver
Una skill del sistema se puede leer con Ver, pero no editar.
Skill Llega cuando la etapa tiene De qué se trata
octopus-run siempre, pegada al prompt Tipos de corrida, dónde están los repos y la carpeta de salida, quién hace commit y abre el PR, qué pasa con la tarea al terminar
octopus-task-workflow octopus-api Preguntar, pedir aprobación, comentarios, hilos, menciones y subtareas
octopus-refinement octopus-api Refinar una tarea para que otro la trabaje sin volver a preguntar
octopus-test-cases octopus-api Escribir y mantener los casos de prueba de una tarea
octopus-observability octopus-api Conectar la observabilidad de un proyecto y armar dashboards
octopus-browser-evidence argus-browser Grabar videos y capturas anotadas como evidencia
octopus-evidence-library argus-browser Grabar un caso de la biblioteca de Evidencia desde un chat
octopus-sandbox argus-sandbox Levantar un proyecto en el sandbox, el script de arranque y los límites
octopus-token-optimizer “Lecturas grandes” prendidas en el agente Mandar la lectura de archivos grandes al modelo que eligió el agente

En la pestaña “Skills” del agente, debajo de las skills del workspace, cada etapa tiene el bloque “Skills del sistema”. Cada casilla dice por qué llega: “Toda corrida”, “La incluye argus-sandbox” o, destildada y deshabilitada, “Necesita octopus-api en esta etapa” cuando la etapa no tiene ese MCP. Destildá la que no quieras y hacé clic en “Guardar configuración”. Vale sólo para ese agente en esa etapa.

Cuando cableás un MCP en la pestaña “MCP” y volvés a “Skills”, las skills de ese MCP pasan a estar activas.

Bloque Skills del sistema con octopus-run destildada, octopus-token-optimizer activa y el aviso de octopus-run apagada
Destildar octopus-run muestra un aviso: sin ella el agente no sabe dónde dejar su trabajo.

El modal “Nuevo agente” (botón “Nuevo agente” en “Agentes”) tiene “Skills por defecto”, con una casilla por cada skill del workspace. Se aplican a cada etapa que tildes en “Etapas” en el mismo modal; sin ninguna etapa tildada no se pueden elegir.

Modal Nuevo agente con etapas y dos skills tildadas en Skills por defecto
El selector de skills del alta de agente.

Si tildás “Clonar un agente existente”, el agente nuevo copia las etapas y skills del original, y las skills tildadas se suman a las que ya tenía en cada una de sus etapas.

Síntoma Causa y salida
“nombre de skill inválido: usá minúsculas, dígitos y guiones” El nombre tiene mayúsculas, espacios o acentos. Usá notas-de-version, no Notas de versión.
“ese nombre es de una skill del sistema; elegí otro (los que empiezan con octopus- están reservados)” El nombre empieza con octopus- o coincide con una skill del sistema.
“este workspace ya tiene una skill llamada …” Ya existe. Buscala con “Buscar skills” (también busca en la descripción).
La pestaña Skills del agente dice “Elegí al menos una etapa válida en la pestaña Configuración” El agente no tiene etapas guardadas. Tildalas en “Configuración” y guardá.
El agente no aplica la skill aunque está concedida Con Claude Code, el modelo decide si la abre según la descripción. Hacela concreta y con un “Usar cuando…”, o pasala a enforcement: always si tiene que valer siempre.
“No se pudo guardar el archivo: …” al editar skill.yaml El YAML no es válido. Lo más común: una descripción con dos puntos sin comillas. Para cambiar la descripción, usá el campo de la cabecera.
Una skill de otro workspace no aparece Cada workspace tiene su propia biblioteca. Ver Workspaces y equipo.