← AI Engineer
프롬프트 러닝 · 코딩 에이전트

예시 150개로 배우는 코딩 에이전트 — 시스템 프롬프트에 규칙을 쌓는다

코딩 에이전트가 왜 실패했는지를 모델 심사에게 글로 받아 내 시스템 프롬프트에 규칙으로 쌓는 방식. 벤치마크 예시 150개만으로 한쪽은 5, 다른 쪽은 15만큼 해결률이 올랐다는 실험과, 모델을 바꾸지도 다시 학습시키지도 않았다는 조건이 나옴. 강화학습이 점수 하나만 받는 데 비해 이 방식은 이유까지 받는다는 빗댐, 그리고 비슷한 최적화 도구보다 훨씬 적게 돌고도 됐다는 비교까지 담김.

Aparna Dhinakaran Arize발표 2025-12-2610분 40초AI Engineer

한줄 코멘트. 같은 실패에서 점수 하나만 건질 것인가, 문장 한 단락을 건질 것인가가 이 발표의 전부다. 뒤쪽이면 예시가 적어도 된다는 것이 주장이고, 실제로 150개로 올렸다고 말한다. 다만 올랐다는 그 수가 퍼센트인지 퍼센트포인트인지 밝히지 않는다.

1. 시스템 프롬프트에 시간이 많이 든다

발표자가 자막 안에서 자기 이름을 대지 않는다.

여는 말은 이렇다. 앞선 코딩 모델에는 관심이 쏠리는데 그것을 쓰는 쪽이 시스템 프롬프트에 붓는 시간은 잘 안 보인다는 것이다.

한동안 화제였던 유출 사례를 든다. 어느 코딩 도구의 시스템 프롬프트가 통째로 돌아다닌 일이다. 그러면서 그 뒤로 바뀌었을 것이라고 덧붙인다.

여러 도구의 것을 나란히 놓고 보인 뒤 짚는다. 이것들은 붙박이가 아니라 계속 고쳐 쓰는 물건이다.

이 되풀이에 이름을 붙인 사람이 있다며 그 말을 가져온다. 사람이 배우는 것과 닮았다는 것이다 — 영어로 된 되먹임을 받아서 다음에 무엇을 달리할지 정한다. 기억을 잃는 사람이 적어 두고 그것으로 다음 날을 사는 영화에 빗댄다.

2. 점수만 받을 때와 이유까지 받을 때

점수만 받을 때와 이유까지 받을 때

틀린 뒤에 무엇을 돌려받나

점수만 받는다70점이라는 수 하나무엇을 왜 틀렸는지는 없다눈감고 다음 시험을 본다
이유까지 받는다어디서 어긋났는지를 글로다음에 피할 것이 생긴다그것을 적어 두고 쓴다
발표가 든 빗댐이다. 같은 실패에서 뽑아 갈 수 있는 양이 수 하나와 문장 한 단락만큼 다르다는 것이 적은 예시로도 된다고 보는 근거다.

설명하려고 강화학습과 나란히 놓는다.

강화학습 쪽 학생은 점수 하나만 받는다. 70점이라는 수를 들고 거의 눈감은 채 다음 시험을 나아지게 해야 한다. 그래서 표본을 많이 써야 하고 자료가 많이 든다.

이쪽 학생은 점수와 함께 왜 맞았고 무엇을 놓쳤는지를 글로 받는다.

여기서 실무로 이어지는 자리가 있다. 코딩 도구마다 규칙을 덧붙일 파일이 있고 처음에는 비어 있다. 그 빈 자리에 배운 것을 쌓겠다는 것이다.

3. 실험이 어떻게 돌았나

규칙이 쌓이는 네 걸음

고치게 한다규칙 없는 상태로 문제를 준다
시험을 돌린다고친 것이 통과하나 본다
왜 틀렸나 적게 한다통과 여부만이 아니라 설명까지
규칙으로 붙인다그 설명을 프롬프트에 쌓는다
새 규칙을 단 채로 처음부터 다시 돌린다
갈린 자리는 셋째 칸이다. 맞았나 틀렸나만 받으면 붙일 규칙이 안 나온다 — 발표자도 이 심사 프롬프트를 다듬는 데 가장 오래 붙어 있었다고 말한다.

조건부터 밝힌다. 다시 학습시키지도 않았고 모델을 바꾸지도 않았다. 건드린 것은 시스템 프롬프트뿐이다.

먼저 규칙이 빈 상태로 소프트웨어 문제를 준다. 에이전트가 고친 것을 내놓으면 시험을 돌린다.

셋째 걸음이 이 발표의 갈림점이다. 시험 결과를 모델 심사에 넘기되, 통과했나 여부만이 아니라 왜 어긋났는지 설명을 함께 받는다. 넣는 것은 문제 설명과 에이전트가 낸 답과 시험이다.

그다음 원래 시스템 프롬프트와 빈 규칙과 그 설명을 한 덩어리 *메타 프롬프트에 넣어 붙일 규칙을 만들게 한다. 규칙이 없던 것과 붙은 것을 나란히 놓고 견준다.

그러고 새 프롬프트를 단 채로 벤치마크 전체를 다시 돌린다.

4. 결과

발표가 댄 수

무엇값
규칙 없는 상태, 한쪽 도구깃허브 이슈의 30% 남짓 해결
규칙 없는 상태, 다른 도구40% 남짓 해결
쓴 예시150개
규칙을 붙인 뒤한쪽은 5만큼, 다른 쪽은 15만큼 더

발표자가 힘주는 대목은 예시가 150개뿐이었다는 것이다. 그것도 가장 센 코딩 에이전트들을 두고 한 일이라는 것이다.

5. 비슷한 도구와 견주기

프롬프트를 손봐 주는 다른 도구와도 견줬다고 말한다. 영어 되먹임을 프롬프트 안에서 쓴다는 점에서 바탕이 거의 같다고 인정한다.

갈린 것은 횟수다. 그쪽은 훨씬 많은 되풀이가 필요했고 이쪽은 그 일부만으로 됐다.

그러면서 무엇이 달랐는지를 스스로 댄다. 평가와 평가 프롬프트를 만들고 다듬는 데 시간을 많이 썼다는 것이다. 에이전트에게 정말 좋은 설명을 돌려주는 것이 되게 하는 데 결정적이었다고 말한다.

6. 발표가 밝히지 않은 것

올랐다는 수의 단위가 없다. 5와 15가 퍼센트인지 퍼센트포인트인지 밝히지 않는다. 30%와 40%에서 출발했으니 어느 쪽이냐에 따라 뜻이 크게 갈린다.

여러 번 돌린 값인지가 없다. 한 번 돌려 얻은 값인지 여러 번의 평균인지가 나오지 않는다. 에이전트는 매번 다르게 도는데 그 폭이 없다.

150개를 어떻게 골랐는지 없다. 그 150개가 다시 돌린 전체와 겹치는지도 밝히지 않는다. 겹친다면 자기가 배운 문제로 자기를 잰 것이 된다.

붙은 규칙의 알맹이가 없다. 무엇을 배웠는지 한 줄도 안 보여 준다.

견준 도구의 값이 없다. 그쪽이 몇 번 돌았고 이쪽이 몇 번이었는지가 없다. 「훨씬 많이」와 「그 일부」뿐이다.

한계를 스스로 밝히지 않는다. 안 된 자리도, 되레 나빠진 자리도 나오지 않는다.

자막이 이름을 크게 뭉갠다. 도구와 사람과 견준 도구의 이름이 여러 군데 어긋나 있어 정확한 표기는 원문에서 갈린다.

용어

*메타 프롬프트
프롬프트를 만들어 내게 하려고 모델에 넣는 또 하나의 프롬프트