Los prompts del sistema definen el comportamiento, capacidades y estilo de respuesta de Claude. El SDK del Agente Claude proporciona tres formas de personalizar los prompts del sistema: usando estilos de salida (configuraciones persistentes basadas en archivos), agregando al prompt de Claude Code, o usando un prompt completamente personalizado.
Un prompt del sistema es el conjunto de instrucciones inicial que moldea cómo se comporta Claude a lo largo de una conversación.
Comportamiento predeterminado: El SDK del Agente usa un prompt del sistema vacío por defecto para máxima flexibilidad. Para usar el prompt del sistema de Claude Code (instrucciones de herramientas, pautas de código, etc.), especifica systemPrompt: { preset: "claude_code" } en TypeScript o system_prompt="claude_code" en Python.
El prompt del sistema de Claude Code incluye:
Los archivos CLAUDE.md proporcionan contexto e instrucciones específicas del proyecto que son leídas automáticamente por el SDK del Agente cuando se ejecuta en un directorio. Sirven como "memoria" persistente para tu proyecto.
Ubicación y descubrimiento:
CLAUDE.md o .claude/CLAUDE.md en tu directorio de trabajo~/.claude/CLAUDE.md para instrucciones globales en todos los proyectosIMPORTANTE: El SDK solo lee archivos CLAUDE.md cuando configuras explícitamente settingSources (TypeScript) o setting_sources (Python):
'project' para cargar CLAUDE.md a nivel de proyecto'user' para cargar CLAUDE.md a nivel de usuario (~/.claude/CLAUDE.md)El preset del prompt del sistema claude_code NO carga automáticamente CLAUDE.md - también debes especificar fuentes de configuración.
Formato de contenido: Los archivos CLAUDE.md usan markdown plano y pueden contener:
# Pautas del Proyecto
## Estilo de Código
- Usar modo estricto de TypeScript
- Preferir componentes funcionales en React
- Incluir siempre comentarios JSDoc para APIs públicas
## Pruebas
- Ejecutar `npm test` antes de hacer commit
- Mantener >80% de cobertura de código
- Usar jest para pruebas unitarias, playwright para E2E
## Comandos
- Build: `npm run build`
- Servidor dev: `npm run dev`
- Verificación de tipos: `npm run typecheck`import { query } from "@anthropic-ai/claude-agent-sdk";
// IMPORTANTE: Debes especificar settingSources para cargar CLAUDE.md
// El preset claude_code solo NO carga archivos CLAUDE.md
const messages = [];
for await (const message of query({
prompt: "Agrega un nuevo componente React para perfiles de usuario",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code", // Usar el prompt del sistema de Claude Code
},
settingSources: ["project"], // Requerido para cargar CLAUDE.md del proyecto
},
})) {
messages.push(message);
}
// Ahora Claude tiene acceso a las pautas de tu proyecto desde CLAUDE.mdMejor para:
Características clave:
settingSourcesLos estilos de salida son configuraciones guardadas que modifican el prompt del sistema de Claude. Se almacenan como archivos markdown y pueden reutilizarse en sesiones y proyectos.
import { writeFile, mkdir } from "fs/promises";
import { join } from "path";
import { homedir } from "os";
async function createOutputStyle(
name: string,
description: string,
prompt: string
) {
// Nivel de usuario: ~/.claude/output-styles
// Nivel de proyecto: .claude/output-styles
const outputStylesDir = join(homedir(), ".claude", "output-styles");
await mkdir(outputStylesDir, { recursive: true });
const content = `---
name: ${name}
description: ${description}
---
${prompt}`;
const filePath = join(
outputStylesDir,
`${name.toLowerCase().replace(/\s+/g, "-")}.md`
);
await writeFile(filePath, content, "utf-8");
}
// Ejemplo: Crear un especialista en revisión de código
await createOutputStyle(
"Code Reviewer",
"Asistente exhaustivo de revisión de código",
`Eres un experto revisor de código.
Para cada envío de código:
1. Verificar bugs y problemas de seguridad
2. Evaluar rendimiento
3. Sugerir mejoras
4. Calificar calidad del código (1-10)`
);Una vez creados, activa los estilos de salida vía:
/output-style [nombre-estilo].claude/settings.local.json/output-style:new [descripción]Nota para usuarios del SDK: Los estilos de salida se cargan cuando incluyes settingSources: ['user'] o settingSources: ['project'] (TypeScript) / setting_sources=["user"] o setting_sources=["project"] (Python) en tus opciones.
systemPrompt con appendPuedes usar el preset de Claude Code con una propiedad append para agregar tus instrucciones personalizadas mientras preservas toda la funcionalidad incorporada.
import { query } from "@anthropic-ai/claude-agent-sdk";
const messages = [];
for await (const message of query({
prompt: "Ayúdame a escribir una función Python para calcular números fibonacci",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append:
"Incluye siempre docstrings detallados y type hints en el código Python.",
},
},
})) {
messages.push(message);
if (message.type === "assistant") {
console.log(message.message.content);
}
}Puedes proporcionar una cadena personalizada como systemPrompt para reemplazar completamente el predeterminado con tus propias instrucciones.
import { query } from "@anthropic-ai/claude-agent-sdk";
const customPrompt = `Eres un especialista en codificación Python.
Sigue estas pautas:
- Escribir código limpio y bien documentado
- Usar type hints para todas las funciones
- Incluir docstrings comprensivos
- Preferir patrones de programación funcional cuando sea apropiado
- Explicar siempre tus decisiones de código`;
const messages = [];
for await (const message of query({
prompt: "Crea un pipeline de procesamiento de datos",
options: {
systemPrompt: customPrompt,
},
})) {
messages.push(message);
if (message.type === "assistant") {
console.log(message.message.content);
}
}| Característica | CLAUDE.md | Estilos de Salida | systemPrompt con append | systemPrompt Personalizado |
|---|---|---|---|---|
| Persistencia | Archivo por proyecto | Guardado como archivos | Solo sesión | Solo sesión |
| Reutilización | Por proyecto | Entre proyectos | Duplicación de código | Duplicación de código |
| Gestión | En sistema de archivos | CLI + archivos | En código | En código |
| Herramientas predeterminadas | Preservadas | Preservadas | Preservadas | Perdidas (a menos que se incluyan) |
| Seguridad incorporada | Mantenida | Mantenida | Mantenida | Debe agregarse |
| Contexto del entorno | Automático | Automático | Automático | Debe proporcionarse |
| Nivel de personalización | Solo adiciones | Reemplazar predeterminado | Solo adiciones | Control completo |
| Control de versiones | Con proyecto | Sí | Con código | Con código |
| Alcance | Específico del proyecto | Usuario o proyecto | Sesión de código | Sesión de código |
Nota: "Con append" significa usar systemPrompt: { type: "preset", preset: "claude_code", append: "..." } en TypeScript o system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} en Python.
Mejor para:
Ejemplos:
npm run lint:fix antes de hacer commit"migrations/"Importante: Para cargar archivos CLAUDE.md, debes establecer explícitamente settingSources: ['project'] (TypeScript) o setting_sources=["project"] (Python). El preset del prompt del sistema claude_code NO carga automáticamente CLAUDE.md sin esta configuración.
Mejor para:
Ejemplos:
systemPrompt con appendMejor para:
systemPrompt personalizadoMejor para:
Puedes combinar estos métodos para máxima flexibilidad:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Asumiendo que el estilo de salida "Code Reviewer" está activo (vía /output-style)
// Agregar áreas de enfoque específicas de la sesión
const messages = [];
for await (const message of query({
prompt: "Revisa este módulo de autenticación",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append: `
Para esta revisión, prioriza:
- Cumplimiento OAuth 2.0
- Seguridad de almacenamiento de tokens
- Gestión de sesiones
`,
},
},
})) {
messages.push(message);
}