Was this page helpful?
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`Mejor 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.
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.
Puedes proporcionar una cadena personalizada como systemPrompt para reemplazar completamente la predeterminada con tus propias instrucciones.
| 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) |
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";
// 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.mdimport { 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)`
);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);
}
}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);
}
}| 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 |
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);
}