Validating agentic behavior when “correct” isn’t deterministic

개요

기술은 GitHub Copilot 코딩 에이전트와 같은 자율 에이전트의 행동을 검증하기 위한 새로운 접근 방식을 제시하며, 결정론적이지 않은 상황에서도 에이전트의 신뢰성을 보장하는 "신뢰 계층(Trust Layer)" 구축의 중요성을 강조합니다.

주요 내용

* 자율 에이전트의 검증 과제: GitHub Copilot 코딩 에이전트와 같이 UI, 브라우저, IDE 등 실제 환경과 상호작용하는 에이전트는 로딩 화면의 등장 여부, 타이밍 변화, 다양한 올바른 실행 경로 등 비결정론적인 특성으로 인해 기존의 고정된 스크립트 기반 테스트 방식으로는 정확성을 검증하기 어렵습니다. 이는 실제 작업은 성공했음에도 불구하고 테스트가 실패하는 "거짓 음성(false negative)"을 유발합니다.
* 기존 테스트 방식의 한계: Assertion-based testing, Record-and-replay, Visual regression testing, ML oracles와 같은 기존 테스트 도구들은 에이전트의 다양한 실행 경로와 환경적 노이즈를 고려하지 못하며, 특정 순서나 상태에 대한 고정된 가정을 기반으로 하기 때문에 비결정론적 행동을 하는 에이전트 검증에 부적합합니다.
* '필수적' 대 '선택적' 행동으로의 재정의: 에이전트의 올바른 행동을 '특정 실행 경로 준수'가 아닌, '필수적인 결과 달성'으로 재정의합니다. 이는 '필수 상태(essential states)', '선택적 변형(optional variations)', '수렴 경로(convergent paths)'로 행동을 분류하여, 로딩 화면과 같은 부수적인 상태 변화는 무시하고 검색 결과 화면과 같은 필수적인 마일스톤 달성 여부에 초점을 맞춥니다.
* 지배자 분석(Dominator Analysis) 기반 검증 프레임워크: 컴파일러 이론의 지배자 관계 개념을 차용하여, 에이전트 실행 흔적을 그래프 구조(Prefix Tree Acceptor, PTA)로 모델링합니다. 이를 통해 모든 경로에서 필수적으로 통과해야 하는 '지배자 상태(dominator states)'를 자동으로 식별하고, 선택적 상태를 필터링하여 정확한 행동의 '핵심 골격'을 추출합니다.
* 새로운 실행 검증 및 설명 가능성: 구축된 지배자 트리(dominator tree)를 '정답' 모델로 삼아, 새로운 실행을 비교합니다. 필수 상태가 올바른 상대적 순서로 도달했는지 여부만 검증하며, 중간에 추가적인 상태 변화나 경로는 유효한 변형으로 간주합니다. 실패 시, 어떤 필수 상태가 도달하지 못했는지 명확한 이유를 제공하여 설명 가능성을 높입니다.
* 평가 결과: VS Code 확장 기능 테스트 스위트에서 지배자 분석 기반 PTA(Dominator Tree) 방식은 에이전트 자체 평가(CUA Self-Assessment) 방식 대비 정확도, 정밀도, 재현율, F1 점수 모두에서 100%의 완벽한 성능을 보이며, 특히 '버그 아님(not a bug)' 시나리오 식별에서 뛰어난 효과를 입증했습니다.
* 개발자 워크플로우에서의 통합: GitHub Actions 파이프라인, 회귀 테스트, 에이전트 평가, UI 자동화 등 다양한 개발 워크플로우에 통합되어 거짓 음성 감소, 수동 검토 시간 단축, 생산 등급 자동화를 강화합니다.
* 향후 발전 방향: 성공 흔적 외 실패 흔적 학습, LLM 의존성 완화, 시간 제약 조건 추가, 계층적 추상화, 온라인 학습 기능 등을 통해 프레임워크의 완전성을 높여갈 계획입니다.

시사점

지배자 분석을 활용한 구조적 검증 프레임워크는 AI 에이전트의 비결정론적 행동을 효과적으로 검증하고 신뢰성을 확보함으로써, 복잡한 시스템에서도 에이전트를 생산 등급의 안정적인 도구로 활용할 수 있는 기반을 마련합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions