Inicio rápido
Crea documentos con Claude Agent Skills usando la API.
Aprende a usar Agent Skills para crear documentos con Claude API en menos de 10 minutos.
Este tutorial muestra cómo usar Agent Skills para crear una presentación de PowerPoint. Aprenderás a habilitar Skills, hacer una solicitud sencilla y acceder al archivo generado.
Requisitos previos
- Clave de Anthropic API
- Python 3.7+ o curl instalado
- Familiaridad básica con solicitudes API
Qué son Agent Skills
Las Agent Skills prediseñadas amplían las capacidades de Claude con experiencia especializada para tareas como crear documentos, analizar datos y procesar archivos. Anthropic proporciona estas Agent Skills prediseñadas en la API:
- PowerPoint (pptx): crear y editar presentaciones
- Excel (xlsx): crear y analizar hojas de cálculo
- Word (docx): crear y editar documentos
- PDF (pdf): generar documentos PDF
Note
¿Quieres crear Skills personalizadas? Consulta el Agent Skills Cookbook para ver ejemplos de cómo crear tus propias Skills con experiencia de dominio específica.
Paso 1: Listar Skills disponibles
Primero veamos qué Skills están disponibles. Usaremos la Skills API para listar todas las Skills gestionadas por Anthropic:
import anthropic
client = anthropic.Anthropic()
# Listar Skills gestionadas por Anthropic
skills = client.beta.skills.list(
source="anthropic",
betas=["skills-2025-10-02"]
)
for skill in skills.data:
print(f"{skill.id}: {skill.display_title}")import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
// Listar Skills gestionadas por Anthropic
const skills = await client.beta.skills.list({
source: 'anthropic',
betas: ['skills-2025-10-02']
});
for (const skill of skills.data) {
console.log(`${skill.id}: ${skill.display_title}`);
}curl "https://api.anthropic.com/v1/skills?source=anthropic" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: skills-2025-10-02"Verás estas Skills: pptx, xlsx, docx y pdf.
Esta API devuelve los metadatos de cada Skill: su nombre y descripción. Claude carga estos metadatos al inicio para saber qué Skills están disponibles. Este es el primer nivel de divulgación progresiva, donde Claude descubre Skills sin cargar todavía sus instrucciones completas.
Paso 2: Crear una presentación
Ahora usaremos la Skill de PowerPoint para crear una presentación sobre energía renovable. Especificamos Skills con el parámetro container en la Messages API:
import anthropic
client = anthropic.Anthropic()
# Crear un mensaje con la Skill de PowerPoint
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "pptx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Crea una presentación sobre energía renovable con 5 diapositivas"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)
print(response.content)import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
// Crear un mensaje con la Skill de PowerPoint
const response = await client.beta.messages.create({
model: 'claude-sonnet-4-5-20250929',
max_tokens: 4096,
betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
container: {
skills: [
{
type: 'anthropic',
skill_id: 'pptx',
version: 'latest'
}
]
},
messages: [{
role: 'user',
content: 'Crea una presentación sobre energía renovable con 5 diapositivas'
}],
tools: [{
type: 'code_execution_20250825',
name: 'code_execution'
}]
});
console.log(response.content);curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: code-execution-2025-08-25,skills-2025-10-02" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 4096,
"container": {
"skills": [
{
"type": "anthropic",
"skill_id": "pptx",
"version": "latest"
}
]
},
"messages": [{
"role": "user",
"content": "Crea una presentación sobre energía renovable con 5 diapositivas"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Veamos qué hace cada parte:
container.skills: especifica qué Skills puede usar Claudetype: "anthropic": indica que es una Skill gestionada por Anthropicskill_id: "pptx": identificador de la Skill de PowerPointversion: "latest": usa la versión publicada más recientementetools: habilita la ejecución de código, necesaria para Skills- Beta headers:
code-execution-2025-08-25yskills-2025-10-02
Cuando haces esta solicitud, Claude empareja automáticamente tu tarea con la Skill relevante. Como pediste una presentación, Claude determina que la Skill de PowerPoint es relevante y carga sus instrucciones completas: el segundo nivel de divulgación progresiva. Luego Claude ejecuta el código de la Skill para crear tu presentación.
Paso 3: Descargar el archivo creado
La presentación se creó en el contenedor de ejecución de código y se guardó como archivo. La respuesta incluye una referencia de archivo con un ID de archivo. Extrae el ID y descárgalo con la Files API:
# Extraer el ID de archivo de la respuesta
file_id = None
for block in response.content:
if block.type == 'tool_use' and block.name == 'code_execution':
# El ID de archivo está en el resultado de la herramienta
for result_block in block.content:
if hasattr(result_block, 'file_id'):
file_id = result_block.file_id
break
if file_id:
# Descargar el archivo
file_content = client.beta.files.download(
file_id=file_id,
betas=["files-api-2025-04-14"]
)
# Guardar en disco
with open("renewable_energy.pptx", "wb") as f:
file_content.write_to_file(f.name)
print(f"Presentación guardada en renewable_energy.pptx")// Extraer el ID de archivo de la respuesta
let fileId: string | null = null;
for (const block of response.content) {
if (block.type === 'tool_use' && block.name === 'code_execution') {
// El ID de archivo está en el resultado de la herramienta
for (const resultBlock of block.content) {
if ('file_id' in resultBlock) {
fileId = resultBlock.file_id;
break;
}
}
}
}
if (fileId) {
// Descargar el archivo
const fileContent = await client.beta.files.download(fileId, {
betas: ['files-api-2025-04-14']
});
// Guardar en disco
const fs = require('fs');
fs.writeFileSync('renewable_energy.pptx', Buffer.from(await fileContent.arrayBuffer()));
console.log('Presentación guardada en renewable_energy.pptx');
}# Extraer file_id de la respuesta (usando jq)
FILE_ID=$(echo "$RESPONSE" | jq -r '.content[] | select(.type=="tool_use" and .name=="code_execution") | .content[] | select(.file_id) | .file_id')
# Descargar el archivo
curl "https://api.anthropic.com/v1/files/$FILE_ID/content" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
--output renewable_energy.pptx
echo "Presentación guardada en renewable_energy.pptx"Note
Para detalles completos sobre archivos generados, consulta la documentación de la herramienta de ejecución de código.
Probar más ejemplos
Ahora que has creado tu primer documento con Skills, prueba estas variaciones:
Crear una hoja de cálculo
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "xlsx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Crea una hoja de cálculo de seguimiento de ventas trimestrales con datos de ejemplo"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)const response = await client.beta.messages.create({
model: 'claude-sonnet-4-5-20250929',
max_tokens: 4096,
betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
container: {
skills: [
{
type: 'anthropic',
skill_id: 'xlsx',
version: 'latest'
}
]
},
messages: [{
role: 'user',
content: 'Crea una hoja de cálculo de seguimiento de ventas trimestrales con datos de ejemplo'
}],
tools: [{
type: 'code_execution_20250825',
name: 'code_execution'
}]
});curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: code-execution-2025-08-25,skills-2025-10-02" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 4096,
"container": {
"skills": [
{
"type": "anthropic",
"skill_id": "xlsx",
"version": "latest"
}
]
},
"messages": [{
"role": "user",
"content": "Crea una hoja de cálculo de seguimiento de ventas trimestrales con datos de ejemplo"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Crear un documento de Word
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "docx",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Escribe un informe de 2 páginas sobre los beneficios de la energía renovable"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)const response = await client.beta.messages.create({
model: 'claude-sonnet-4-5-20250929',
max_tokens: 4096,
betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
container: {
skills: [
{
type: 'anthropic',
skill_id: 'docx',
version: 'latest'
}
]
},
messages: [{
role: 'user',
content: 'Escribe un informe de 2 páginas sobre los beneficios de la energía renovable'
}],
tools: [{
type: 'code_execution_20250825',
name: 'code_execution'
}]
});curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: code-execution-2025-08-25,skills-2025-10-02" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 4096,
"container": {
"skills": [
{
"type": "anthropic",
"skill_id": "docx",
"version": "latest"
}
]
},
"messages": [{
"role": "user",
"content": "Escribe un informe de 2 páginas sobre los beneficios de la energía renovable"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Generar un PDF
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"],
container={
"skills": [
{
"type": "anthropic",
"skill_id": "pdf",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Genera una plantilla de factura en PDF"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)const response = await client.beta.messages.create({
model: 'claude-sonnet-4-5-20250929',
max_tokens: 4096,
betas: ['code-execution-2025-08-25', 'skills-2025-10-02'],
container: {
skills: [
{
type: 'anthropic',
skill_id: 'pdf',
version: 'latest'
}
]
},
messages: [{
role: 'user',
content: 'Genera una plantilla de factura en PDF'
}],
tools: [{
type: 'code_execution_20250825',
name: 'code_execution'
}]
});curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: code-execution-2025-08-25,skills-2025-10-02" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-5-20250929",
"max_tokens": 4096,
"container": {
"skills": [
{
"type": "anthropic",
"skill_id": "pdf",
"version": "latest"
}
]
},
"messages": [{
"role": "user",
"content": "Genera una plantilla de factura en PDF"
}],
"tools": [{
"type": "code_execution_20250825",
"name": "code_execution"
}]
}'Siguientes pasos
Ahora que has usado Agent Skills prediseñadas, puedes:
Guía de API
Usar Skills con Claude API
Crear Skills personalizadas
Subir tus propias Skills para tareas especializadas
Guía de autoría
Aprender buenas prácticas para escribir Skills eficaces
Usar Skills en Claude Code
Aprender sobre Skills en Claude Code
Agent Skills Cookbook
Explorar Skills de ejemplo y patrones de implementación
claudeskills Docs