Las indicaciones del sistema definen el comportamiento, las capacidades y el estilo de respuesta de Claude. El Claude Agent SDK proporciona tres formas de personalizar las indicaciones del sistema: usando estilos de salida (configuraciones persistentes basadas en archivos), añadiendo a la indicación de Claude Code, o usando una indicación completamente personalizada.
Una indicación del sistema es el conjunto inicial de instrucciones que forma cómo se comporta Claude durante toda una conversación.
Comportamiento predeterminado: El Agent SDK utiliza una indicación del sistema mínima por defecto. Contiene solo instrucciones esenciales de herramientas pero omite las directrices de codificación de Claude Code, el estilo de respuesta y el contexto del proyecto. Para incluir la indicación del sistema completa de Claude Code, especifica systemPrompt: { preset: "claude_code" } en TypeScript o system_prompt={"type": "preset", "preset": "claude_code"} en Python.
La indicación del sistema de Claude Code incluye:
Los archivos CLAUDE.md proporcionan contexto e instrucciones específicas del proyecto que son leídos automáticamente por el Agent SDK 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 de indicación 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:
# Project Guidelines
## Code Style
- Use TypeScript strict mode
- Prefer functional components in React
- Always include JSDoc comments for public APIs
## Testing
- Run `npm test` before committing
- Maintain >80% code coverage
- Use jest for unit tests, playwright for E2E
## Commands
- Build: `npm run build`
- Dev server: `npm run dev`
- Type check: `npm run typecheck`import { query } from "@anthropic-ai/claude-agent-sdk";
// IMPORTANT: You must specify settingSources to load CLAUDE.md
// The claude_code preset alone does NOT load CLAUDE.md files
const messages = [];
for await (const message of query({
prompt: "Add a new React component for user profiles",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code", // Use Claude Code's system prompt
},
settingSources: ["project"], // Required to load CLAUDE.md from project
},
})) {
messages.push(message);
}
// Now Claude has access to your project guidelines from CLAUDE.mdMejor para:
Características clave:
settingSourcesLos estilos de salida son configuraciones guardadas que modifican la indicación 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
) {
// User-level: ~/.claude/output-styles
// Project-level: .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");
}
// Example: Create a code review specialist
await createOutputStyle(
"Code Reviewer",
"Thorough code review assistant",
`You are an expert code reviewer.
For every code submission:
1. Check for bugs and security issues
2. Evaluate performance
3. Suggest improvements
4. Rate code quality (1-10)`
);Una vez creados, activa los estilos de salida a través de:
/output-style [style-name].claude/settings.local.json/output-style:new [description]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 añadir tus instrucciones personalizadas mientras preservas toda la funcionalidad integrada.
import { query } from "@anthropic-ai/claude-agent-sdk";
const messages = [];
for await (const message of query({
prompt: "Help me write a Python function to calculate fibonacci numbers",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append:
"Always include detailed docstrings and type hints in Python code.",
},
},
})) {
messages.push(message);
if (message.type === "assistant") {
console.log(message.message.content);
}
}Puedes proporcionar una cadena personalizada como systemPrompt para reemplazar completamente la predeterminada con tus propias instrucciones.
import { query } from "@anthropic-ai/claude-agent-sdk";
const customPrompt = `You are a Python coding specialist.
Follow these guidelines:
- Write clean, well-documented code
- Use type hints for all functions
- Include comprehensive docstrings
- Prefer functional programming patterns when appropriate
- Always explain your code choices`;
const messages = [];
for await (const message of query({
prompt: "Create a data processing pipeline",
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 el sistema de archivos | CLI + archivos | En código | En código |
| Herramientas predeterminadas | Preservadas | Preservadas | Preservadas | Perdidas (a menos que se incluyan) |
| Seguridad integrada | Mantenida | Mantenida | Mantenida | Debe añadirse |
| 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 versión | 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 confirmar"migrations/"Importante: Para cargar archivos CLAUDE.md, debes establecer explícitamente settingSources: ['project'] (TypeScript) o setting_sources=["project"] (Python). El preset de indicación 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";
// Assuming "Code Reviewer" output style is active (via /output-style)
// Add session-specific focus areas
const messages = [];
for await (const message of query({
prompt: "Review this authentication module",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append: `
For this review, prioritize:
- OAuth 2.0 compliance
- Token storage security
- Session management
`,
},
},
})) {
messages.push(message);
}Was this page helpful?