Construa agentes de IA personalizados com o Claude Code SDK
Instalar o SDK
@anthropic-ai/claude-code
do NPM:Definir sua chave de API
ANTHROPIC_API_KEY
:Criar seu primeiro agente
Executar o agente
@anthropic-ai/claude-code
do NPMclaude
. Use a flag --print
(ou -p
) para executar em modo não interativo e imprimir o resultado final:Flag | Descrição | Exemplo |
---|---|---|
--print , -p | Executar em modo não interativo | claude -p "consulta" |
--output-format | Especificar formato de saída (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Retomar uma conversa por ID de sessão | claude --resume abc123 |
--continue , -c | Continuar a conversa mais recente | claude --continue |
--verbose | Habilitar log detalhado | claude --verbose |
--append-system-prompt | Anexar ao prompt do sistema (apenas com --print ) | claude --append-system-prompt "Instrução personalizada" |
--allowedTools | Lista separada por espaços de ferramentas permitidas, ou string de lista separada por vírgulas de ferramentas permitidas | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separada por espaços de ferramentas negadas, ou string de lista separada por vírgulas de ferramentas negadas | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Carregar servidores MCP de um arquivo JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Ferramenta MCP para lidar com prompts de permissão (apenas com --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, conforme demonstrado no Início rápido.
CLAUDE_CODE_USE_BEDROCK=1
e configure as credenciais AWSCLAUDE_CODE_USE_VERTEX=1
e configure as credenciais Google Cloud--allowedTools
. Nomes de ferramentas MCP seguem o padrão mcp__<serverName>__<toolName>
onde:serverName
é a chave do seu arquivo de configuração MCPtoolName
é a ferramenta específica fornecida por esse servidormcp__<serverName>
), todas as ferramentas desse servidor serão permitidas.Padrões glob (por exemplo, mcp__go*
) não são suportados.--permission-prompt-tool
para passar uma ferramenta MCP que usaremos para verificar se o usuário concede ou não permissões ao modelo para invocar uma determinada ferramenta. Quando o modelo invoca uma ferramenta, acontece o seguinte:
--allowedTools
e --disallowedTools
passados para o SDK; se uma dessas permite ou nega a chamada da ferramenta, prosseguimos com a chamada da ferramenta--permission-prompt-tool
--permission-prompt-tool
recebe o nome da ferramenta e entrada, e deve retornar um payload JSON-stringified com o resultado. O payload deve ser um dos seguintes:
updatedInput
para dizer ao modelo que o prompt de permissão mutou sua entrada; caso contrário, defina updatedInput
para a entrada original, como no exemplo acima. Por exemplo, se a ferramenta mostra um diff de edição de arquivo para o usuário e permite que eles editem o diff manualmente, a ferramenta de prompt de permissão deve retornar essa edição atualizada.init
, seguida por uma lista de mensagens do usuário e assistente, seguida por uma mensagem final do sistema result
com estatísticas. Cada mensagem é emitida como um objeto JSON separado.
Message
e MessageParam
estão disponíveis nos SDKs Anthropic. Por exemplo, consulte os SDKs Anthropic TypeScript e Python.
stdin
onde cada mensagem representa uma rodada do usuário. Isso permite múltiplas rodadas de uma conversa sem relançar o binário claude
e permite fornecer orientação ao modelo enquanto ele está processando uma solicitação.
Cada mensagem é um objeto JSON ‘Mensagem do usuário’, seguindo o mesmo formato que o esquema de mensagem de saída. Mensagens são formatadas usando o formato jsonl onde cada linha de entrada é um objeto JSON completo. Entrada JSON de transmissão requer -p
e --output-format stream-json
.
Atualmente isso é limitado a mensagens de usuário apenas de texto.