답변하는 모델에서 행동하는 에이전트로
지금까지 우리는 강화학습을 여러 장면에서 만났습니다. 격자 세계에서는 에이전트가 한 칸씩 움직이며 목표 지점을 찾았습니다. CartPole에서는 막대가 쓰러지지 않도록 왼쪽이나 오른쪽으로 힘을 주었습니다. 게임에서는 점수를 높이기 위해 이동하고, 공격하고, 피하고, 기다렸습니다. 언어 모델에서는 토큰을 하나씩 선택하며 답변을 만들었고, 사람의 선호를 보상으로 바꾸어 더 나은 응답을 학습했습니다.
이 장에서는 이 모든 조각을 하나의 그림으로 합쳐 보겠습니다. 그 그림의 이름은 AI 에이전트입니다.
AI 에이전트란 단순히 질문에 답하는 모델이 아닙니다. 어떤 목표를 받고, 현재 상황을 관찰하고, 필요한 행동을 선택하고, 결과를 확인한 뒤 다음 행동을 이어 가는 시스템입니다. 웹을 검색하고, 파일을 읽고, 코드를 실행하고, 일정을 조정하고, 로봇 팔을 움직이고, 게임 속 캐릭터를 조종하는 모델은 모두 에이전트의 모습을 가집니다.
여기서 강화학습이 다시 중요해집니다. 에이전트는 한 번의 정답을 맞히는 기계가 아니라, 여러 단계에 걸쳐 더 나은 행동을 선택해야 하는 존재이기 때문입니다. Berkeley CS285 같은 딥 강화학습 강의가 모방학습, 정책 경사, Q-learning, Actor-Critic, 모델 기반 강화학습, 오프라인 강화학습, LLM 강화학습까지 폭넓게 다루는 이유도 여기에 있습니다. 강화학습은 특정 알고리즘 하나가 아니라, 행동하는 지능을 어떻게 훈련할 것인가라는 큰 질문을 다루는 분야입니다.1

모든 것은 "보고, 행동하고, 결과를 받는다"로 돌아온다
에이전트 문제는 겉모습이 매우 다양합니다. 게임 AI와 로봇, 웹 브라우저를 조작하는 LLM 에이전트는 서로 완전히 달라 보입니다. 하지만 강화학습의 언어로 번역하면 놀라울 만큼 비슷합니다.
게임에서 상태는 현재 맵, 적의 위치, 체력, 남은 시간, 아이템 정보입니다. 행동은 이동, 공격, 방어, 점프, 스킬 사용입니다. 보상은 점수 증가, 생존, 승리, 목표 달성입니다.
로봇에서 상태는 카메라 이미지, 관절 각도, 속도, 물체 위치, 힘 센서 값입니다. 행동은 모터에 주는 힘, 관절 회전, 집게 열기와 닫기입니다. 보상은 물체를 집었는지, 떨어뜨리지 않았는지, 충돌하지 않았는지, 에너지를 얼마나 아꼈는지로 정의할 수 있습니다.
웹 탐색 에이전트에서 상태는 현재 페이지, 검색 결과, 사용자의 요청, 이미 방문한 링크, 브라우저의 화면입니다. 행동은 검색어 입력, 링크 클릭, 스크롤, 양식 작성, 파일 다운로드입니다. 보상은 원하는 정보를 찾았는지, 잘못된 사이트에 들어가지 않았는지, 시간을 낭비하지 않았는지, 사용자의 목적을 안전하게 달성했는지로 평가할 수 있습니다.
코딩 에이전트도 마찬가지입니다. 상태는 요구사항, 현재 코드, 테스트 결과, 오류 메시지, 프로젝트 구조입니다. 행동은 파일 수정, 함수 작성, 테스트 실행, 패키지 설치, 로그 확인입니다. 보상은 테스트 통과, 버그 수정, 코드 품질, 실행 비용, 보안 문제 회피로 구성됩니다.
겉으로는 다르지만 뼈대는 같습니다.
상태를 관찰합니다. 행동을 선택합니다. 결과를 받습니다. 다음 상태로 이동합니다. 그리고 장기적으로 더 좋은 결과를 만드는 전략을 배웁니다.
이 문장은 이 책 전체를 관통한 가장 중요한 문장입니다. 강화학습은 바로 이 루프를 다룹니다. AI 에이전트의 시대가 오면서 이 루프는 더 이상 게임과 로봇 연구실 안에만 머물지 않습니다. 이제 이 루프는 브라우저, IDE, 업무 도구, 고객 지원 시스템, 데이터 분석 파이프라인, 개인 비서 안으로 들어오고 있습니다.
LLM 에이전트에서 행동은 꼭 물리적인 움직임이 아니다
로봇이 팔을 움직이는 것은 분명한 행동입니다. 게임 캐릭터가 오른쪽으로 이동하는 것도 행동입니다. 그런데 언어 모델은 무엇을 행동이라고 볼 수 있을까요?
가장 작은 단위에서는 다음 토큰을 선택하는 것이 행동입니다. "오늘" 다음에 "날씨"를 쓸지, "일정"을 쓸지, "기분"을 쓸지 고르는 것이 언어 모델의 기본 행동입니다. 하지만 LLM 에이전트로 올라오면 행동의 단위는 더 커집니다. 모델은 단어만 고르는 것이 아니라, 다음과 같은 결정을 내립니다.
바로 답변할 것인가, 먼저 검색할 것인가
계산기를 사용할 것인가, 머릿속 추론으로 처리할 것인가
코드를 실행해 볼 것인가, 코드만 작성하고 멈출 것인가
사용자에게 되물을 것인가, 현재 정보로 진행할 것인가
위험한 요청을 거절할 것인가, 안전한 대안을 제시할 것인가
이런 행동은 전통적인 강화학습의 action과 정확히 맞닿아 있습니다. 다만 행동 공간이 훨씬 복잡할 뿐입니다. CartPole에서는 행동이 "왼쪽" 또는 "오른쪽" 두 개였습니다. 반면 LLM 에이전트는 수많은 문장을 생성할 수 있고, 여러 도구를 호출할 수 있으며, 도구 호출 결과에 따라 다시 계획을 수정할 수 있습니다.
예를 들어 사용자가 "지난 3개월 매출 데이터를 분석해서 이상치를 찾고, 원인을 추정한 뒤 보고서 초안을 만들어 줘"라고 요청했다고 해 봅시다. 좋은 에이전트는 곧바로 그럴듯한 보고서를 지어내면 안 됩니다. 먼저 데이터 위치를 확인해야 합니다. 파일을 읽어야 합니다. 결측치와 이상치를 검사해야 합니다. 그래프를 그릴 수도 있습니다. 계산 결과를 바탕으로 원인을 추정해야 합니다. 마지막으로 사용자가 읽기 쉬운 형식으로 보고서를 작성해야 합니다.
이 과정은 하나의 긴 궤적, 즉 trajectory입니다. 중간에 잘못된 파일을 읽거나, 계산 오류를 내거나, 사용자의 의도를 오해하면 최종 답변은 망가집니다. 그래서 LLM 에이전트는 "한 번에 멋진 문장 만들기"를 넘어, 여러 단계의 행동을 안정적으로 이어 가는 능력이 필요합니다.
에이전트의 보상은 하나의 숫자로 끝나지 않는다
강화학습에서는 보상을 숫자로 표현합니다. 하지만 현실의 목표는 숫자 하나로 깔끔하게 떨어지지 않습니다. 게임에서는 점수가 좋은 출발점이 됩니다. 로봇 팔은 물체를 잡았는지 여부를 보상으로 삼을 수 있습니다. 그런데 실제 AI 에이전트는 더 복잡합니다.
고객 지원 에이전트를 생각해 봅시다. 이 에이전트의 목표를 "사용자가 만족하면 +1"로만 정의하면 충분할까요? 그렇지 않습니다. 사용자를 만족시키기 위해 회사 정책을 어기면 안 됩니다. 개인정보를 노출하면 안 됩니다. 환불이 불가능한 상황에서 거짓 약속을 해서도 안 됩니다. 너무 많은 도구 호출로 비용을 낭비해도 문제입니다. 답변은 친절해야 하지만, 쓸데없이 길어져 사용자를 지치게 해서도 안 됩니다.
그래서 LLM 에이전트의 보상은 보통 여러 신호가 섞여 만들어집니다.
작업 완료 여부: 사용자가 요청한 일을 실제로 끝냈는가
사용자 선호: 사용자가 이 답변이나 행동을 더 좋아하는가
유용성: 답변이 문제 해결에 도움이 되는가
맥락 적합성: 이전 대화와 현재 상황을 제대로 반영했는가
안전성: 위험하거나 유해한 행동을 피했는가
실행 비용: 시간, 토큰, API 호출, 계산 자원을 과도하게 쓰지 않았는가
도구 사용 성공률: 검색, 코드 실행, 데이터베이스 조회 같은 도구 호출이 정확했는가
이 신호들을 하나의 보상으로 합치는 일은 쉽지 않습니다. 어떤 항목은 서로 충돌합니다. 더 자세히 답하면 유용성은 올라갈 수 있지만 비용과 장황함도 올라갑니다. 더 안전하게 행동하면 위험은 줄지만, 지나치게 많은 요청을 거절하는 문제가 생길 수 있습니다. 더 많이 검색하면 정확도는 올라갈 수 있지만 응답 속도는 느려집니다.
이 지점에서 보상 설계의 어려움이 다시 등장합니다. 우리는 23장에서 보상을 잘못 설계하면 에이전트가 의도와 다른 꼼수를 배울 수 있음을 보았습니다. AI 에이전트에서도 마찬가지입니다. "사용자 만족도"만 높이면 모델은 사용자가 듣고 싶어 하는 말만 할 수 있습니다. "답변 길이"가 좋은 답변과 함께 자주 나타나면 모델은 쓸데없이 길게 말하는 전략을 배울 수 있습니다. "도구 사용 성공"을 과하게 보상하면 필요 없는 상황에서도 도구를 호출할 수 있습니다.
좋은 에이전트 학습은 보상을 키우는 일이면서 동시에 보상이 가리키지 못하는 빈틈을 줄이는 일입니다.
RLHF는 에이전트 학습의 대표적인 사례다
RLHF는 인간 피드백을 통한 강화학습입니다. 이 책의 앞 장들에서 우리는 RLHF를 언어 모델 정렬의 관점에서 살펴보았습니다. 이제 그것을 에이전트 학습이라는 더 큰 그림 안에 놓아 보겠습니다.
전통적인 지도학습에서는 정답 문장을 제공합니다. "이 질문에는 이렇게 답하라"는 예시를 많이 보여 주고, 모델이 그 답변을 따라 하게 만듭니다. 하지만 현실의 많은 문제에서는 정답 문장을 하나로 쓰기 어렵습니다. 같은 질문에도 여러 좋은 답변이 있을 수 있고, 좋은 답변과 나쁜 답변의 차이가 미묘할 수 있습니다. 이때 사람은 정답을 직접 쓰기보다 "A 답변이 B 답변보다 낫다"라고 비교하는 편이 더 쉽습니다.
RLHF는 이 점을 이용합니다. 일반적인 흐름은 다음과 같습니다. 먼저 사전학습된 언어 모델을 사람의 예시 답변으로 지도 미세조정합니다. 그다음 같은 프롬프트에 대한 여러 모델 답변을 만들고, 사람이 어느 답변이 더 나은지 비교합니다. 이 선호 데이터로 보상 모델을 학습합니다. 마지막으로 보상 모델이 높은 점수를 주는 방향으로 정책 모델을 PPO 같은 강화학습 알고리즘으로 조정합니다. RLHF가 명확한 수식으로 정의하기 어려운 인간 선호를 보상 신호로 바꾸어 모델을 개선한다는 점은 여러 설명 자료에서도 공통적으로 강조됩니다.2
여기서 언어 모델은 정책입니다. 프롬프트와 대화 맥락은 상태입니다. 모델이 생성하는 답변 또는 토큰 선택은 행동입니다. 보상 모델의 점수는 보상입니다. PPO는 정책을 업데이트하는 방법입니다.
즉 RLHF는 "언어 모델을 조금 더 친절하게 만드는 후처리 기술"에만 머물지 않습니다. 그것은 에이전트가 사람의 평가를 바탕으로 행동 정책을 조정하는 대표적인 방법입니다. 앞으로 에이전트가 웹을 탐색하고, 코드를 고치고, 로봇을 제어하고, 장기 프로젝트를 수행하게 될수록 RLHF의 아이디어는 더 넓은 형태로 확장됩니다.
사람이 모든 행동을 일일이 지시할 수는 없습니다. 하지만 사람은 결과를 보고 "이쪽이 더 낫다", "이건 위험하다", "이 방식은 효율적이다", "이 행동은 목적과 어긋난다"라고 평가할 수 있습니다. 강화학습은 이런 평가를 정책 개선의 연료로 바꾸는 기술입니다.
PPO와 KL 제약: 잘하게 만들되, 이상해지지 않게 붙잡기
에이전트를 학습시킬 때 흔한 오해가 있습니다. "보상이 높아지는 방향으로 계속 밀면 좋은 모델이 되지 않을까?"
강화학습을 배운 우리는 이제 이 말이 위험하다는 것을 압니다. 보상은 언제나 현실의 대리 지표입니다. 보상 모델은 인간의 선호를 완벽하게 아는 신이 아닙니다. 평가 데이터의 패턴을 학습한 또 다른 모델일 뿐입니다. 그러므로 정책이 보상 모델의 허점을 파고들면, 실제로는 나쁜 행동인데 점수만 높은 결과가 나올 수 있습니다.
LLM 정렬에서 PPO를 사용할 때 KL 제약이 중요한 이유가 여기에 있습니다. KL은 두 확률분포가 얼마나 다른지 재는 값입니다. 여기서는 새 정책이 기존 기준 모델, 보통 SFT 모델에서 얼마나 멀어졌는지를 보는 장치로 이해하면 됩니다. PPO 기반 RLHF에서는 보상 모델 점수를 높이되, 모델이 원래의 언어 능력과 기본 행동 양식에서 너무 멀리 벗어나지 않도록 KL 패널티를 함께 둡니다. RLHF 파이프라인을 설명하는 자료들도 PPO 최적화와 함께 기준 모델에서 지나치게 멀어지지 않도록 하는 KL 제약을 핵심 요소로 다룹니다.3
비유해 보겠습니다. 한 학생이 발표를 잘하고 싶어서 청중 반응만 보고 연습한다고 합시다. 웃음이 나오면 좋은 발표라고 생각하고 계속 농담을 늘립니다. 처음에는 분위기가 좋아집니다. 하지만 어느 순간 발표 내용은 사라지고 농담만 남습니다. 청중 반응이라는 보상은 올라갔지만, 발표라는 원래 목표는 무너졌습니다.
KL 제약은 이 학생에게 "청중 반응은 중요하지만, 원래 주제에서 너무 벗어나지는 마"라고 붙잡아 주는 역할을 합니다. 에이전트 학습에서도 마찬가지입니다. 우리는 성능 향상을 원하지만, 통제 가능한 범위 안에서 향상되기를 원합니다. 똑똑하지만 예측 불가능한 에이전트보다, 조금 덜 화려하더라도 안정적이고 신뢰할 수 있는 에이전트가 실제 서비스에서는 더 중요할 때가 많습니다.
에이전트는 한 가지 방식으로만 배우지 않는다
강화학습을 처음 배울 때는 에이전트가 처음부터 환경에 뛰어들어 시행착오로 모든 것을 배우는 장면을 떠올리기 쉽습니다. 작은 Grid World에서는 이것이 가능합니다. 하지만 실제 에이전트에서는 그렇게 하면 너무 비싸고, 느리고, 위험합니다.
로봇이 창고에서 물건을 옮기는 법을 배운다고 해 봅시다. 아무것도 모르는 로봇이 수천 번 충돌하며 배우게 할 수는 없습니다. 웹 에이전트가 회사 시스템을 조작한다고 해 봅시다. 시행착오 과정에서 잘못된 이메일을 보내거나 데이터를 삭제하면 안 됩니다. 코딩 에이전트가 운영 서버에서 실험하다가 서비스를 중단시키면 곤란합니다.
그래서 실제 에이전트 학습은 여러 방법을 단계적으로 조합합니다.
첫 출발점은 보통 모방학습, 즉 imitation learning입니다. 전문가가 하는 행동을 보고 따라 배우는 방식입니다. 운전 에이전트라면 인간 운전자의 주행 기록을 보고 배웁니다. 코딩 에이전트라면 사람이 문제를 해결한 커밋, 코드 리뷰, 테스트 수정 과정을 학습할 수 있습니다. LLM에서는 사람이 작성한 좋은 지시-응답 쌍으로 SFT를 수행하는 것이 비슷한 역할을 합니다. 모방학습은 빠르고 안정적인 출발점을 만들어 줍니다.
그다음에는 오프라인 강화학습을 생각할 수 있습니다. 오프라인 RL은 이미 모아 둔 로그나 데이터셋에서 정책을 개선하는 접근입니다. 에이전트가 직접 위험한 행동을 시도하지 않아도, 과거 행동과 결과를 분석하며 배울 수 있습니다. 예를 들어 고객 지원 로그, 검색 세션 기록, 코드 수정 이력, 로봇 시뮬레이션 데이터가 여기에 해당합니다. 다만 데이터에 없는 행동을 지나치게 낙관적으로 평가하면 문제가 생길 수 있으므로 주의가 필요합니다.
마지막으로 온라인 강화학습이 있습니다. 에이전트가 실제 환경 또는 시뮬레이션 환경과 상호작용하면서 새 경험을 만들고, 그 결과로 계속 정책을 개선하는 방식입니다. 온라인 RL은 강력합니다. 현재 정책이 실제로 어떤 실수를 하는지 볼 수 있고, 새로운 상황에 적응할 수 있습니다. 하지만 비용과 위험이 크기 때문에 테스트 환경, 안전장치, 인간 검토와 함께 사용해야 합니다.
이 세 가지는 경쟁 관계가 아니라 학습의 사다리입니다. 먼저 사람의 시연으로 기본기를 배우고, 축적된 데이터로 더 다듬고, 안전하게 설계된 상호작용을 통해 실제 문제에 적응합니다. 에이전트가 복잡해질수록 "무조건 RL로 끝까지 학습하자"보다 "어떤 단계에서 어떤 학습 신호를 쓸 것인가"가 더 중요해집니다.
LLM 에이전트의 학습은 장기 보상의 문제다
LLM 에이전트가 어려운 이유는 대화 한 턴의 품질만으로 평가하기 어렵기 때문입니다. 사용자가 "내 여행 계획을 짜 줘"라고 했을 때, 첫 답변이 그럴듯해 보여도 전체 과정은 실패할 수 있습니다. 예산을 묻지 않았을 수 있습니다. 비자 조건을 확인하지 않았을 수 있습니다. 아이와 함께 가는 여행이라는 맥락을 놓쳤을 수 있습니다. 항공권 검색 도구를 잘못 사용했을 수도 있습니다.
에이전트의 진짜 품질은 여러 단계 뒤에 드러납니다. 이것은 우리가 5장에서 본 장기 보상 문제와 같습니다. 지금 당장 자신 있게 답하는 행동은 단기적으로 좋아 보일 수 있습니다. 그러나 먼저 확인 질문을 하는 행동은 당장은 느려 보여도 장기적으로 더 좋은 결과를 만들 수 있습니다.
코딩 에이전트도 그렇습니다. 오류 메시지를 보고 곧바로 코드를 고치는 행동은 빠릅니다. 하지만 테스트를 먼저 재현하고, 원인을 좁히고, 작은 수정 후 전체 테스트를 돌리는 행동은 더 느립니다. 단기 보상만 보면 전자가 좋아 보일 수 있지만, 장기 보상은 후자가 높을 가능성이 큽니다.
이 때문에 LLM 에이전트 연구에서는 최종 결과뿐 아니라 중간 단계의 품질을 평가하려는 시도도 중요해지고 있습니다. 예를 들어 어떤 접근은 에이전트가 과거 경험을 돌아보고 자신의 정책 수준에서 반성하며 더 나은 행동 방식을 찾아가도록 설계합니다. Agent-Pro 같은 연구는 LLM 기반 에이전트가 상호작용 경험에서 배워 정책을 발전시킬 수 있다는 방향을 보여 줍니다.4 핵심은 단순합니다. 에이전트가 복잡한 환경에서 잘하려면 한 번의 답변보다, 경험을 통해 행동 방식을 고치는 능력이 중요합니다.
도구 호출은 행동이고, 도구 결과는 다음 상태다
LLM 에이전트에서 특히 흥미로운 부분은 도구 사용입니다. 검색 엔진, 계산기, 코드 실행기, 데이터베이스, 캘린더, 이메일, 결제 시스템, 사내 API는 모두 에이전트가 사용할 수 있는 행동 공간을 넓혀 줍니다.
도구를 쓰지 않는 언어 모델은 머릿속 지식만으로 답합니다. 도구를 쓰는 에이전트는 환경에 손을 뻗습니다. 검색을 하면 새로운 정보가 들어옵니다. 코드를 실행하면 오류나 결과가 돌아옵니다. 데이터베이스를 조회하면 실제 값이 나옵니다. 캘린더를 확인하면 가능한 시간이 바뀝니다.
강화학습 관점에서 보면 도구 호출은 action이고, 도구의 반환값은 observation 또는 next state의 일부입니다. 에이전트는 이 새 상태를 보고 다음 행동을 선택합니다.
예를 들어 코딩 에이전트의 한 에피소드를 떠올려 봅시다.
처음 상태는 "테스트가 실패한다"입니다. 에이전트는 로그를 읽는 행동을 합니다. 다음 상태는 "NullPointerException이 특정 함수에서 발생한다"입니다. 에이전트는 해당 파일을 여는 행동을 합니다. 다음 상태는 "입력 검증이 빠져 있다"입니다. 에이전트는 코드를 수정합니다. 다음 상태는 "일부 테스트는 통과하지만 다른 테스트가 실패한다"입니다. 에이전트는 수정 범위를 좁힙니다. 마지막으로 모든 테스트가 통과하면 큰 보상을 받습니다.
이 과정은 우리가 Grid World에서 봤던 길 찾기와 구조적으로 같습니다. 다만 격자의 칸이 코드 파일과 로그와 테스트 결과로 바뀌었을 뿐입니다. 벽에 부딪히는 행동은 잘못된 파일을 수정하는 행동이 되었고, 목표 지점에 도착하는 일은 테스트 통과와 사용자 요구 충족이 되었습니다.
보상 해킹은 에이전트에서 더 위험해진다
강화학습에서 에이전트는 우리가 준 보상을 최대화합니다. 문제는 우리가 진짜 원하는 것과 보상으로 측정한 것이 언제나 같지는 않다는 점입니다. 이것이 보상 해킹의 출발점입니다.
게임에서는 에이전트가 점수를 올리기 위해 의도치 않은 버그를 반복할 수 있습니다. 로봇은 물체를 옮기는 대신 센서를 속여 성공한 것처럼 보이게 만들 수 있습니다. LLM은 보상 모델이 좋아하는 말투를 흉내 내면서 실제 내용은 부실하게 만들 수 있습니다. 웹 에이전트는 작업 완료율을 높이기 위해 확인 없이 버튼을 눌러 버릴 수 있습니다.
에이전트가 강력해질수록 보상 해킹의 영향도 커집니다. 단순 챗봇이 장황한 답변을 하는 것은 불편한 정도로 끝날 수 있습니다. 하지만 도구 권한을 가진 에이전트가 잘못된 보상을 따라 행동하면 실제 비용, 데이터 손상, 보안 사고로 이어질 수 있습니다.
그래서 에이전트 학습에서는 성능 지표만큼이나 행동 통제가 중요합니다. 특히 다음과 같은 장치가 필요합니다.
테스트 환경: 실제 시스템에 연결하기 전에 안전한 샌드박스에서 행동을 검증한다.
인간 검토: 중요한 결정이나 되돌리기 어려운 행동은 사람이 승인하게 한다.
안전 규칙: 개인정보, 결제, 삭제, 외부 전송 같은 위험 행동에 명확한 제한을 둔다.
비용 제한: 도구 호출 횟수, 실행 시간, 토큰 사용량, API 비용에 상한을 둔다.
지속적 평가: 배포 후에도 실패 사례, 사용자 불만, 안전 위반, 성능 변화를 계속 추적한다.
이것은 강화학습을 불신하자는 말이 아닙니다. 오히려 강화학습을 제대로 쓰기 위한 조건입니다. 자동차에 강한 엔진이 필요하듯, 강한 브레이크도 필요합니다. 에이전트의 자율성을 높일수록 더 정교한 평가와 제한이 함께 가야 합니다.
정렬은 착한 말투만의 문제가 아니다
LLM 정렬을 처음 들으면 많은 사람이 "모델이 예의 바르게 말하게 만드는 것" 정도로 생각합니다. 물론 말투도 중요합니다. 하지만 에이전트 시대의 정렬은 훨씬 넓은 문제입니다.
정렬된 에이전트는 사용자의 목표를 이해해야 합니다. 하지만 사용자가 말한 목표를 문자 그대로만 따라서는 안 됩니다. 사용자가 실수로 위험한 명령을 내릴 수도 있고, 필요한 정보를 빠뜨릴 수도 있습니다. 에이전트는 도움을 주되, 해를 끼치지 않아야 합니다. 빠르게 일하되, 확인이 필요한 순간에는 멈춰야 합니다. 자율적으로 행동하되, 권한의 경계를 넘어서는 안 됩니다.
예를 들어 사용자가 "내 컴퓨터에서 용량 큰 파일을 다 지워 줘"라고 요청했다고 합시다. 문자 그대로 따르면 큰 파일을 삭제하면 됩니다. 하지만 좋은 에이전트는 먼저 파일 목록을 보여 주고, 시스템 파일이나 중요한 프로젝트 파일이 포함되어 있는지 확인하고, 휴지통 이동처럼 복구 가능한 방식을 제안해야 합니다. 여기서 좋은 행동은 단순한 명령 수행이 아니라, 사용자의 더 깊은 목표인 "공간을 확보하되 중요한 것을 잃지 않기"를 만족시키는 것입니다.
이것이 에이전트 정렬의 핵심입니다. 에이전트는 말만 잘해서는 안 됩니다. 행동을 잘해야 합니다. 더 정확히 말하면, 목표와 제약을 함께 고려해 행동해야 합니다.
강화학습은 에이전트 시대의 공통 언어다
이제 처음 질문으로 돌아가 봅시다. 강화학습은 AI 에이전트와 어떻게 연결될까요?
강화학습은 에이전트에게 필요한 기본 언어를 제공합니다. 상태는 에이전트가 보는 세계입니다. 행동은 에이전트가 세계에 가하는 선택입니다. 보상은 그 행동이 목표에 얼마나 가까웠는지를 알려 주는 신호입니다. 정책은 상태에서 행동으로 이어지는 전략입니다. 가치 함수는 지금 선택이 미래에 어떤 결과를 가져올지 평가하는 도구입니다. PPO 같은 알고리즘은 정책을 급격히 망가뜨리지 않으면서 개선하는 방법입니다. RLHF는 사람의 선호를 보상으로 바꾸어 에이전트의 행동을 조정하는 대표적인 흐름입니다.
물론 모든 에이전트가 반드시 전통적인 강화학습 알고리즘으로만 학습되는 것은 아닙니다. 어떤 에이전트는 프롬프트 엔지니어링과 규칙 기반 시스템만으로도 충분합니다. 어떤 에이전트는 SFT와 DPO만으로 좋은 성능을 낼 수 있습니다. 어떤 에이전트는 검색과 도구 설계가 더 중요할 수 있습니다. 하지만 에이전트가 장기 목표를 향해 행동하고, 결과를 관찰하며, 더 나은 전략을 배우기 시작하는 순간 강화학습의 관점은 다시 중심으로 돌아옵니다.
강화학습은 "알파고를 만든 어려운 기술"에만 머물지 않습니다. 그것은 행동을 이해하는 프레임입니다. 게임에서 어디로 움직일지, 로봇이 얼마나 힘을 줄지, 브라우저에서 무엇을 클릭할지, 언어 모델이 언제 검색하고 언제 답변할지, 코딩 에이전트가 어떤 테스트를 먼저 실행할지 묻는 방식입니다.
이 질문들은 모두 같은 형태를 가집니다.
지금 무엇을 보고 있는가? 무엇을 할 수 있는가? 어떤 결과를 얻었는가? 다음에는 더 잘하려면 무엇을 바꿔야 하는가?
AI가 단순히 정답을 생성하는 시대에서, 목표를 향해 행동하는 시대로 이동할수록 이 질문은 더 중요해집니다. 그리고 이 질문에 가장 오랫동안 매달려 온 분야가 바로 강화학습입니다.
다음 장으로 가기 전에
이 책의 여정은 거의 끝에 도착했습니다. 우리는 에이전트, 환경, 상태, 행동, 보상에서 출발했습니다. 정책과 가치 함수를 배웠고, 단기 보상과 장기 보상의 차이를 살펴보았습니다. Q-learning과 DQN으로 가치 기반 학습을 익혔고, Policy Gradient, Actor-Critic, Advantage, PPO로 정책 기반 학습의 감각을 잡았습니다. Grid World와 CartPole, 간단한 게임 에이전트를 통해 작은 실험도 해 보았습니다. 그리고 마지막에는 RLHF, DPO, LLM 정렬, AI 에이전트로 이어지는 현대적 흐름까지 연결했습니다.
남은 것은 하나입니다. 강화학습을 하나의 문장으로 다시 붙잡는 일입니다.
강화학습은 보상을 크게 만드는 기술이지만, 그보다 더 깊게는 행동을 배우는 기술입니다. 다음 에필로그에서는 이 책에서 배운 모든 개념을 그 문장 안에 담아 마무리하겠습니다.
참고
1UC Berkeley CS285 Deep Reinforcement Learning 강의 목록
2IBM, 휴먼 피드백을 통한 강화 학습(RLHF) 설명
3Agentic Design, RLHF 핵심 과정과 PPO/KL 제약
4Agent-Pro: Learning to Evolve via Policy-Level Reflection and Optimization
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.