대화창에서 시키는 에이전트와 달리, 정해진 시각에 혼자 깨어나 일하고 결과만 남기는 에이전트가 있다. 장중 점검, 주간 정리 같은 일을 몇 개 맡겨 보니, 잘 돌아가게 하는 요령은 대화형과 꽤 달랐다. 핵심은 하나다. 예약 실행은 매번 아무 기억 없이 시작한다.
지침은 혼자서 완결돼야 한다
대화 중에는 "아까 그 파일"이라고 해도 통한다. 예약 실행에는 "아까"가 없다. 지침서에 다음이 모두 들어 있어야 한다.
- 어디서 일하는가: 작업 폴더, 접속할 서버, 읽을 파일의 정확한 경로.
- 먼저 무엇을 읽는가: 프로젝트 메모, 규칙 문서. 지침서에 규칙을 전부 복사하지 말고 정본 파일을 가리킨다. 규칙을 고칠 때 한 곳만 고치면 된다.
- 무엇을 하면 끝인가: 완료 조건. 없으면 일이 끝없이 커지거나 너무 일찍 끝난다.
금지 사항은 목록으로
사람이 지켜보지 않는 실행에서는 "해도 되는 일"보다 "하면 안 되는 일"을 구체적으로 적는 것이 중요했다.
- 조회만 하는 작업이면 "설정 변경, 재시작, 주문, 삭제를 하지 않는다"를 명시한다.
- 읽어도 되는 범위를 정한다. "이 폴더 밖은 수정하지 않는다", "비밀 값이 든 파일은 열지 않는다".
- 검사를 우회하지 못하게 한다. 자동 검사에 걸렸을 때 에이전트가 택할 수 있는 가장 쉬운 길은 검사기를 고치는 것이다. "걸리면 결과물을 고친다. 검사 규칙은 건드리지 않는다"를 적어 둔다.
상태는 파일에 남긴다
지난번에 무엇을 했는지 알아야 하는 작업이라면 장부 파일을 둔다. 실행할 때마다 장부를 읽고, 끝나면 한 줄 추가한다. 이것이 예약 에이전트의 유일한 기억이다. 장부가 없으면 같은 일을 반복하거나, 같은 주제를 두 번 다룬다.
애매하면 멈추게 한다
사람이 옆에 있으면 물어보면 된다. 예약 실행에서는 물을 사람이 없으니 기본 행동을 정해 줘야 한다. 내 기준은 이렇다.
- 되돌릴 수 있는 일은 진행하고 보고한다.
- 되돌릴 수 없거나 밖으로 나가는 일은, 조금이라도 애매하면 하지 않고 "왜 하지 않았는지"를 보고한다.
- 인증 만료 같은 오류는 재시도하지 않는다. 사람이 풀어야 하는 문제를 에이전트가 반복해서 두드리면 계정이 잠길 수 있다.
보고 형식을 정한다
결과 보고는 내가 30초 안에 읽을 수 있어야 한다. "무엇을 했는지 한 줄, 근거 한 줄, 하지 못한 것과 이유"로 형식을 정해 주면 매번 같은 자리에서 같은 정보를 찾을 수 있다. 민감한 값은 보고에 쓰지 말고 "어느 파일 몇 번째 줄"로만 가리키게 한다.
운영하면서 겪은 것
- 첫 실행은 직접 지켜본다. 권한 승인이 필요한 도구가 있으면 첫 실행에서 멈춘다. 한 번 수동으로 돌려 승인해 두지 않으면 예약 시각에 조용히 멈춰 있다.
- 기기가 꺼져 있으면 돌지 않는다. 내 PC 에서 도는 예약 작업은 그 시각에 앱이 꺼져 있으면 다음에 켤 때 실행된다. 시각이 중요한 작업이라면 서버에서 돌리는 방식을 택해야 한다.
- 한도를 나눠 쓴다는 것을 기억한다. 예약 작업이 쓰는 API 한도는 내가 낮에 시험하며 쓰는 한도와 같은 주머니다. 낮에 시험을 많이 돌린 날 저녁 작업이 한도 초과로 실패한 적이 있다.
- 한 번 쓰고 끝나는 작업은 일회성으로 등록한다. 반복 일정으로 걸어 두고 잊으면 의미 없는 실행이 계속 쌓인다.
정리
예약 에이전트의 지침서는 프롬프트라기보다 야간 근무자에게 남기는 인수인계서에 가깝다. 어디서 무엇을 보고, 무엇은 절대 건드리지 말고, 애매하면 어떻게 하고, 아침에 무엇을 보고할지. 그것만 잘 쓰면 모델의 성능 차이보다 훨씬 큰 차이가 났다.
댓글 없음:
댓글 쓰기