Volver a herramientas
DisponibleAgentes·

Agent Skills API

API para subir, gestionar y distribuir Skills personalizadas. Permite crear habilidades propias que extienden Claude y compartirlas con tu equipo o publicarlas para la comunidad.

Compatible con

Claude APIClaude Code CLI
skills-apiskillsagentesextensionesautomatización

Agent Skills API: crea y distribuye habilidades para Claude

La Skills API es el backend que permite gestionar programáticamente las Skills: subirlas, actualizarlas, asignarlas a workspaces y consultarlas desde la API de Mensajes.

Estructura de una Skill

mi-skill/
├── DESCRIPTION.md      # Descripción para que Claude sepa cuándo usarla
├── instructions.md     # Instrucciones detalladas de ejecución
├── scripts/
│   ├── main.py         # Script principal
│   └── helpers.py      # Utilidades
└── resources/
    └── plantilla.md    # Recursos de referencia

Subir una Skill vía API

import anthropic
import zipfile
import io

client = anthropic.Anthropic()

# Empaquetar la skill como ZIP
buffer = io.BytesIO()
with zipfile.ZipFile(buffer, 'w') as zf:
    zf.write('DESCRIPTION.md')
    zf.write('instructions.md')
    zf.write('scripts/main.py')

buffer.seek(0)

skill = client.skills.upload(
    name="mi-analizador-datos",
    file=("skill.zip", buffer, "application/zip"),
    description="Analiza datasets CSV y genera informes"
)

print(skill.id)  # skill_abc123

Usar la Skill en una conversación

response = client.messages.create(
    model="claude-opus-4-6-20260205",
    tools=[{"type": "skill", "skill_id": skill.id}],
    messages=[{"role": "user", "content": "Analiza estos datos de ventas"}]
)

Skills de Anthropic incluidas

# Skills oficiales disponibles sin subida
ANTHROPIC_SKILLS = [
    "anthropic:pdf",
    "anthropic:excel",
    "anthropic:word",
    "anthropic:powerpoint",
    "anthropic:commit",
    "anthropic:review-pr",
    "anthropic:schedule",
    "anthropic:loop",
]

Gestión de Skills

# Listar todas las skills del workspace
skills = client.skills.list()

# Actualizar una skill
client.skills.update(skill.id, file=nuevo_zip)

# Eliminar
client.skills.delete(skill.id)