Las Habilidades de Agente extienden Claude con capacidades especializadas que Claude invoca autónomamente cuando es relevante. Las Habilidades se empaquetan como archivos SKILL.md que contienen instrucciones, descripciones y recursos de apoyo opcionales.
Para obtener información completa sobre Habilidades, incluidos beneficios, arquitectura y directrices de autoría, consulta la descripción general de Habilidades de Agente.
Cuando se utiliza el SDK del Agente Claude, las Habilidades son:
SKILL.md en directorios específicos (.claude/skills/)settingSources (TypeScript) o setting_sources (Python) para cargar Habilidades desde el sistema de archivos"Skill" a tu allowed_tools para habilitar HabilidadesA diferencia de los subagentes (que se pueden definir programáticamente), las Habilidades deben crearse como artefactos del sistema de archivos. El SDK no proporciona una API programática para registrar Habilidades.
Comportamiento predeterminado: Por defecto, el SDK no carga ninguna configuración del sistema de archivos. Para usar Habilidades, debes configurar explícitamente settingSources: ['user', 'project'] (TypeScript) o setting_sources=["user", "project"] (Python) en tus opciones.
Para usar Habilidades con el SDK, necesitas:
"Skill" en tu configuración de allowed_toolssettingSources/setting_sources para cargar Habilidades desde el sistema de archivosUna vez configurado, Claude descubre automáticamente Habilidades desde los directorios especificados e las invoca cuando son relevantes para la solicitud del usuario.
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions
async def main():
options = ClaudeAgentOptions(
cwd="/path/to/project", # Project with .claude/skills/
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Write", "Bash"] # Enable Skill tool
)
async for message in query(
prompt="Help me process this PDF document",
options=options
):
print(message)
asyncio.run(main())Las Habilidades se cargan desde directorios del sistema de archivos según tu configuración de settingSources/setting_sources:
.claude/skills/): Compartidas con tu equipo a través de git - cargadas cuando setting_sources incluye "project"~/.claude/skills/): Habilidades personales en todos los proyectos - cargadas cuando setting_sources incluye "user"Las Habilidades se definen como directorios que contienen un archivo SKILL.md con frontmatter YAML y contenido Markdown. El campo description determina cuándo Claude invoca tu Habilidad.
Estructura de directorio de ejemplo:
.claude/skills/processing-pdfs/
└── SKILL.mdPara obtener orientación completa sobre la creación de Habilidades, incluida la estructura de SKILL.md, Habilidades de múltiples archivos y ejemplos, consulta:
El campo frontmatter allowed-tools en SKILL.md solo se admite cuando se usa Claude Code CLI directamente. No se aplica cuando se usan Habilidades a través del SDK.
Cuando se usa el SDK, controla el acceso a herramientas a través de la opción principal allowedTools en tu configuración de consulta.
Para restringir herramientas para Habilidades en aplicaciones SDK, usa la opción allowedTools:
Se asume que las declaraciones de importación del primer ejemplo están en los siguientes fragmentos de código.
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Grep", "Glob"] # Restricted toolset
)
async for message in query(
prompt="Analyze the codebase structure",
options=options
):
print(message)Para ver qué Habilidades están disponibles en tu aplicación SDK, simplemente pregúntale a Claude:
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill"]
)
async for message in query(
prompt="What Skills are available?",
options=options
):
print(message)Claude listará las Habilidades disponibles según tu directorio de trabajo actual y plugins instalados.
Prueba Habilidades haciendo preguntas que coincidan con sus descripciones:
options = ClaudeAgentOptions(
cwd="/path/to/project",
setting_sources=["user", "project"], # Load Skills from filesystem
allowed_tools=["Skill", "Read", "Bash"]
)
async for message in query(
prompt="Extract text from invoice.pdf",
options=options
):
print(message)Claude invoca automáticamente la Habilidad relevante si la descripción coincide con tu solicitud.
Verifica la configuración de settingSources: Las Habilidades solo se cargan cuando configuras explícitamente settingSources/setting_sources. Este es el problema más común:
# Incorrecto - Las Habilidades no se cargarán
options = ClaudeAgentOptions(
allowed_tools=["Skill"]
)
# Correcto - Las Habilidades se cargarán
options = ClaudeAgentOptions(
setting_sources=["user", "project"], # Required to load Skills
allowed_tools=["Skill"]
)Para más detalles sobre settingSources/setting_sources, consulta la referencia del SDK de TypeScript o la referencia del SDK de Python.
Verifica el directorio de trabajo: El SDK carga Habilidades relativas a la opción cwd. Asegúrate de que apunte a un directorio que contenga .claude/skills/:
# Asegúrate de que tu cwd apunte al directorio que contiene .claude/skills/
options = ClaudeAgentOptions(
cwd="/path/to/project", # Must contain .claude/skills/
setting_sources=["user", "project"], # Required to load Skills
allowed_tools=["Skill"]
)Consulta la sección "Usando Habilidades con el SDK" anterior para el patrón completo.
Verifica la ubicación del sistema de archivos:
# Check project Skills
ls .claude/skills/*/SKILL.md
# Check personal Skills
ls ~/.claude/skills/*/SKILL.mdVerifica que la herramienta Skill esté habilitada: Confirma que "Skill" está en tu allowedTools.
Verifica la descripción: Asegúrate de que sea específica e incluya palabras clave relevantes. Consulta Mejores Prácticas de Habilidades de Agente para obtener orientación sobre cómo escribir descripciones efectivas.
Para la solución de problemas general de Habilidades (sintaxis YAML, depuración, etc.), consulta la sección de solución de problemas de Habilidades de Claude Code.