첫 원리부터 시작하는 AI 에이전트 구축
프레임워크 없이 환경 정의부터 보상 함수 설계까지, 다이어그램 에이전트 예제로 강화학습 기반 에이전트 훈련의 핵심 원리를 설명한다.
대부분의 포스트 트레이닝 튜토리얼은 프레임워크 설치부터 시작한다. 하지만 시스템 전체를 이해하려면 더 낮은 레벨에서 시작해야 한다. 트레이너가 있기 전에 환경이 있고, 강화학습이 있기 전에 액션 공간이 있으며, 에이전트가 있기 전에 세상의 상태를 변경하는 액션을 생성하는 정책이 있다.
핵심 루프는 이렇다: prompt → 모델 액션 → 환경 → 보상 → 그래디언트 업데이트. 브라우저 에이전트, 코딩 에이전트, 로보틱스 플래너, 다이어그램 에이전트 모두 같은 구조를 갖는다. 차이는 환경, 액션 공간, 보상 함수에 있다.
이 글은 텍스트-투-다이어그램 에이전트를 예제로 사용한다. 모델은 구조화된 JSON 액션을 출력해 캔버스에 도형을 생성한다. 예를 들어 create_shape로 사각형을 만들고, connect로 화살표를 연결한다. 모델은 단순히 텍스트를 생성하는 게 아니라 다른 시스템이 실행할 명령을 생성한다.
환경 구현은 순수 Python으로 작성된 최소 캔버스 환경을 제시한다. 사각형, 타원, 다이아몬드, 텍스트 블록, 화살표를 지원하며, 모델 출력이 성공하거나 실패할 수 있는 결정론적 세계를 제공한다. 중복 ID 방지, 유한한 좌표, 유효한 도형 타입 등의 제약을 검증한다.
보상 함수 설계가 가장 어렵다. 트레이너는 주어진 보상만 최적화할 수 있다. 보상이 대부분 구문론적이면 모델은 구문을 학습하고, 보상이 작업 만족도를 측정하면 모델은 유용한 행동을 학습할 기회를 갖는다. 예제 보상 함수는 다음을 결합한다:
- 파싱 가능 여부 (0.4)
- 레이아웃 품질 - 겹침 방지, 레이블 존재, 화살표 연결 (0.3)
- 의미론적 커버리지 - 사용자 요청의 중요 단어 포함 (0.3)
왜 RL 전에 SFT가 필요한가? 유효한 액션을 생성할 수 없는 모델에서 RL을 시작하면 거의 모든 롤아웃이 0 보상을 받는다. 이는 최적화 문제가 아니라 상태 분포 문제다. 모델은 먼저 환경의 언어를 학습해야 보상을 최적화할 수 있다.
TRL, Unsloth, PRIME-RL, verl 같은 프레임워크는 마법이 아니다. 이들은 이 루프를 중심으로 한 인프라(배칭, 롤아웃 생성, 분산 추론, 보상 계산)일 뿐이다. 개념적 핵심은 훨씬 작다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.