read_file
A ferramenta read_file
examina o conteúdo dos arquivos em um projeto. Ela permite que o AI Cockpit Reasoning entenda o código, os arquivos de configuração e a documentação para fornecer uma assistência melhor.
Parâmetros
A ferramenta aceita estes parâmetros:
path
(obrigatório): O caminho do arquivo a ser lido em relação ao diretório de trabalho atualstart_line
(opcional): O número da linha inicial para ler (indexação baseada em 1)end_line
(opcional): O número da linha final para ler (baseado em 1, inclusivo)auto_truncate
(opcional): Se deve truncar automaticamente arquivos grandes quando o intervalo de linhas não é especificado (verdadeiro/falso)
O Que Faz
Esta ferramenta lê o conteúdo de um arquivo especificado e o retorna com números de linha para fácil referência. Ela pode ler arquivos inteiros ou seções específicas, e até mesmo extrair texto de PDFs e documentos do Word.
Quando é usada?
- Quando o AI Cockpit Reasoning precisa entender a estrutura do código existente
- Quando o AI Cockpit Reasoning precisa analisar arquivos de configuração
- Quando o AI Cockpit Reasoning precisa extrair informações de arquivos de texto
- Quando o AI Cockpit Reasoning precisa ver o código antes de sugerir alterações
- Quando números de linha específicos precisam ser referenciados em discussões
Principais Características
- Exibe o conteúdo do arquivo com números de linha para fácil referência
- Pode ler porções específicas de arquivos especificando intervalos de linhas
- Extrai texto legível de arquivos PDF e DOCX
- Trunca inteligentemente arquivos grandes para focar nas seções mais relevantes
- Fornece resumos de métodos com intervalos de linhas para arquivos de código grandes
- Transmite eficientemente apenas os intervalos de linhas solicitados para melhor desempenho
- Facilita a discussão de partes específicas do código com numeração de linhas
Limitações
- Pode não lidar eficientemente com arquivos extremamente grandes sem usar parâmetros de intervalo de linhas
- Para arquivos binários (exceto PDF e DOCX), pode retornar conteúdo que não é legível por humanos
Como Funciona
Quando a ferramenta read_file
é invocada, ela segue este processo:
- Validação de Parâmetros: Valida o parâmetro obrigatório
path
e os parâmetros opcionais - Resolução de Caminho: Resolve o caminho relativo para um caminho absoluto
- Seleção da Estratégia de Leitura:
- A ferramenta usa uma hierarquia de prioridade estrita (explicada em detalhes abaixo)
- Ela escolhe entre leitura de intervalo, truncamento automático ou leitura de arquivo completo
- Processamento de Conteúdo:
- Adiciona números de linha ao conteúdo (por exemplo, "1 | const x = 13") onde
1 |
é o número da linha. - Para arquivos truncados, adiciona um aviso de truncamento e definições de método
- Para formatos especiais (PDF, DOCX, IPYNB), extrai texto legível
- Adiciona números de linha ao conteúdo (por exemplo, "1 | const x = 13") onde
Prioridade da Estratégia de Leitura
A ferramenta usa uma hierarquia de decisão clara para determinar como ler um arquivo:
-
Primeira Prioridade: Intervalo de Linha Explícito
- Se
start_line
ouend_line
for fornecido, a ferramenta sempre realiza uma leitura de intervalo - A implementação transmite eficientemente apenas as linhas solicitadas, tornando-a adequada para o processamento de arquivos grandes
- Isso tem precedência sobre todas as outras opções
- Se
-
Segunda Prioridade: Truncamento Automático para Arquivos Grandes
- Isso só se aplica quando TODAS estas condições são atendidas:
- Nem
start_line
nemend_line
são especificados - O parâmetro
auto_truncate
está definido comotrue
- O arquivo não é um arquivo binário
- O arquivo excede o limite de linha configurado (normalmente 500-1000 linhas)
- Nem
- Quando o truncamento automático é ativado, a ferramenta:
- Lê apenas a primeira parte do arquivo (determinada pela configuração maxReadFileLine)
- Adiciona um aviso de truncamento mostrando o número de linhas exibidas vs. o total
- Fornece um resumo das definições de método com seus intervalos de linhas
- Isso só se aplica quando TODAS estas condições são atendidas:
-
Comportamento Padrão: Ler o Arquivo Inteiro
- Se nenhuma das condições acima for atendida, ele lê o conteúdo do arquivo inteiro
- Para formatos especiais como PDF, DOCX e IPYNB, ele usa extratores especializados
Exemplos de Quando Usado
- Quando solicitado a explicar ou melhorar o código, o AI Cockpit Reasoning primeiro lê os arquivos relevantes para entender a implementação atual.
- Ao solucionar problemas de configuração, o AI Cockpit Reasoning lê os arquivos de configuração para identificar possíveis problemas.
- Ao trabalhar com documentação, o AI Cockpit Reasoning lê os documentos existentes para entender o conteúdo atual antes de sugerir melhorias.
Exemplos de Uso
Aqui estão vários cenários demonstrando como a ferramenta read_file
é usada e a saída típica que você pode receber.
Lendo um Arquivo Inteiro
Para ler o conteúdo completo de um arquivo:
Entrada:
<read_file>
<path>src/app.js</path>
</read_file>
Saída Simulada (para um arquivo pequeno como example_small.txt
):
1 | Esta é a primeira linha.
2 | Esta é a segunda linha.
3 | Esta é a terceira linha.
(A saída irá variar com base no conteúdo real do arquivo)
Lendo Linhas Específicas
Para ler apenas um intervalo específico de linhas (por exemplo, 46-68):
Entrada:
<read_file>
<path>src/app.js</path>
<start_line>46</start_line>
<end_line>68</end_line>
</read_file>
Saída Simulada (para as linhas 2-3 de example_five_lines.txt
):
2 | Conteúdo da linha dois.
3 | Conteúdo da linha três.
(A saída mostra apenas as linhas solicitadas com seus números de linha originais)
Lendo um Arquivo Grande (Truncamento Automático)
Ao ler um arquivo grande sem especificar linhas e com auto_truncate
ativado (ou com o padrão true
com base nas configurações):
Entrada:
<read_file>
<path>src/large-module.js</path>
<auto_truncate>true</auto_truncate> <!-- Opcional se o padrão for verdadeiro -->
</read_file>
Saída Simulada (para large_file.log
com 1500 linhas, limite de 1000):
1 | Entrada de log 1...
2 | Entrada de log 2...
...
1000 | Entrada de log 1000...
[... 500 linhas truncadas ...]
(A saída é limitada ao máximo de linhas configurado, com um aviso de truncamento)
Tentando Ler um Arquivo Inexistente
Se o arquivo especificado não existir:
Entrada:
<read_file>
<path>arquivo_inexistente.txt</path>
</read_file>
Saída Simulada (Erro):
Erro: Arquivo não encontrado no caminho 'arquivo_inexistente.txt'.
Tentando Ler um Arquivo Bloqueado
Se o arquivo for excluído por regras em um arquivo .aicockpitcodeignore
:
Entrada:
<read_file>
<path>.env</path>
</read_file>
Saída Simulada (Erro):
Erro: Acesso negado ao arquivo '.env' devido às regras do .aicockpitcodeignore.