Prompts do sistema definem o comportamento, capacidades e estilo de resposta do Claude. O Claude Agent SDK fornece três maneiras de personalizar prompts do sistema: usando estilos de saída (configurações persistentes baseadas em arquivos), adicionando ao prompt do Claude Code, ou usando um prompt totalmente personalizado.
Um prompt do sistema é o conjunto inicial de instruções que molda como o Claude se comporta ao longo de uma conversa.
Comportamento padrão: O Agent SDK usa um prompt do sistema mínimo por padrão. Ele contém apenas instruções essenciais de ferramentas, mas omite as diretrizes de codificação do Claude Code, estilo de resposta e contexto do projeto. Para incluir o prompt completo do Claude Code, especifique systemPrompt: { preset: "claude_code" } em TypeScript ou system_prompt={"type": "preset", "preset": "claude_code"} em Python.
O prompt do sistema do Claude Code inclui:
Arquivos CLAUDE.md fornecem contexto e instruções específicas do projeto que são lidos automaticamente pelo Agent SDK quando ele é executado em um diretório. Eles servem como "memória" persistente para seu projeto.
Localização e descoberta:
CLAUDE.md ou .claude/CLAUDE.md no seu diretório de trabalho~/.claude/CLAUDE.md para instruções globais em todos os projetosIMPORTANTE: O SDK só lê arquivos CLAUDE.md quando você configura explicitamente settingSources (TypeScript) ou setting_sources (Python):
'project' para carregar CLAUDE.md em nível de projeto'user' para carregar CLAUDE.md em nível de usuário (~/.claude/CLAUDE.md)A predefinição de prompt do sistema claude_code NÃO carrega automaticamente CLAUDE.md - você também deve especificar fontes de configuração.
Formato de conteúdo: Arquivos CLAUDE.md usam markdown simples e podem conter:
# Diretrizes do Projeto
## Estilo de Código
- Use modo strict do TypeScript
- Prefira componentes funcionais em React
- Sempre inclua comentários JSDoc para APIs públicas
## Testes
- Execute `npm test` antes de fazer commit
- Mantenha >80% de cobertura de código
- Use jest para testes unitários, playwright para E2E
## Comandos
- Build: `npm run build`
- Dev server: `npm run dev`
- Type check: `npm run typecheck`import { query } from "@anthropic-ai/claude-agent-sdk";
// IMPORTANTE: Você deve especificar settingSources para carregar CLAUDE.md
// A predefinição claude_code sozinha NÃO carrega arquivos CLAUDE.md
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.mdMelhor para:
Características principais:
settingSourcesEstilos de saída são configurações salvas que modificam o prompt do sistema do Claude. Eles são armazenados como arquivos markdown e podem ser reutilizados em sessões e projetos.
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)`
);Uma vez criados, ative estilos de saída via:
/output-style [style-name].claude/settings.local.json/output-style:new [description]Nota para usuários do SDK: Estilos de saída são carregados quando você inclui settingSources: ['user'] ou settingSources: ['project'] (TypeScript) / setting_sources=["user"] ou setting_sources=["project"] (Python) em suas opções.
systemPrompt com appendVocê pode usar a predefinição do Claude Code com uma propriedade append para adicionar suas instruções personalizadas enquanto preserva toda a funcionalidade 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);
}
}Você pode fornecer uma string personalizada como systemPrompt para substituir completamente o padrão pelas suas próprias instruções.
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);
}
}| Recurso | CLAUDE.md | Estilos de Saída | systemPrompt com append | systemPrompt personalizado |
|---|---|---|---|---|
| Persistência | Arquivo por projeto | Salvo como arquivos | Apenas sessão | Apenas sessão |
| Reutilização | Por projeto | Entre projetos | Duplicação de código | Duplicação de código |
| Gerenciamento | No sistema de arquivos | CLI + arquivos | No código | No código |
| Ferramentas padrão | Preservadas | Preservadas | Preservadas | Perdidas (a menos que incluídas) |
| Segurança integrada | Mantida | Mantida | Mantida | Deve ser adicionada |
| Contexto do ambiente | Automático | Automático | Automático | Deve ser fornecido |
| Nível de personalização | Apenas adições | Substituir padrão | Apenas adições | Controle completo |
| Controle de versão | Com projeto | Sim | Com código | Com código |
| Escopo | Específico do projeto | Usuário ou projeto | Sessão de código | Sessão de código |
Nota: "Com append" significa usar systemPrompt: { type: "preset", preset: "claude_code", append: "..." } em TypeScript ou system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} em Python.
Melhor para:
Exemplos:
npm run lint:fix antes de fazer commit"migrations/"Importante: Para carregar arquivos CLAUDE.md, você deve definir explicitamente settingSources: ['project'] (TypeScript) ou setting_sources=["project"] (Python). A predefinição de prompt do sistema claude_code NÃO carrega automaticamente CLAUDE.md sem essa configuração.
Melhor para:
Exemplos:
systemPrompt com appendMelhor para:
systemPrompt personalizadoMelhor para:
Você pode combinar esses métodos para máxima flexibilidade:
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?