Language-Based Agent Control
본 논문은 에이전트가 실행 전에 정적으로 검증되는 잘 정의된 타입의 프로그램을 생성하도록 요구함으로써 에이전트 애플리케이션이 사용자가 지정한 보안 정책을 준수하도록 보장하는 프로그래밍 모델인 언어 기반 에이전트 제어 (LBAC) 를 소개하며, 이를 통해 개발자가 작성한 스캐폴딩과 에이전트가 생성한 행동 모두에 걸쳐 안전성 보장을 통합하면서도 계산적 표현력을 유지합니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
매우 재능이 있지만 예측 불가능한 비서 (AI 에이전트) 를 고용하여 연구 논문을 정리하는 등 일을 시킨다고 상상해 보세요. 당신은 그 비서가 창의적이고 똑똑하기를 원하지만, 동시에 실수로 (또는 악의적으로) 파일을 삭제하거나, 비밀을 훔치거나, 가짜 데이터를 만들어내지 않도록 해야 합니다.
현재 대부분의 시스템은 안전성과 자유 사이에서 선택하도록 강요합니다:
- "장난감 상자" 접근법 (제한된 도구): 비서에게 사전 승인된 도구들이 들어 있는 작은 상자를 줍니다. 그들은 상자 밖으로 나갈 수 없습니다. 매우 안전하지만, 영리하거나 복잡한 일을 할 수 없습니다. 목록을 정렬해야 한다면, 하나씩 당신이 직접 하라고 지시해야 합니다.
- "오픈 키친" 접근법 (코드 인터프리터): 비서에게 주방 전체에 대한 완전한 접근 권한을 줍니다. 그들은 원하는 대로 무엇을든 요리할 수 있습니다! 하지만 혼란에 빠지거나 속으면, 집을 태우거나 당신에게 독을 제공할 수도 있습니다.
이 논문은 **언어 기반 에이전트 제어 (LBAC)**라는 새로운 방식을 소개합니다. 이는 비서에게 우주의 법칙 (우주의 규칙) 이 그들이 반드시 말해야 하는 언어로 쓰여진 마법 부엌을 주는 것과 같습니다.
핵심 아이디어: "마법 언어"
비서에게 단순히 "해야 할 일과 하지 말아야 할 일" 목록을 주는 대신, 프로그래머들은 하스켈 (Haskell) 이라는 프로그래밍 언어의 초엄격한 버전과 같은 특수하고 엄격한 언어 내부에 전체 시스템을 구축합니다.
이 마법 언어에서 **타입 (데이터의 레이블)**은 보안 요원처럼 작용합니다.
- 데이터 조각이 **"신뢰할 수 있음 (Trusted)"**으로 레이블링되어 있다면, 이는 검증된 데이터베이스와 같은 안전한 출처에서 왔음을 의미합니다.
- 데이터 조각이 **"신뢰할 수 없음 (Untrusted)"**으로 레이블링되어 있다면, 인터넷이나 사용자로부터 왔음을 의미합니다.
- 이 언어에는 다음과 같은 규칙이 있습니다: "신뢰할 수 없는" 재료를 "신뢰할 수 있는" 요리에 섞을 수 없습니다.
실제 작동 방식
텍스트의 연구 논문 예제로 돌아가 보겠습니다. 당신은 에이전트에게 이렇게 요청합니다: "차분 프라이버시 (differential privacy) 에 관한 가장 초기 논문을 찾아서 내 참고문헌에 추가해 주세요."
- 옛 방식 (코드 인터프리터): 에이전트가 프로그램을 작성합니다. 가짜 논문 제목을 만들어서 파일에 기록하고 "여기 있습니다!"라고 말할 수도 있습니다. 시스템은 코드가 실행되는지만 확인할 뿐, 내용이 진짜인지 여부는 확인하지 않습니다.
- 옛 방식 (제한된 도구): 에이전트에게 "검색 및 저장" 버튼만 줍니다. 그들은 결과물을 스스로 정렬하거나 필터링할 수 없습니다. 당신이 어떤 것을 선택하라고 지시할 때까지 기다려야만 합니다.
- LBAC 방식 (TYPEGUARD):
- 에이전트가 마법 언어로 프로그램을 작성합니다.
- 논문을 얻으려면 "신뢰할 수 있음" 레이블만 반환하는 특수 함수를 사용해야 합니다.
- 파일에 기록하려면 해당 함수가 "신뢰할 수 있음" 레이블을 요구합니다.
- 마법 검사: 에이전트의 프로그램이 실행되기 전에 "타입 체커 (엄격한 사서)"가 코드를 검토합니다.
- 에이전트가 "신뢰할 수 있음" 레이블이 없는 가짜 논문을 파일에 쓰려고 하면, 사서는 **"오류! 이 코드는 규칙에 맞지 않습니다. 다시 시도하세요."**라고 말합니다.
- 에이전트는 오류 메시지를 받아들이고 실수를 깨닫은 후, 먼저 데이터베이스에서 진짜 논문을 가져오도록 코드를 다시 작성합니다.
- 코드가 검사를 통과하면 실행됩니다.
이것이 중요한 이유
이 논문은 이 접근 방식이 "안전성 vs 자유" 문제를 해결한다고 주장합니다:
- 자유: 에이전트는 여전히 복잡한 프로그램을 작성하고, 목록을 정렬하며, 수학 계산을 할 수 있습니다. 작은 도구 상자에 갇혀 있지 않습니다.
- 안전성: 에이전트가 언어의 엄격한 규칙에 부합하는 코드를 반드시 작성해야 하므로, 비밀 데이터를 유출하거나 가짜 파일을 작성하는 등 규칙을 위반하는 행위를 물리적으로 수행할 수 없습니다. 코드가 "타입 검사"를 통과하지 못하면 절대 실행되지 않습니다.
"중첩된" 에이전트 트릭
이 논문은 에이전트가 도움을 받기 위해 "하위 에이전트"를 고용하더라도 이 방식이 작동함을 보여줍니다.
- 주 에이전트가 하위 에이전트에게 의심스러운 이메일을 확인하도록 요청한다고 상상해 보세요.
- 하위 에이전트는 이메일을 읽습니다 (이메일은 "더럽거나" 신뢰할 수 없는 데이터입니다).
- 마법 언어 규칙 때문에 하위 에이전트는 자동으로 "격리 구역"에 배치됩니다. 그들은 이메일을 읽을 수는 있지만, 주 에이전트의 도구에 그 "더러운" 데이터를 전달할 수 없습니다. 단, 주 에이전트가 열 수 있는 특수 컨테이너에 싸서 전달하는 경우를 제외합니다.
- 이는 별도의 보안 시스템 때문이 아니라 언어 규칙 때문에 자동으로 발생합니다.
요약
이 논문은 AI 에이전트 주변에 벽을 쌓는 대신, AI 의 세계를 엄격한 규칙 기반 언어 내부에 구축해야 한다고 주장합니다. 이 세계에서는 안전성이 위에 추가하는 별도의 계층이 아니라, 에이전트가 사고하고 코드를 작성하는 방식의 매우 본질적인 부분에 내장되어 있습니다. 에이전트가 규칙을 깨려고 하면, 언어 자체가 "아니오"라고 말하며 행동이 발생하기 전에 차단됩니다.
저자들은 세 가지 시나리오로 이를 테스트했습니다:
- 데이터 출처: 검증된 데이터베이스에서 온 진짜 논문만 참고문헌에 추가되도록 보장.
- 파일 시스템 샌드박싱: 에이전트가 특정 폴더 (예: "권한" 토큰과 같은) 의 파일만 접근할 수 있도록 보장.
- 정보 흐름: 비밀 데이터가 실수로 공개 인터넷으로 유출되지 않도록 보장.
모든 경우에서 시스템은 에이전트가 똑똑하고 유연하게 작동하도록 유지하면서도 규칙을 위반할 수 없음을 보장했습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.