도구 사용 및 권한¶
도구(Tools)는 에이전트의 "손"과 같습니다. AI가 외부 세계와 상호작용하고 실질적인 행동을 취할 수 있게 해줍니다.
기본 제공 도구¶
Backend.AI GO는 다음과 같은 강력한 기본 도구 세트를 제공합니다:
웹 도구¶
- 웹 검색(Web Search): Google이나 DuckDuckGo와 같은 검색 엔진을 통해 인터넷을 검색합니다.
- URL 호출(Fetch URL): 특정 웹페이지의 내용을 직접 읽어옵니다.
파일 시스템 도구¶
- 파일 읽기(Read File): 로컬 파일의 내용을 확인합니다.
- 디렉토리 목록(List Directory): 폴더 안에 어떤 파일들이 있는지 메타데이터(크기, 수정 시간)와 함께 확인합니다.
- 디렉토리 생성(Create Directory): 지정된 경로에 새 디렉토리를 생성합니다. 재귀적 생성 옵션을 지원합니다.
- 파일 쓰기/수정(Write/Edit File): 로컬 파일을 생성하거나 수정합니다.
- 파일 검색(Search Files): 특정 글로브 패턴과 일치하는 파일을 찾습니다.
- 내용 검색(Search Content): 정규 표현식 패턴으로 파일 내용을 검색합니다. 컨텍스트 라인 표시를 지원합니다.
유틸리티 및 시스템 도구¶
- 계산기(Calculator): 복잡한 수학 연산을 정확하게 수행합니다.
- Python/Shell 실행: 안전한 환경에서 코드나 명령어를 실행합니다.
- 시스템 정보: CPU, 메모리, 하드웨어 상태를 확인합니다.
크로스 플랫폼 셸 실행¶
run_shell 및 run_python 도구는 지원되는 모든 플랫폼(Windows, macOS, Linux)에서 플랫폼별 자동 처리와 함께 작동합니다:
- 프로세스 트리 관리: 명령이 시간 초과되면 메인 프로세스뿐만 아니라 모든 하위 프로세스가 적절하게 종료됩니다.
- Unix: 프로세스 그룹(
killpg) 사용 - Windows: 완전한 정리를 위한 Job Objects 사용
- Unix: 프로세스 그룹(
- 환경 변수: 필수 시스템 변수가 자동으로 하위 프로세스에 전달됩니다:
- Unix:
HOME,PATH,LANG,LC_ALL - Windows:
USERPROFILE,PATH,SYSTEMROOT,COMSPEC,TEMP,TMP
- Unix:
- 인코딩: 일관된 텍스트 처리를 위해 모든 플랫폼에서
PYTHONIOENCODING=utf-8이 설정됩니다.
도구 권한 관리¶
사용자의 보안을 위해 Backend.AI GO는 강력한 권한 시스템을 갖추고 있습니다. 도구들은 "위험 수준"에 따라 다음과 같이 분류됩니다:
🟢 낮은 위험 (자동 허용)¶
시간 확인이나 문서 검색과 같은 읽기 전용 작업입니다. 보통 사용자에게 묻지 않고 바로 실행됩니다.
🟡 중간 위험 (한 번 묻기)¶
외부 데이터에 접근하거나 임시 위치에 파일을 쓰는 작업입니다. 세션 내에서 처음 사용할 때 사용자에게 승인을 요청합니다.
🔴 높은/치명적 위험 (항상 묻기)¶
파일 삭제와 같은 파괴적인 작업이나 셸 명령어 실행과 같은 시스템 수준의 접근입니다. 에이전트는 이 작업을 수행하기 전에 항상 사용자의 명시적인 승인을 기다립니다.
병렬 도구 실행¶
LLM이 여러 개의 독립적인 도구를 동시에 요청하면, Backend.AI GO는 순차적으로 실행하는 대신 병렬로 실행합니다. 이를 통해 여러 소스에서 정보를 수집해야 하는 복잡한 작업의 성능이 크게 향상됩니다.
작동 방식¶
- 에이전트가 여러 도구 호출이 동시에 요청되었음을 감지합니다.
- 모든 독립적인 도구들이 병렬 처리를 통해 동시에 실행됩니다.
- 결과는 원래 요청 순서대로 수집되어 LLM에 반환됩니다.
- 병렬 실행 중에는 UI에 모든 도구가 "진행 중"으로 표시됩니다.
장점¶
- 더 빠른 결과: 각각 1초씩 걸리는 5개의 도구가 필요한 작업이 ~5초 대신 ~1초 만에 완료됩니다.
- 효율적인 리소스 활용: 최신 멀티코어 프로세서의 성능을 활용합니다.
- 부분 실패 처리: 하나의 도구가 실패하더라도 다른 도구들은 계속 실행되어 성공합니다.
병렬 실행 중 승인 처리¶
병렬 실행 중인 도구가 승인을 필요로 할 때:
- 해당 도구만 승인을 기다리고, 다른 도구들은 계속 실행됩니다.
- 각 도구를 독립적으로 승인하거나 거부할 수 있습니다.
- "내 선택 기억하기" 옵션은 병렬 실행 전반에 걸쳐 적용됩니다.
승인 요청 처리하기¶
에이전트가 민감한 도구를 사용해야 할 때:
- 에이전트의 실행이 일시 중지됩니다.
- 도구 승인 대화창이 나타납니다.
- 에이전트가 어떤 도구를 어떤 인자(arguments)와 함께 사용하려는지 정확히 확인할 수 있습니다.
- 계속하려면 승인(Approve)을, 차단하려면 거부(Deny)를 클릭하세요.
- "내 선택 기억하기"를 체크하면 현재 세션 동안에는 다시 묻지 않게 설정할 수 있습니다.
보안 주의
에이전트가 무엇을 하려는지 이해하지 못한 상태에서 도구 호출(특히 셸 명령어 실행이나 파일 삭제)을 승인하지 마세요.