Laboratório: Agente Claude para Revisão de Contratos com Ferramentas Customizadas e Avaliação Automática
Você terá um agente Claude rodando localmente via Claude Agent SDK em Python, capaz de revisar contratos fictícios, identificar cláusulas de risco e registrar logs de operação. O laboratório leva cerca de 2 horas.

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
- 4
- 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, de ponta a ponta, como implementar um agente jurídico para revisão de contratos usando Claude Agent SDK em Python, com prompt de sistema versionado, ferramenta customizada para análise de cláusulas, avaliação automatizada por casos de teste e registro de execução. O agente prepara um relatório, que deve ser revisado por um responsável antes de qualquer decisão legal.
Topologia
O agente Claude roda em um servidor local (192.168.56.10), acessando arquivos de contratos em uma pasta compartilhada. O agente usa o Claude Agent SDK para processar os contratos e salvar relatórios em outra pasta local. O operador interage via terminal SSH. Não há conexão externa obrigatória para a execução do agente, exceto para baixar dependências.
+-------------------+
| Operador (SSH) |
+--------+----------+
|
v
+--------+----------+
| VM/Servidor Local |
| IP: 192.168.56.10 |
+--------+----------+
|
v
+-------------------+
| Claude Agent SDK |
| Contratos: /dados |
| Relatórios: /out |
+-------------------+
Equipamentos e software
| Item | Requisito, licença ou versão |
|---|---|
| VM Linux (Ubuntu 22.04 ou superior) | 2 vCPU, 4 GB RAM, 10 GB disco, acesso à internet para instalar pacotes |
| 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 o ambiente Python
Garanta um ambiente limpo para evitar conflitos de dependências.
sudo apt update && sudo apt install -y python3 python3-venv python3-pip python3 -m venv venv source venv/bin/activateO que você deve ver: Prompt alterado para indicar ambiente virtual ativo.
- Instalar o Claude Agent SDK
O SDK oficial é necessário para criar e rodar o agente localmente.
pip install claude-agent-sdkO que você deve ver: Mensagem de instalação bem-sucedida do pacote claude-agent-sdk.
- Criar diretórios de trabalho
Organize os arquivos de contratos e relatórios para facilitar o acesso e versionamento.
mkdir -p ~/contratos_lab/dados ~/contratos_lab/outO que você deve ver: Pastas ~/contratos_lab/dados e ~/contratos_lab/out criadas.
- Adicionar contratos fictícios para teste
Inclua contratos de EXEMPLO para o agente analisar.
echo 'CONTRATO DE PRESTAÇÃO DE SERVIÇOS Cláusula 1: O contratado deverá... Cláusula 2: O contratante poderá rescindir sem aviso prévio...' > ~/contratos_lab/dados/contrato1.txtO que você deve ver: Arquivo contrato1.txt criado em ~/contratos_lab/dados.
- Definir prompt de sistema versionado
O prompt orienta o agente sobre o objetivo e limitações da tarefa.
cat <<EOF > ~/contratos_lab/prompt_v1.txt Você é um agente jurídico especializado em revisão de contratos. Seu objetivo é identificar cláusulas de risco, inconsistências e pontos que exigem atenção do advogado responsável. Não tome decisões legais. Liste as cláusulas de risco e explique o motivo. Use linguagem clara e objetiva. Versão do prompt: v1. EOFO que você deve ver: Arquivo prompt_v1.txt salvo com o texto do sistema.
- Implementar ferramenta customizada de análise de cláusulas
Ferramentas customizadas permitem que o agente execute funções específicas, como identificar padrões de risco.
cat <<EOF > ~/contratos_lab/analisador.py import re def analisar_clausulas(texto): riscos = [] padroes = [r'rescindir sem aviso prévio', r'indenização ilimitada'] for padrao in padroes: if re.search(padrao, texto, re.IGNORECASE): riscos.append(padrao) return riscos EOFO que você deve ver: Arquivo analisador.py criado com função de identificação de padrões de risco.
- Integrar ferramenta ao agente Claude
O SDK permite registrar funções Python como ferramentas acessíveis ao agente.
cat <<EOF > ~/contratos_lab/agente_lab.py from claude_agent_sdk import Agent, Tool from analisador import analisar_clausulas with open('prompt_v1.txt') as f: prompt = f.read() def ferramenta_analisar(texto: str): riscos = analisar_clausulas(texto) return {'riscos': riscos} analisar_tool = Tool( name='analisar_clausulas', description='Identifica cláusulas de risco em contratos', parameters={'texto': str}, func=ferramenta_analisar ) agent = Agent( name='AgenteRevisor', instructions=prompt, tools=[analisar_tool] ) if __name__ == '__main__': with open('dados/contrato1.txt') as f: contrato = f.read() resultado = agent.run_sync({'texto': contrato}) with open('out/relatorio1.txt', 'w') as f: f.write(str(resultado)) EOFO que você deve ver: Arquivo agente_lab.py criado com integração do prompt e ferramenta customizada.
- Executar o agente e gerar relatório
Rode o agente para processar o contrato de teste e salvar o relatório.
cd ~/contratos_lab python agente_lab.pyO que você deve ver: Arquivo out/relatorio1.txt criado com os riscos identificados.
- Criar casos de teste e avaliação automática
Teste automatizado garante que o agente identifica corretamente cláusulas de risco.
cat <<EOF > ~/contratos_lab/teste_agente.py from agente_lab import ferramenta_analisar def test_risco_rescisao(): texto = 'O contratante poderá rescindir sem aviso prévio.' resultado = ferramenta_analisar(texto) assert 'rescindir sem aviso prévio' in resultado['riscos'] def test_sem_risco(): texto = 'Cláusula padrão.' resultado = ferramenta_analisar(texto) assert resultado['riscos'] == [] if __name__ == '__main__': test_risco_rescisao() test_sem_risco() print('Todos os testes passaram.') EOFO que você deve ver: Arquivo teste_agente.py criado com dois testes automatizados.
- Rodar avaliação automática
Execute os testes para validar o comportamento da ferramenta.
python teste_agente.pyO que você deve ver: Mensagem 'Todos os testes passaram.' exibida.
- Registrar logs de execução
O registro é essencial para auditoria e revisão humana.
cat <<EOF > ~/contratos_lab/logger.py import datetime def registrar_log(acao, detalhes): with open('out/log_execucao.txt', 'a') as f: f.write(f"{datetime.datetime.now()} | {acao} | {detalhes}\n") EOFO que você deve ver: Arquivo logger.py criado para registrar logs.
- Adicionar logging ao agente
Inclua o registro de cada execução no fluxo principal.
cat <<EOF >> ~/contratos_lab/agente_lab.py from logger import registrar_log # ... if __name__ == '__main__': with open('dados/contrato1.txt') as f: contrato = f.read() resultado = agent.run_sync({'texto': contrato}) with open('out/relatorio1.txt', 'w') as f: f.write(str(resultado)) registrar_log('analise_contrato', f'contrato1.txt: {resultado}') EOFO que você deve ver: Código do agente atualizado para registrar logs de execução.
Como saber que funcionou
| Teste | Comando | Critério |
|---|---|---|
| Verificar se o relatório foi gerado | cat ~/contratos_lab/out/relatorio1.txt | Relatório contém as cláusulas de risco identificadas. |
| Checar se os logs de execução foram salvos | cat ~/contratos_lab/out/log_execucao.txt | Arquivo contém registro da análise com data, ação e detalhes. |
| Rodar avaliação automática dos testes | python ~/contratos_lab/teste_agente.py | Mensagem 'Todos os testes passaram.' exibida. |
| Modificar o contrato e reexecutar | echo 'Cláusula 3: Indenização ilimitada.' >> ~/contratos_lab/dados/contrato1.txt
python ~/contratos_lab/agente_lab.py
cat ~/contratos_lab/out/relatorio1.txt | Relatório atualizado inclui 'indenização ilimitada' como risco. |
Troubleshooting
| Sintoma | Causa provável | Correção |
|---|---|---|
| ImportError ao rodar agente_lab.py | Ambiente virtual não ativado ou dependência não instalada. | Execute 'source venv/bin/activate' e 'pip install claude-agent-sdk'. |
| Arquivo de relatório não criado | Erro de caminho ou permissão nas pastas. | Verifique se ~/contratos_lab/out existe e tem permissão de escrita. |
| Testes automatizados falham | Função de análise não reconhece o padrão de risco. | Confirme se o texto do teste corresponde ao padrão esperado na função. |
| Logs não aparecem | Arquivo logger.py não importado corretamente. | Confirme se o import está correto e se logger.py está no mesmo diretório. |
Segurança e hardening
- Nunca inclua dados pessoais reais nos contratos de teste.
- Armazene segredos (como chaves de API) apenas em variáveis de ambiente, nunca em arquivos de código.
- Restrinja permissões das pastas ~/contratos_lab/dados e ~/contratos_lab/out para o usuário do laboratório.
- Revise periodicamente os logs para identificar acessos indevidos.
- Desative o ambiente virtual ao finalizar para evitar uso indevido.
Checklist final
Referências
- Claude Agent SDK Documentation · Code.claude (code.claude.com)
- Python Official Documentation · Python Software Foundation (docs.python.org)
- Publicado
- 13/09/2026
- Última revisão
- 13/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
