Agent Skills extienden Claude con capacidades especializadas que Claude invoca autónomamente cuando es relevante. Las Skills se empaquetan como archivos SKILL.md que contienen instrucciones, descripciones y recursos de apoyo opcionales.
Para obtener información completa sobre Skills, incluidos beneficios, arquitectura y directrices de autoría, consulta la descripción general de Agent Skills.
Cuando se utiliza el Claude Agent SDK, las Skills son:
SKILL.md en directorios específicos (.claude/skills/)settingSources (TypeScript) o setting_sources (Python) para cargar Skills desde el sistema de archivos"Skill" a tu allowed_tools para habilitar SkillsA diferencia de los subagentes (que se pueden definir programáticamente), las Skills deben crearse como artefactos del sistema de archivos. El SDK no proporciona una API programática para registrar Skills.
Comportamiento predeterminado: Por defecto, el SDK no carga ninguna configuración del sistema de archivos. Para usar Skills, debes configurar explícitamente settingSources: ['user', 'project'] (TypeScript) o setting_sources=["user", "project"] (Python) en tus opciones.
Para usar Skills con el SDK, necesitas:
"Skill" en tu configuración de allowed_toolssettingSources/setting_sources para cargar Skills desde el sistema de archivosUna vez configurado, Claude descubre automáticamente Skills desde los directorios especificados e los 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 Skills 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 - se cargan cuando setting_sources incluye "project"~/.claude/skills/): Skills personales en todos los proyectos - se cargan cuando setting_sources incluye "user"Las Skills 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 Skill.
Estructura de directorio de ejemplo:
.claude/skills/processing-pdfs/
└── SKILL.mdPara obtener orientación completa sobre la creación de Skills, incluida la estructura de SKILL.md, Skills de múltiples archivos y ejemplos, consulta:
El campo frontmatter allowed-tools en SKILL.md solo se admite cuando se utiliza Claude Code CLI directamente. No se aplica cuando se usan Skills a través del SDK.
Cuando se utiliza 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 Skills en aplicaciones SDK, utiliza la opción allowedTools:
Se asume que las declaraciones de importación del primer ejemplo están presentes 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é Skills 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 Skills disponibles según tu directorio de trabajo actual y complementos instalados.
Prueba Skills 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 Skill relevante si la descripción coincide con tu solicitud.
Verifica la configuración de settingSources: Las Skills solo se cargan cuando configuras explícitamente settingSources/setting_sources. Este es el problema más común:
# Wrong - Skills won't be loaded
options = ClaudeAgentOptions(
allowed_tools=["Skill"]
)
# Correct - Skills will be loaded
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 Skills en relación con la opción cwd. Asegúrate de que apunte a un directorio que contenga .claude/skills/:
# Ensure your cwd points to the directory containing .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 "Uso de Skills 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 Agent Skills Best Practices para obtener orientación sobre cómo escribir descripciones efectivas.
Para la solución general de problemas de Skills (sintaxis YAML, depuración, etc.), consulta la sección de solución de problemas de Claude Code Skills.
Was this page helpful?