FileWriterTool
설명
FileWriterTool은 텍스트 내용을 파일에 씁니다. 없는 디렉터리는 자동으로
만들어집니다. 기본 텍스트 인코딩은 UTF-8입니다.
쓰기는 샌드박스 디렉터리로 제한됩니다. 기본적으로 이 디렉터리는 현재 작업
디렉터리입니다. 변경하려면 base_dir을 전달하세요.
설치
예시
Code
인자
에이전트가 런타임에 제공하는 값:filename:directory를 기준으로 쓸 파일 이름입니다. 하위 디렉터리를 포함할 수 있으며, 없는 하위 디렉터리는 생성됩니다.content: 쓸 텍스트 내용입니다.directory(선택 사항): 파일을 쓸 디렉터리입니다. 상대 경로는 도구의 허용 디렉터리(base_dir이 설정된 경우 그 값, 그렇지 않으면 현재 작업 디렉터리) 안에서 해석되며, 기본값은 해당 디렉터리의 루트(./)입니다. 없으면 생성됩니다.overwrite(선택 사항): 기존 파일을 덮어쓸지 여부입니다. 불리언 또는 문자열y/yes/t/true/on/1및n/no/f/false/off/0을 받습니다. 기본값은false입니다.false이고 파일이 이미 있으면 도구는 오류를 반환하고 파일을 수정하지 않습니다.
base_dir(선택 사항): 쓰기가 머물 수 있는 디렉터리입니다. 기본값은 현재 작업 디렉터리입니다. 상대 경로는 도구가 생성될 때 해석되므로, 이후 작업 디렉터리를 바꿔도 샌드박스는 이동하지 않습니다.encoding(선택 사항): 파일을 쓸 때 사용하는 텍스트 인코딩입니다. 기본값은utf-8입니다.
허용 경로
런타임의directory와 filename 값은 보통 LLM이 선택합니다. 도구는
샌드박스를 벗어나는 경로를 거부합니다:
- 해석된
directory는base_dir(기본값은 현재 작업 디렉터리) 안에 있어야 합니다. - 해석된 파일 경로는 그
directory안에 있어야 합니다. - 두 검사 전에
..세그먼트, 절대 경로, 심볼릭 링크가 해석됩니다.
base_dir을 설정하세요:
Code
이전에는 절대
directory가 프로세스 권한이 있는 임의의 위치에 쓸 수
있었습니다. 그 동작에 의존했다면 허용할 트리로 base_dir을 설정하세요.
CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true를 설정하면 이전 동작이 복원되지만,
모든 crewai-tools 도구에 대해 프로세스 전역으로 경로 및 URL 검사가
비활성화됩니다. base_dir을 선호하세요.