코딩 에이전트가 왜 실패했는지를 모델 심사에게 글로 받아 내 시스템 프롬프트에 규칙으로 쌓는 방식. 벤치마크 예시 150개만으로 한쪽은 5, 다른 쪽은 15만큼 해결률이 올랐다는 실험과, 모델을 바꾸지도 다시 학습시키지도 않았다는 조건이 나옴. 강화학습이 점수 하나만 받는 데 비해 이 방식은 이유까지 받는다는 빗댐, 그리고 비슷한 최적화 도구보다 훨씬 적게 돌고도 됐다는 비교까지 담김.
한줄 코멘트. 같은 실패에서 점수 하나만 건질 것인가, 문장 한 단락을 건질 것인가가 이 발표의 전부다. 뒤쪽이면 예시가 적어도 된다는 것이 주장이고, 실제로 150개로 올렸다고 말한다. 다만 올랐다는 그 수가 퍼센트인지 퍼센트포인트인지 밝히지 않는다.
발표자가 자막 안에서 자기 이름을 대지 않는다.
여는 말은 이렇다. 앞선 코딩 모델에는 관심이 쏠리는데 그것을 쓰는 쪽이 시스템 프롬프트에 붓는 시간은 잘 안 보인다는 것이다.
한동안 화제였던 유출 사례를 든다. 어느 코딩 도구의 시스템 프롬프트가 통째로 돌아다닌 일이다. 그러면서 그 뒤로 바뀌었을 것이라고 덧붙인다.
여러 도구의 것을 나란히 놓고 보인 뒤 짚는다. 이것들은 붙박이가 아니라 계속 고쳐 쓰는 물건이다.
이 되풀이에 이름을 붙인 사람이 있다며 그 말을 가져온다. 사람이 배우는 것과 닮았다는 것이다 — 영어로 된 되먹임을 받아서 다음에 무엇을 달리할지 정한다. 기억을 잃는 사람이 적어 두고 그것으로 다음 날을 사는 영화에 빗댄다.
점수만 받을 때와 이유까지 받을 때
틀린 뒤에 무엇을 돌려받나
설명하려고 강화학습과 나란히 놓는다.
강화학습 쪽 학생은 점수 하나만 받는다. 70점이라는 수를 들고 거의 눈감은 채 다음 시험을 나아지게 해야 한다. 그래서 표본을 많이 써야 하고 자료가 많이 든다.
이쪽 학생은 점수와 함께 왜 맞았고 무엇을 놓쳤는지를 글로 받는다.
여기서 실무로 이어지는 자리가 있다. 코딩 도구마다 규칙을 덧붙일 파일이 있고 처음에는 비어 있다. 그 빈 자리에 배운 것을 쌓겠다는 것이다.
규칙이 쌓이는 네 걸음
조건부터 밝힌다. 다시 학습시키지도 않았고 모델을 바꾸지도 않았다. 건드린 것은 시스템 프롬프트뿐이다.
먼저 규칙이 빈 상태로 소프트웨어 문제를 준다. 에이전트가 고친 것을 내놓으면 시험을 돌린다.
셋째 걸음이 이 발표의 갈림점이다. 시험 결과를 모델 심사에 넘기되, 통과했나 여부만이 아니라 왜 어긋났는지 설명을 함께 받는다. 넣는 것은 문제 설명과 에이전트가 낸 답과 시험이다.
그다음 원래 시스템 프롬프트와 빈 규칙과 그 설명을 한 덩어리 *메타 프롬프트에 넣어 붙일 규칙을 만들게 한다. 규칙이 없던 것과 붙은 것을 나란히 놓고 견준다.
그러고 새 프롬프트를 단 채로 벤치마크 전체를 다시 돌린다.
발표가 댄 수
| 무엇 | 값 |
|---|---|
| 규칙 없는 상태, 한쪽 도구 | 깃허브 이슈의 30% 남짓 해결 |
| 규칙 없는 상태, 다른 도구 | 40% 남짓 해결 |
| 쓴 예시 | 150개 |
| 규칙을 붙인 뒤 | 한쪽은 5만큼, 다른 쪽은 15만큼 더 |
발표자가 힘주는 대목은 예시가 150개뿐이었다는 것이다. 그것도 가장 센 코딩 에이전트들을 두고 한 일이라는 것이다.
프롬프트를 손봐 주는 다른 도구와도 견줬다고 말한다. 영어 되먹임을 프롬프트 안에서 쓴다는 점에서 바탕이 거의 같다고 인정한다.
갈린 것은 횟수다. 그쪽은 훨씬 많은 되풀이가 필요했고 이쪽은 그 일부만으로 됐다.
그러면서 무엇이 달랐는지를 스스로 댄다. 평가와 평가 프롬프트를 만들고 다듬는 데 시간을 많이 썼다는 것이다. 에이전트에게 정말 좋은 설명을 돌려주는 것이 되게 하는 데 결정적이었다고 말한다.
올랐다는 수의 단위가 없다. 5와 15가 퍼센트인지 퍼센트포인트인지 밝히지 않는다. 30%와 40%에서 출발했으니 어느 쪽이냐에 따라 뜻이 크게 갈린다.
여러 번 돌린 값인지가 없다. 한 번 돌려 얻은 값인지 여러 번의 평균인지가 나오지 않는다. 에이전트는 매번 다르게 도는데 그 폭이 없다.
150개를 어떻게 골랐는지 없다. 그 150개가 다시 돌린 전체와 겹치는지도 밝히지 않는다. 겹친다면 자기가 배운 문제로 자기를 잰 것이 된다.
붙은 규칙의 알맹이가 없다. 무엇을 배웠는지 한 줄도 안 보여 준다.
견준 도구의 값이 없다. 그쪽이 몇 번 돌았고 이쪽이 몇 번이었는지가 없다. 「훨씬 많이」와 「그 일부」뿐이다.
한계를 스스로 밝히지 않는다. 안 된 자리도, 되레 나빠진 자리도 나오지 않는다.
자막이 이름을 크게 뭉갠다. 도구와 사람과 견준 도구의 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.
용어