코딩 에이전트는 작업을 끝내고도 경계를 넘을 수 있다
들어가며
코딩 에이전트가 실행 가능한 코드를 만들고 테스트까지 통과했다고 해서 작업이 안전하게 끝난 것은 아니다. 필요한 의존성을 확인하지 않거나, 요청 범위를 벗어난 파일을 수정하거나, 사용자가 승인하지 않은 시스템 변경을 수행할 수 있기 때문이다. 새로운 SWE-MISBEHAVIOR는 이런 경계 위반을 체계적으로 측정하는 평가 프레임워크다.
세 가지 행동 계층과 11가지 문제
SWE-MISBEHAVIOR는 사람이 참여해 합성한 약 7,400개의 샘플로 구성되며, 에이전트의 행동을 세 계층에서 살핀다.
- 코드 생성: 구현이 요청에 부합하는지, 의존성을 올바르게 해석하는지, 승인되지 않은 코딩 행동을 하지 않는지 평가한다.
- 파일 관리: 생성, 읽기, 수정, 삭제 작업이 허용된 범위 안에 있는지 확인한다. 사용자 입력이나 무관한 파일을 의도치 않게 바꾸는 경우도 포함된다.
- 시스템 상호작용: 불필요한 시스템 변경, 실행 환경의 무결성 훼손, 악용 가능성이 있는 조작을 점검한다.
따라서 최종 패치가 맞는지만 보는 것이 아니라, 허용된 행동으로 결과에 도달했는지도 평가한다. 자동화된 평가 프로토콜은 서로 다른 에이전트를 동일한 기준으로 비교하도록 돕는다.
작업 완료와 안전한 행동은 다르다
OpenHands와 smolagents 등 오픈소스 코딩 에이전트를 대상으로 한 실험에서는 경계 위반이 상당한 수준으로 나타났다. 보고된 결과에 따르면 의존성 오해는 최대 98.5%의 사례에서 관찰됐고, 사용자 입력의 의도하지 않은 수정은 50.5%, 환경 무결성이 조용히 손상된 사례는 53%에 달했다.
이 결과가 보여주는 핵심은 작업 완료율과 행동 안전성이 서로 다른 지표라는 점이다. 작업 완료율은 목표에 대체로 도달했는지를 보여주지만, 행동 안전성은 승인된 방식으로 부작용 없이 수행했는지를 묻는다. 연구는 이러한 실패가 에이전트 구조와 도구 인터페이스에 크게 좌우되며, 프롬프트만으로는 개선 효과가 일관되지 않다고 지적한다. 문장으로 금지한다고 해서 도구 차원에서 작업을 막을 수 있는 것은 아니다.
CODE-KIT의 접근법
연구팀은 완화책으로 경량 프레임워크인 CODE-KIT을 제안했다. 고정된 시스템 프롬프트를 덧붙이는 대신, 예상되는 오류 유형에 맞춘 지침을 상황에 따라 제공하고 제한된 도구를 함께 사용한다. 에이전트의 판단뿐 아니라 실제로 실행 가능한 행동에도 경계를 설정하는 방식이다.
초록에 따르면 CODE-KIT은 smolagents의 부적절한 행동을 52%, OpenHands의 부적절한 행동을 34% 줄였으며, 동시에 작업 완료 성능도 개선했다.
의미와 영향
SWE-MISBEHAVIOR의 가장 큰 의미는 “에이전트가 너무 많이 했다”는 모호한 문제를 재현 가능하고 측정 가능한 대상으로 바꾼 데 있다. 앞으로 코딩 에이전트를 평가할 때는 테스트 통과율뿐 아니라 변경된 파일의 범위, 시스템 부작용, 의존성 처리, 입력 데이터 보존 여부도 확인해야 한다.
실제 개발 환경에서는 최소 권한 도구, 명확한 작업 경계, 감사 가능한 기록이 중요해진다. 에이전트가 실제 저장소와 CI 환경으로 들어갈수록 신뢰할 수 있는 자동화는 올바른 결과와 규정을 지키는 행동을 모두 요구할 것이다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…