사람에게 검토를 부탁하려면 배경부터 적어 보내야 한다. advisor 는 그 단계가 없다. 인자 없이 부르면 지금까지 내가 한 일이 통째로 더 강한 모델에게 넘어가고, 놓친 곳을 짚은 답이 같은 턴 안에서 돌아온다. 이 페이지는 그 도구가 무엇을 해 주고, 언제 쓰면 이득이며, 무엇을 대가로 치르는지를 정리한다.
한 문장으로 줄이면 이렇다. 지금까지 내가 한 일을 더 강한 모델이 통째로 읽고, 놓친 곳을 짚어 준다. 사람에게 검토를 부탁할 때처럼 배경을 설명할 필요가 없다. 요청과 내가 부른 도구와 그 결과가 전부 그대로 넘어가기 때문이다. 아래 세 가지는 이 페이지를 만드는 동안 실제로 받은 지적이다.
제가 열어 보지 않고 넘긴 폴더가 있었다. 그걸 지목하며 거기부터 보라고 했다. 실제로 그 안에 이 도구의 호출이 어떤 형태로 저장되는지가 들어 있었다. 저 혼자였으면 며칠 뒤에나 알았을 것이다.
변경 기록에서 읽은 내용을 제가 사실처럼 적어 놓았다. 어디서 온 말인지 본문에 밝히라고 했다. 그래서 "변경 기록에 적혀 있다"는 한 구절이 들어갔고, 직접 확인한 것과 읽어서 안 것이 갈라졌다.
같은 대비 표현이 한 글에 세 번 나온 것을 잡았다. 영어판 제목이 두 조각으로 나뉘어 어색하게 이어지는 것도 짚었다. 코드가 아니라 문장을 본 지적이다.
돌아오는 것은 고쳐 준 결과물이 아니라 지적의 목록이다. 무엇이 문제이고 어디를 보라는 말이 항목별로 들어 있다. 파일을 대신 고쳐 주지는 않는다. 읽고 반영할지 말지는 내가 정한다. 그래서 사용자에게 가는 글에도 조언 원문은 실리지 않는다. 이 페이지에 남은 것은 그 지적을 받아 제가 고친 결과뿐이다.
이 도구에는 넘길 인자가 없다. 무엇을 물을지 고르는 단계 자체가 없다는 뜻이다. 부르는 순간 지금까지의 대화가 통째로 리뷰어에게 넘어가고, 돌아온 답은 같은 턴 안에서 도구 결과로 대화에 끼어든다. 아래 그림이 그 한 번의 왕복 전체다.
이득은 부르는 시점에 달려 있다. 방향이 아직 굳지 않았을 때가 가장 크다. 그때는 지적 하나가 작업 전체의 방향을 바꿀 수 있다. 코드를 다 쓴 뒤에 물으면 늦다. 그때는 조언이 방향까지 되돌리지 못하고 결과물만 손볼 수 있기 때문이다. 짧고 즉각적인 일에는 득이 거의 없다.
묻는 데는 시간이 걸린다. 그 사이에 대화가 끊기면 저장해 둔 것만 남는다. 그래서 완료 직전 호출은 결과물을 파일로 남긴 뒤에 한다. 짧고 즉각적인 일에는 매번 부르지 않는다. 방금 읽은 도구 출력이 다음에 할 일을 이미 정해 주는 상황이라면, 물어서 얻을 것이 별로 없다.
다른 모델에게 일을 맡기는 방법은 원래도 있었다. 서브에이전트라고 부르는, 별도의 대화를 새로 띄워 심부름을 시키는 방식이다. advisor 가 그것과 갈라지는 지점은 딱 하나다. 브리핑을 하지 않는다는 것.
"필요한 걸 적어서 보낸다"
"적어 보낼 것이 없다"
| 항목 | 서브에이전트 | advisor |
|---|---|---|
| 넘기는 정보 | 프롬프트에 적은 것만 | 대화 전체 — 고를 수 없다 |
| 호출 인자 | 무엇을 할지 반드시 적는다 | 없다 |
| 할 수 있는 일 | 파일 수정·명령 실행 | 조언만 돌려준다 |
| 모델 선택 | 부를 때마다 고를 수 있다 | 세션에 하나로 고정된다 |
| 결과가 오는 때 | 배경에서 돌다가 끝나면 알린다 | 같은 턴 안에서 바로 |
| 대화 창 부담 | 아껴 준다 — 요약만 돌아온다 | 늘린다 — 주고받은 것이 그대로 남는다 |
서브에이전트를 쓰는 이유는 보통 대화 창을 아끼기 위해서다. advisor 는 반대로 대화 창을 쓴다. 브리핑을 생략하는 대가로 대화 전체를 매번 실어 보내고, 돌아온 조언까지 이력에 남기기 때문이다. 이 비용이 실제로 문제가 된 적이 있다는 것이 다음 절의 변경 기록에 남아 있다.
이 도구를 다루는 자리는 여섯 군데다. 설정 파일에 한 줄, 터미널 명령 세 가지, 프로그램을 켤 때 붙이는 옵션 하나, 그리고 회사가 걸어 두는 모델 제한이다. 제한에 걸리면 나머지 다섯 개를 아무리 만져도 그 모델은 고를 수 없다.
| 자리 | 무엇을 하나 | 어디서 쓰나 |
|---|---|---|
advisorModel |
어느 모델에게 물을지 적어 둔다 | 설정 파일 settings.json |
/advisor |
고르는 창을 연다 — 일하는 도중에도 열린다 | 터미널 |
/advisor <model> |
창을 열지 않고 리뷰어를 바꾼다 | 터미널·앱·화면 없는 실행 |
/advisor off |
도구를 끈다 | 터미널·앱·화면 없는 실행 |
--advisor fable |
프로그램을 켤 때부터 리뷰어를 지정한다 | 실행 옵션 |
availableModels |
쓸 수 있는 모델을 제한한다 — 여기서 막히면 고를 수 없다 | 회사가 걸어 두는 설정 |
리뷰어로 Fable 계열 모델을 쓰려면 사용료 동의를 먼저 받아야 한다고 변경 기록에 적혀 있다. 이 동의는 /model fable 로 받는데, 화면 없이 실행하면서 동의를 요구하면 이미 닫힌 창에서 명령을 치라는 안내가 나오던 문제도 같은 기록에 남아 있다. 여기까지가 변경 기록에서 읽은 것이고, 직접 열어 확인한 것은 하나다. 이 컴퓨터의 설정 파일이 리뷰어를 Fable 5.1 로 지정해 두었고, 그 모델의 생각 깊이를 가장 높은 단계로 맞춰 두었다는 사실이다.
공짜가 아니다. 치르는 값은 두 가지다. 하나는 시간이다. 답이 올 때까지 기다려야 하고, 그동안 다른 일이 진행되지 않는다. 다른 하나는 대화 창이다. 대화 창이란 모델이 한 번에 기억할 수 있는 분량을 말한다. 보낸 내용과 돌아온 조언이 그 자리를 차지한다. 두 번째 값은 설명서에 안 적혀 있지만 고친 기록에서 읽을 수 있다.
| 고친 기록 | 무엇이 고장나 있었나 | 그래서 알 수 있는 것 |
|---|---|---|
| 2.1.273 | advisor 를 부른 자리를 실제의 두 배쯤으로 세어, 대화를 줄이는 작업이 창의 절반쯤에서 시작됐다 | 부른 자리가 대화 이력에 남고 창을 차지한다 |
| 2.1.265 | 도구를 쓸지와 그 설명서를 요청마다 그때그때 다시 정하던 것을 한 번만 정하도록 바꿨다 | 판단은 세션 단위로 한 번이고, 바뀌면 대화에 알린다 |
| 2.1.257 | 리뷰어가 정해진 세션은 요약·되짚기 같은 뒷작업에서 대화 전체를 매번 새로 보냈다 | 보내는 짐이 대화 전체라서, 다시 쓰기가 막히면 비용이 곧장 커진다 |
| 2.1.117 | 돌아온 내용을 처리하지 못해 모든 입력과 요약 명령이 막히던 상태가 있었다 | 조언은 대화에 끼워 넣는 도구 결과의 형태로 들어온다 |
이 페이지의 주장은 세 갈래에서 나왔다. 도구에 딸린 설명서, 이번에 실제로 한 번 불러 본 결과, 그리고 고친 기록에서 거꾸로 읽어 낸 것이다. 마지막 갈래는 추론이라 등급을 따로 적었다. 확인하지 못한 것도 그대로 남겼다.
| 주장 | 어디서 나왔나 | 등급 |
|---|---|---|
| 부를 때 넘길 인자가 없다 | 도구에 딸린 설명서 | 명시 |
| 대화 전체가 자동으로 넘어간다 | 설명서에 적혀 있고, 이번 호출에서도 확인됐다 | 직접 확인 |
| 조언이 같은 턴의 도구 결과로 돌아온다 | 이번 호출에서 그렇게 돌아왔다 | 직접 확인 |
| 리뷰어가 내가 지나친 자료까지 본다 | 내가 열지 않고 넘긴 파일을 짚어 줬다 | 직접 확인 |
| 이 컴퓨터의 리뷰어는 Fable 5.1 이다 | 설정 파일 settings.json 745번째 줄 |
직접 확인 |
| 부른 자리가 대화 창을 차지한다 | 창을 세는 계산을 고친 기록에서 거꾸로 읽었다 | 추론 |
| 도구를 쓸지는 세션마다 한 번 정해진다 | 그렇게 바꿨다는 고친 기록이 있다 | 추론 |
| 언제 처음 생긴 기능인가 | 변경 기록에 도입 항목이 없다 — 가장 이른 언급이 2.1.117 의 오류 수정이다 | 확인 못 함 |
이 컴퓨터에 남아 있는 지난 대화 기록 전체를 advisor_tool_result 기준으로 다시 셌다. 결과가 들어 있는 세션 파일은 한 개, 호출은 두 번이었고 둘 다 이 페이지를 만들면서 부른 것이다. 처음에는 이름이 advisor 인 보통 도구 호출을 찾는 방식으로 셌는데, 그 방식은 이 도구를 원리적으로 못 본다. 결론은 같았지만 근거는 틀린 방법으로 얻은 것이라 여기에 적어 둔다.