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.

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.
- 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
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
| Item | Requisito, licença ou versão |
|---|---|
| Notebook ou VM | CPU x86_64 dual-core, 4GB RAM, 10GB disco, acesso à internet |
| Python | PSF · 3.10 ou superior |
| Claude Agent SDK Python | Apache-2.0 · a versão estável atual |
| pip | MIT · a versão estável atual |
Roteiro
- Preparar ambiente Python isolado
Crie um ambiente virtual para evitar conflitos de dependências.
python3 -m venv venv source venv/bin/activateO que você deve ver: Prompt do shell com (venv) indicando ambiente ativado.
- Instalar Claude Agent SDK Python
Instale o SDK oficial para rodar agentes Claude localmente.
pip install claude-agent-sdk-pythonO que você deve ver: Mensagem de sucesso da instalação do pacote.
- 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).
- 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. EOFO que você deve ver: Arquivo system_prompt.md criado com o texto do prompt.
- 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() EOFO que você deve ver: Arquivo agente_claude.py criado com o código do agente.
- Executar o agente Claude localmente
Rode o script para iniciar o agente e interagir via terminal.
python agente_claude.pyO que você deve ver: Mensagem 'Iniciando agente...' e prompt para comandos shell.
- 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.
- 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.'
- 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.
- Revisar o relatório gerado
Abra relatorio.md e confira se os comandos e saídas estão documentados.
cat relatorio.mdO que você deve ver: Conteúdo em Markdown com cada comando e sua resposta.
- 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.
- Limpar ambiente
Desative o ambiente virtual e remova arquivos temporários.
deactivate rm -rf venv agente_claude.py system_prompt.md relatorio.mdO que você deve ver: Ambiente limpo e arquivos removidos.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Comando permitido executa corretamente | ls | Saída do comando exibida e registrada no relatório. |
| Comando não permitido é bloqueado | cat /etc/passwd | Mensagem de erro clara e nenhuma execução do comando. |
| Arquivo relatorio.md contém comandos e respostas | cat relatorio.md | Entradas em Markdown para cada comando testado. |
| Tracing detalhado aparece no terminal | Logs do agente mostrando cada decisão e execução. | |
| Variável de ambiente da chave não aparece no relatório | grep ANTHROPIC_API_KEY relatorio.md | Nenhum resultado (segredo não exposto). |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| Erro de autenticação na API Claude | Chave ANTHROPIC_API_KEY ausente ou inválida | Defina a variável corretamente antes de rodar o script. |
| Comando permitido não executa | Permissão insuficiente no sistema operacional | Rode o terminal como usuário com permissões básicas de shell. |
| Arquivo relatorio.md não é criado | Script encerrado abruptamente ou permissão de escrita insuficiente | Verifique espaço em disco e permissões do diretório. |
| Saída do comando aparece vazia | Comando não retorna saída no ambiente atual | Teste 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
- Claude Agent SDK Python · Code.claude (code.claude.com)
- Anthropic API Reference · Platform.claude (platform.claude.com)
- 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
