시그널의 해상도: 스칼라 하나에서 토큰별 방향으로
스텝마다 보상을 매겨도 그 보상은 "좋았다/나빴다"의 숫자 하나다. 그런데 에이전트가 행동할 때마다 돌아오는 사용자의 답장이나 터미널 에러에는 그보다 훨씬 많은 정보가 들어 있다. 이것을 버리지 않고 학습에 쓸 수 있을까?
쓰면서 배운다 — OpenClaw-RL
OpenClaw-RL(Wang et al., “OpenClaw-RL: Train Any Agent Simply by Talking”, arXiv:2603.10165, 2026년 3월)은 이 물음을 가장 정면으로 다룬다. 출발점은 관찰 하나다: 에이전트가 행동할 때마다 다음 상태가 생긴다. 사용자의 답장, 도구 출력, 터미널 에러, GUI 화면 변화 — 모두 방금 행동에 대한 암묵적 평가인데, 기존 시스템은 이것을 다음 행동의 컨텍스트로만 쓰고 버렸다. OpenClaw-RL은 여기서 두 가지 시그널을 뽑는다.
- 평가 시그널 → 스칼라 보상. "사용자가 다시 물었다"면 이전 답이 불만족스러웠다는 뜻이다. PRM(과정 보상 모델 — 스텝마다 점수를 매기는 모델) 심사 모델이 스텝마다 보상을 매겨 밀집 보상(스텝마다 받는 보상)을 만든다. 결과 보상에 과정 보상을 더하면 결과 보상만 쓸 때보다 좋았다.
- 방향 시그널 → 토큰 단위 교정. "파일을 먼저 확인했어야지"는 "나빴다"보다 많은 정보를 담는다 — 무엇이 달라져야 했는지. 이 피드백에서 힌트를 뽑아 원래 프롬프트에 붙인 "사후 강화 컨텍스트"를 만들고, 같은 모델이 힌트를 보고 낸 토큰 분포(교사)와 힌트 없이 낸 분포(학생)의 로그확률 차이를 토큰별 어드밴티지로 쓴다(Hindsight-Guided On-Policy Distillation, OPD). 정답을 본 자기 자신을 교사로 쓰는 갈래를, 정답 대신 사용자의 한마디로 한 것이다.
시스템은 정책 서빙(사용자 요청에 답하도록 모델을 띄워 두기), 환경, PRM 심사, 학습의 네 루프로 분리되어 서로 기다리지 않고 따로 돈다. 서빙을 멈추지 않고 파라미터를 갱신하므로, 온라인 학습의 어려움 중 하나인 "정책을 계속 갱신해야 한다"를 인프라로 푼 셈이다. 드리프트(정책이 조금씩 어긋나는 것)는 KL 벌점과, 위쪽 클립만 넓힌 비대칭 클리핑(Clip-Higher)으로 묶는다. 첫 판(2026년 3월)은 퍼스널 에이전트 실험에서 심사 모델이 매긴 개인화 점수가 0.17에서, 평가 시그널과 방향 시그널을 함께 쓴 갱신 16번 뒤 0.81로 올랐다고 보고했다.
숫자로 보는 토큰별 방향
에이전트가 「파일을 바로 고친다」라고 쓰고 설정 파일을 덮어썼다. 사용자가 「파일을 먼저 확인했어야지」라고 답했다. 이 답장에서 힌트를 뽑아 프롬프트 뒤에 붙이고, 같은 모델에게 방금 쓴 세 토큰의 확률을 다시 묻는다. 토큰마다의 어드밴티지는 힌트를 본 확률과 안 본 확률의 로그 차이다.
| 토큰 | 힌트 없이 (학생) | 힌트를 보고 (교사) | |
|---|---|---|---|
| 「파일을」 | 0.55 | 0.60 | +0.087 |
| 「바로」 | 0.50 | 0.05 | −2.303 |
| 「고친다」 | 0.70 | 0.40 | −0.560 |
확률은 설명을 위해 정한 예시다. 스칼라 보상이었다면 세 토큰이 같은 크기의 벌을 받았을 것이다. 토큰별 어드밴티지는 벌의 대부분을 「바로」에 몰고, 「파일을」은 오히려 조금 밀어 준다. 「먼저 확인했어야지」라는 말이 가리키던 곳이 정확히 「바로」였다.
해상도 스펙트럼
이 흐름을 시그널의 해상도로 보면 여러 알고리즘이 한 줄로 이어진다. DPO는 쌍 전체에 마진 하나(시퀀스 수준 스칼라), GRPO는 그룹 안의 상대 점수 하나(에피소드 수준 스칼라), PRM은 스텝마다 보상 하나, OPD는 토큰마다 방향 — "스칼라 보상 하나로는 무엇이 달라져야 하는지에 대한 정보를 버린다"는 문제에 대한 가장 직접적인 대답이다(아래 그림).
graph LR
subgraph resolution["시그널 해상도 스펙트럼"]
direction LR
DPO["<b>DPO</b><br/>시퀀스 수준<br/>스칼라 1개"] --> GRPO["<b>GRPO</b><br/>에피소드 수준<br/>그룹 상대"] --> PRM["<b>PRM</b><br/>스텝 수준<br/>매 행동 보상"] --> OPD["<b>OPD</b><br/>토큰 수준<br/>방향 시그널"]
end
class DPO m-red
class GRPO m-orange
class PRM m-green
class OPD m-blue
class OPD m-strong
해상도를 토큰까지 내리면, 궤적 수준의 점수 하나를 토큰들에게 어떻게 나눠 주는지도 따져야 한다. 궤적 길이가 제각각인 에이전트에서는 이 나눗셈 하나가 습관을 바꾼다. 원래 GRPO는 궤적마다 손실을 그 궤적의 토큰 수로 나눠 평균낸다. 2025년 3월 리우(Zichen Liu)와 동료들은 GRPO가 나누는 두 곳, 곧 길이로 나누기와 그룹 표준편차로 나누기가 학습에 의도하지 않은 편향을 넣는다고 짚고, 이 두 나눗셈을 고친 변형을 Dr. GRPO라 불렀다. 길이로 나누기가 에이전트에게 무엇을 가르치는지는 아래 문제에서 계산한다.
문제 9 — (킬러) 길게 틀리면 덜 혼난다
원래 GRPO는 응답마다 손실을 토큰 수

















정리 (가) 짧은 성공 +0.01, 긴 성공 +0.001, 짧은 실패 −0.01, 긴 실패 −0.001. (나) 긴 실패의 토큰이 가장 약하게 벌을 받는다(짧은 실패의 1/10). 궤적 총합은 모두
로 같지만 토큰별 몫이 다르다. 결과적으로 “틀릴 때는 길게” 쓰는 습관이 강화된다. (다) 상수 1000으로 나누면 토큰 하나는 네 궤적 모두 ±0.001, 궤적 총합은 짧은 궤적 ±0.1, 긴 궤적 ±1이다. 토큰마다 몫이 같으니 길게 써서 벌을 피할 수 없고 (나)의 습관이 사라진다. 에이전트 궤적은 길이 편차가 훨씬 커서 길이로 나눌 때의 편향이 증폭된다.