소프트웨어를 짜던 습관이 에이전트에서는 왜 발목을 잡는지 다섯 갈래로 짚음. 고객 상담 에이전트가 같은 프롬프트로 10번 중 1번만 성공하면 왜 못 쓰는지, 5분·15분씩 도는 에이전트가 중간에 깨졌을 때 왜 처음부터 다시 돌리면 안 되는지, 딜리트 아이템(delete item)처럼 사람에겐 뻔한 API가 왜 에이전트에겐 안 뻔한지가 구체적으로 나옴.
한줄 코멘트. 만드는 일의 모양이 직선에서 고리로 바뀌었다는 것이 이 발표의 틀이다. 구체적으로 걸리는 자리는 둘이다. 5분에서 15분씩 도는 에이전트가 중간에 깨졌을 때 처음부터 다시 돌리면 컴퓨트를 다시 쓰고 쌓인 맥락까지 잃는다. 그리고 사람에게 뻔해 보이는 API 이름이 에이전트에게는 안 뻔하다.
딥마인드에서 제미나이의 에이전트 쪽 일을 하는 사람이 발표한다. 엔지니어가 왜 에이전트 만드는 데서 막히는지를 10분 동안 다룬다.
깔고 가는 전제가 하나 있다. 소프트웨어를 짤 때는 입력 A를 넣으면 늘 C가 나온다고 가정했다. 에이전트는 *비결정적이라 그 가정이 깨진다.
그것이 왜 문제인지 예로 든 것이 상담 에이전트다. 같은 프롬프트가 열 번에 한 번만 되면 프로덕션에 올릴 것이 못 되고 계속 흔들린다.
만드는 일이 도는 모양
예전에 소프트웨어를 만드는 순서는 한 줄이었다. 명세를 쓰고, 코드를 짜고, 잘 도는지 시험을 만들고, 배포하고, 사용자가 썼다.
에이전트는 다르다. 무엇을 하길 바라는지 적고, 굴려 보고, 무엇을 하는지 지켜보고, 프롬프트나 도구를 손보고, 다시 굴린다. 지켜보는 일이 만드는 일 안으로 들어왔다.
발표가 든 다섯을 순서대로 옮긴다.
예전 방식과 갈리는 다섯 자리
| 차이 | 무슨 뜻인가 |
|---|---|
| 상태가 이제 글이다 | 구조를 갖춘 자료 대신 글이 상태를 들고 다닌다 |
| 통제를 넘겨준다 | 경로를 미리 다 짜지 않고 모델에게 맡긴다 |
| 오류도 입력이다 | 오류를 끝으로 보지 않고 다음 판의 재료로 넘긴다 |
| 단위 시험에서 평가로 | 맞았는지 단정하는 대신 얼마나 잘하는지 잰다 |
| 에이전트는 바뀌는데 API는 안 바뀐다 | 모델은 계속 좋아지는데 붙어 있는 API는 그대로다 |
옛 방식이 어땠는지도 예로 나온다. 사용자가 구독을 끊겠다고 하면 분류 모델이 의도를 가려내고, 미리 짜 둔 갈래로 보내 붙잡을지 끊을지를 정했다. 경로를 사람이 다 그려 둔 방식이다.
되살아나는 설계가 없으면 오래 도는 에이전트가 무너진다. 5분이나 15분 걸리는 에이전트가 중간에 깨졌을 때 처음부터 다시 돌리면, 앞 단계를 다시 밟느라 컴퓨트를 또 쓰고 그동안 쌓인 맥락까지 잃는다.
사람에게 뻔한 이름이 에이전트에게는 안 뻔하다. 백엔드를 만들어 본 사람에게 「항목 삭제」 같은 엔드포인트는 설명이 필요 없어 보인다. 그런데 에이전트는 코드도 못 보고 그 API를 만들며 쌓인 사정도 모른다. 함수 껍데기와 설명 몇 줄만 본다. 그래서 도구는 에이전트가 읽을 것을 전제로 다시 쓰여야 한다고 말한다.
발표가 닫으며 든 여섯
| 하라는 것 | 뜻 |
|---|---|
| 믿되 확인한다 | 맡기되 결과를 그대로 받지는 않는다 |
| 모델과 싸우지 않는다 | 억지로 눌러 고치려 들지 않는다 |
| 뜻을 지킨다 | 형식을 맞추다 의미를 잃지 않는다 |
| 되살아나게 설계한다 | 깨진 자리에서 이어 갈 수 있게 만든다 |
| 단정만 하지 말고 평가한다 | 맞고 틀림 대신 얼마나 잘하는지를 잰다 |
| 지울 것을 전제로 만든다 | 더 나은 모델이 오면 다시 만들 것이라 여긴다 |
마지막이 이 발표의 태도를 드러낸다. 발표자는 소프트웨어가 쓰고 버리는 것이 되었고 같은 것을 여러 번 다시 만들게 될 것이라고 말한다.
수치가 거의 없다. 열 번에 한 번이라는 말과 5분에서 15분이라는 시간이 나오지만, 둘 다 상황을 그리는 예이지 무엇을 잰 값이 아니다. 다섯 가지를 지켰을 때 무엇이 얼마나 나아지는지가 없다.
되살아나게 만드는 방법이 없다. 처음부터 다시 돌리면 안 된다는 지적까지는 또렷한데, 중간 상태를 어디에 어떻게 남겨 이어 붙이는지는 나오지 않는다.
에이전트가 읽을 도구를 어떻게 써야 하는지도 없다. 설명을 다시 쓰라는 말까지만 있고 무엇을 어떤 수준으로 적어야 하는지가 없다.
10분짜리 발표라 얕은 자리가 많다. 발표자도 코드 예제는 자기 블로그로 넘긴다.
용어