Skip to main content

FileWriterTool

설명

FileWriterTool은 텍스트 내용을 파일에 씁니다. 없는 디렉터리는 자동으로 만들어집니다. 기본 텍스트 인코딩은 UTF-8입니다. 쓰기는 샌드박스 디렉터리로 제한됩니다. 기본적으로 이 디렉터리는 현재 작업 디렉터리입니다. 변경하려면 base_dir을 전달하세요.

설치

예시

Code

인자

에이전트가 런타임에 제공하는 값:
  • filename: directory를 기준으로 쓸 파일 이름입니다. 하위 디렉터리를 포함할 수 있으며, 없는 하위 디렉터리는 생성됩니다.
  • content: 쓸 텍스트 내용입니다.
  • directory (선택 사항): 파일을 쓸 디렉터리입니다. 상대 경로는 도구의 허용 디렉터리(base_dir이 설정된 경우 그 값, 그렇지 않으면 현재 작업 디렉터리) 안에서 해석되며, 기본값은 해당 디렉터리의 루트(./)입니다. 없으면 생성됩니다.
  • overwrite (선택 사항): 기존 파일을 덮어쓸지 여부입니다. 불리언 또는 문자열 y/yes/t/true/on/1n/no/f/false/off/0을 받습니다. 기본값은 false입니다. false이고 파일이 이미 있으면 도구는 오류를 반환하고 파일을 수정하지 않습니다.
도구를 생성할 때 설정하는 값:
  • base_dir (선택 사항): 쓰기가 머물 수 있는 디렉터리입니다. 기본값은 현재 작업 디렉터리입니다. 상대 경로는 도구가 생성될 때 해석되므로, 이후 작업 디렉터리를 바꿔도 샌드박스는 이동하지 않습니다.
  • encoding (선택 사항): 파일을 쓸 때 사용하는 텍스트 인코딩입니다. 기본값은 utf-8입니다.

허용 경로

런타임의 directoryfilename 값은 보통 LLM이 선택합니다. 도구는 샌드박스를 벗어나는 경로를 거부합니다:
  • 해석된 directorybase_dir(기본값은 현재 작업 디렉터리) 안에 있어야 합니다.
  • 해석된 파일 경로는 그 directory 안에 있어야 합니다.
  • 두 검사 전에 .. 세그먼트, 절대 경로, 심볼릭 링크가 해석됩니다.
다른 트리 아래에 쓰기를 허용하려면 base_dir을 설정하세요:
Code
이전에는 절대 directory가 프로세스 권한이 있는 임의의 위치에 쓸 수 있었습니다. 그 동작에 의존했다면 허용할 트리로 base_dir을 설정하세요. CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true를 설정하면 이전 동작이 복원되지만, 모든 crewai-tools 도구에 대해 프로세스 전역으로 경로 및 URL 검사가 비활성화됩니다. base_dir을 선호하세요.