Skip to main content

FileWriterTool

Descrição

O FileWriterTool escreve conteúdo de texto em um arquivo. Diretórios ausentes são criados automaticamente. A codificação de texto padrão é UTF-8. As escritas ficam confinadas a um diretório sandbox. Por padrão, esse diretório é o diretório de trabalho atual. Passe base_dir para alterá-lo.

Instalação

Exemplo

Code

Argumentos

O agente fornece estes em tempo de execução:
  • filename: Nome do arquivo a escrever, relativo a directory. Pode incluir subdiretórios. Esses subdiretórios são criados se não existirem.
  • content: Conteúdo de texto a escrever.
  • directory (opcional): Diretório no qual escrever. Um caminho relativo é resolvido dentro do diretório permitido da ferramenta (base_dir quando definido; caso contrário, o diretório de trabalho atual) e tem como padrão a raiz desse diretório (./). É criado se não existir.
  • overwrite (opcional): Se um arquivo existente deve ser substituído. Aceita um booleano ou as strings y/yes/t/true/on/1 e n/no/f/false/off/0. O padrão é false. Quando é false e o arquivo já existe, a ferramenta retorna um erro e não modifica o arquivo.
Você define estes ao construir a ferramenta:
  • base_dir (opcional): Diretório dentro do qual as escritas devem permanecer. O padrão é o diretório de trabalho atual. Um caminho relativo é resolvido quando a ferramenta é construída, então uma mudança posterior do diretório de trabalho não move o sandbox.
  • encoding (opcional): Codificação de texto usada para escrever o arquivo. O padrão é utf-8.

Caminhos permitidos

Os valores de directory e filename em tempo de execução costumam ser escolhidos por um LLM. A ferramenta rejeita caminhos que escapam do sandbox:
  • O directory resolvido deve estar dentro de base_dir (o diretório de trabalho atual por padrão).
  • O caminho do arquivo resolvido deve estar dentro desse directory.
  • Segmentos .., caminhos absolutos e symlinks são resolvidos antes das duas verificações.
Para permitir escritas em outra árvore, defina base_dir:
Code
Anteriormente, um directory absoluto podia escrever em qualquer lugar em que o processo tivesse permissão. Se você dependia disso, defina base_dir para a árvore que deseja permitir. Definir CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true restaura o comportamento antigo, mas desativa verificações de caminho e URL em todo o processo para todas as ferramentas do crewai-tools. Prefira base_dir.