Entrar ou criar conta

Laboratório: Agente Claude executando comandos e gerando relatório automatizado via Claude Agent SDK Python

Você terá um agente Claude rodando localmente, capaz de executar comandos shell restritos e gerar um relatório em Markdown com os resultados. Tudo em cerca de 2 horas, usando apenas software livre e sua chave de API Anthropic.

IA e seus segredos: 30 operações que parecem impossíveis, em poucos passos
Ligado ao treinamento IA e seus segredos: 30 operações que parecem impossíveis, em poucos passos

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
5
Versões da documentação consultada
Python 3.10 ou superior · Claude Agent SDK Python a versão estável atual · pip a versão estável atual
Objetivo

Demonstrar, em ambiente controlado, como criar um agente Claude local com o Claude Agent SDK Python, restringindo comandos permitidos, executando tarefas reais no sistema e produzindo um relatório automatizado. O laboratório evidencia como orquestrar IA de ponta com segurança operacional, guardrails e rastreamento, pronto para integração em fluxos de trabalho empresariais.

Topologia

Um notebook ou VM local (10.0.2.15) executa o agente Claude via Agent SDK Python. O agente recebe instruções via prompt, executa comandos shell restritos localmente e grava um relatório em arquivo. Não há conexão externa além da API Claude (api.anthropic.com) via internet.


+-------------------+
|  VM/Notebook      |
|  (10.0.2.15)      |
|                   |
| [Claude Agent SDK]|
|        |          |
|     [Shell]       |
|        |          |
|   [Relatório.md]  |
+--------|----------+
         |
   Internet (API Claude)

Equipamentos e software

ItemRequisito, licença ou versão
Notebook ou VMCPU x86_64 dual-core, 4GB RAM, 10GB disco, acesso à internet
PythonPSF · 3.10 ou superior
Claude Agent SDK PythonApache-2.0 · a versão estável atual
pipMIT · a versão estável atual

Roteiro

  1. Preparar ambiente Python isolado

    Crie um ambiente virtual para evitar conflitos de dependências.

    python3 -m venv venv
    source venv/bin/activate

    O que você deve ver: Prompt do shell com (venv) indicando ambiente ativado.

  2. Instalar Claude Agent SDK Python

    Instale o SDK oficial para rodar agentes Claude localmente.

    pip install claude-agent-sdk-python

    O que você deve ver: Mensagem de sucesso da instalação do pacote.

  3. Configurar variável de ambiente da API Key

    Defina a chave de API da Anthropic como variável de ambiente para segurança.

    export ANTHROPIC_API_KEY='sua-chave-aqui'

    O que você deve ver: Nenhuma saída (variável definida).

  4. Criar arquivo de sistema do agente

    Crie o prompt de sistema versionado, restringindo comandos permitidos.

    cat > system_prompt.md <<EOF
    Você é um agente Claude rodando localmente. Só execute comandos shell da lista: ['ls', 'df', 'uptime', 'whoami']. Nunca execute outros comandos. Gere um relatório em Markdown com os resultados.
    EOF

    O que você deve ver: Arquivo system_prompt.md criado com o texto do prompt.

  5. Implementar script Python do agente

    Implemente o agente com hooks para restringir comandos e gerar relatório.

    cat > agente_claude.py <<EOF
    import os
    from claude_agent_sdk import ClaudeAgent, Tool, AgentContext
    
    ALLOWED_COMMANDS = ['ls', 'df', 'uptime', 'whoami']
    
    class SafeShellTool(Tool):
        name = 'safe_shell'
        description = 'Executa comandos shell restritos.'
        def run(self, ctx: AgentContext, command: str):
            cmd = command.strip().split()[0]
            if cmd not in ALLOWED_COMMANDS:
                return {'error': f'Comando {cmd} não permitido.'}
            try:
                output = os.popen(command).read()
                return {'output': output}
            except Exception as e:
                return {'error': str(e)}
    
    with open('system_prompt.md') as f:
        system_prompt = f.read()
    
    agent = ClaudeAgent(
        system_prompt=system_prompt,
        tools=[SafeShellTool()],
        tracing=True
    )
    
    def main():
        print('Iniciando agente. Envie comandos, fim com "sair".')
        relatorio = []
        while True:
            entrada = input('Comando shell permitido: ')
            if entrada.strip() == 'sair':
                break
            resposta = agent.act({'command': entrada})
            print('Resposta:', resposta)
            relatorio.append(f'### Comando: {entrada}\n{resposta}\n')
        with open('relatorio.md', 'w') as f:
            f.write('\n'.join(relatorio))
        print('Relatório salvo em relatorio.md')
    
    if __name__ == '__main__':
        main()
    EOF

    O que você deve ver: Arquivo agente_claude.py criado com o código do agente.

  6. Executar o agente Claude localmente

    Rode o script para iniciar o agente e interagir via terminal.

    python agente_claude.py

    O que você deve ver: Mensagem 'Iniciando agente...' e prompt para comandos shell.

  7. Executar comandos permitidos

    Teste comandos como 'ls', 'df', 'uptime', 'whoami' e veja as respostas.

    O que você deve ver: Saída dos comandos executados exibida e registrada.

  8. Testar comando não permitido

    Digite um comando fora da lista, por exemplo 'cat /etc/passwd', para validar o guardrail.

    O que você deve ver: Mensagem de erro: 'Comando cat não permitido.'

  9. Finalizar e gerar relatório

    Digite 'sair' para encerrar e gerar o arquivo relatorio.md.

    O que você deve ver: Arquivo relatorio.md criado com os comandos e respostas.

  10. Revisar o relatório gerado

    Abra relatorio.md e confira se os comandos e saídas estão documentados.

    cat relatorio.md

    O que você deve ver: Conteúdo em Markdown com cada comando e sua resposta.

  11. Verificar rastreamento do agente

    Confirme que o tracing do agente está ativo e logs são exibidos no terminal.

    O que você deve ver: Mensagens de tracing detalhando cada passo do agente.

  12. Limpar ambiente

    Desative o ambiente virtual e remova arquivos temporários.

    deactivate
    rm -rf venv agente_claude.py system_prompt.md relatorio.md

    O que você deve ver: Ambiente limpo e arquivos removidos.

Como saber que funcionou

TesteComandoCritério
Comando permitido executa corretamentelsSaída do comando exibida e registrada no relatório.
Comando não permitido é bloqueadocat /etc/passwdMensagem de erro clara e nenhuma execução do comando.
Arquivo relatorio.md contém comandos e respostascat relatorio.mdEntradas em Markdown para cada comando testado.
Tracing detalhado aparece no terminalLogs do agente mostrando cada decisão e execução.
Variável de ambiente da chave não aparece no relatóriogrep ANTHROPIC_API_KEY relatorio.mdNenhum resultado (segredo não exposto).

Troubleshooting

SintomaCausa provávelCorreção
Erro de autenticação na API ClaudeChave ANTHROPIC_API_KEY ausente ou inválidaDefina a variável corretamente antes de rodar o script.
Comando permitido não executaPermissão insuficiente no sistema operacionalRode o terminal como usuário com permissões básicas de shell.
Arquivo relatorio.md não é criadoScript encerrado abruptamente ou permissão de escrita insuficienteVerifique espaço em disco e permissões do diretório.
Saída do comando aparece vaziaComando não retorna saída no ambiente atualTeste outro comando permitido para validar o agente.

Segurança e hardening

  • Nunca inclua segredos (API Key) em arquivos de código ou relatório.
  • Restrinja comandos shell permitidos no prompt e no código.
  • Execute o laboratório em ambiente isolado, nunca em produção.
  • Revise permissões de arquivos gerados e apague-os ao final.
  • Não exponha a porta do agente para a rede externa.

Checklist final

Referências

  1. Claude Agent SDK Python · Code.claude (code.claude.com)
  2. Anthropic API Reference · Platform.claude (platform.claude.com)
Verificação editorial
Publicado
13/09/2026
Última revisão
14/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.