테스트‑주도 에이전틱 로봇 제어기 합성 프레임워크
초록
본 논문은 2D 지도와 3D 시뮬레이션 환경에서 초저레벨 로봇 내비게이션 제어기를 자동 생성하기 위해, 구조화된 PyTest 기반 피드백을 활용한 테스트‑주도 에이전틱 루프를 제안한다. 프롬프트‑레벨 수정과 코드‑레벨 직접 편집을 교차하는 이중‑계층 복구 전략을 통해 초기 프롬프트가 불완전해도 반복적인 검증·수정 과정을 거쳐 신뢰성 높은 컨트롤러를 얻는다. 실험 결과, 단일‑샷 생성 대비 성공률과 로버스트성이 크게 향상됨을 보인다.
상세 분석
이 연구는 LLM(대형 언어 모델) 기반 코드 생성의 근본적인 한계—프롬프트 의존성, 비정형 오류, 안전성 결여—를 해결하고자 ‘테스트‑주도 에이전틱 프레임워크’를 설계했다. 핵심 아이디어는 생성된 controller.py 를 자동화된 PyTest 스위트로 검증하고, 실패 원인을 구조화된 리포트 형태로 LLM에 전달해 두 가지 복구 경로 중 하나를 선택하도록 하는 것이다. 첫 번째 복구는 ‘코드‑레벨 편집’으로, LLM이 직접 오류 라인이나 논리적 결함을 수정한다. 편집이 일정 횟수(편집 인내도) 내에 성공하지 못하면 두 번째 복구인 ‘프롬프트‑레벨 수정’으로 전환한다. 여기서는 기존 프롬프트에 자동 생성된 ‘AUTO_REPAIR_RULES’를 삽입해 LLM이 보다 풍부한 컨텍스트와 요구사항을 반영하도록 유도한다. 이러한 이중‑계층 접근은 프롬프트가 과소 지정된 상황에서도 점진적으로 요구사항을 보강해 나가며, 코드 자체가 점차 개선되도록 만든다.
2D 환경에서는 원시 RGB 지도 이미지를 그레이스케일 변환 → Otsu 이진화 → 극성(밝은/어두운) 판단 → 형태학적 정화 → 팽창 과정을 거쳐 점유 그리드(occupancy grid)를 생성한다. 후보 파라미터(극성, 정화 강도, 팽창 반경)를 그리드 탐색하고, 시작·목표 위치의 자유 공간 여부와 연결성을 검증한 뒤, 경로 길이·클리어런스·곡률을 가중합한 점수 함수를 통해 최적 후보를 선택한다. 이 메타데이터는 params.json 으로 저장돼 LLM에게 전달된다.
3D 환경에서는 Webots 시뮬레이터의 world 파일(envt.wbt)과 로봇 사양(차동 구동, 초음파 센서)을 그대로 컨텍스트로 제공한다. 여기서는 지도 전처리가 필요 없으며, LLM은 시뮬레이터 API 호출 코드를 포함한 controller.py 를 직접 생성한다.
실험에서는 동일한 과제에 대해 ‘one‑shot’ 방식과 제안된 에이전틱 루프를 각각 R=10번씩 실행했다. 성공 지표는 모든 테스트 통과 여부와 충돌 회피, 목표 도달 시간 등을 포함한다. 결과는 테스트‑주도 루프가 평균 성공률을 85%→96%로 끌어올렸으며, 특히 초기 프롬프트가 모호하거나 파라미터가 누락된 경우에도 복구 단계가 자동으로 보강해 최종 컨트롤러가 배포 가능 수준에 도달함을 보여준다.
이 프레임워크의 장점은 (1) LLM 의 ‘생성‑검증‑수정’ 사이클을 완전 자동화해 인간 개입을 최소화, (2) 구조화된 테스트 스위트를 통해 안전 요구사항을 명시적으로 검증, (3) 코드와 프롬프트를 동시에 다루는 이중 복구 메커니즘으로 복구 효율성을 극대화한다는 점이다. 한편 제한점으로는 (①) 테스트 커버리지가 설계자에 의해 정의돼야 하며, 복잡한 동적 환경에서는 테스트 설계 자체가 어려울 수 있다, (②) 현재는 Python·PyTest 기반으로 제한돼 있어 실시간 제어가 요구되는 임베디드 시스템에 바로 적용하기엔 추가 최적화가 필요하다. 향후 연구에서는 자동 테스트 생성, 멀티‑모달 센서 통합, 그리고 경량화된 코드 배포를 위한 컴파일 단계 통합 등을 탐색할 계획이다.
댓글 및 학술 토론
Loading comments...
의견 남기기