Codex 전용 방구석 헤르메스
방구석 개발자라 항상 토큰이 부족합니다.
헤르메스 방식을 가동하는 것도 부담스러워요.
토큰이 부족한데 Codex가 병신짓하는 걸 조금이라도 줄이려고 별짓을 다 해보다가 최근 쓸만한 상태가 된 방법을 하나 공유합니다. MCP 패키지를 다듬고 있습니다. 패키지 자체는 v3에 이르렀지만, NPM에는 아직 올리지 않았구요. 그래도 누구나 다 아이디어를 구현할 수 있을 테니 썰을 푸는 것도 나눔에 속하려나요;;
제가 꿈꿨던게 이런 겁니다:
——
Me: “야.. 코덱;; 있잖아.. 그 태스크 T23, 어떻게됐어?”
코덱: “잠만요,, .. 어… 해야한다고 예약된 상태인데요?”
Me: “쓰바? 그럼 T34는?”
코덱: “그건,,, 되긴했는데 다른 문제가 터져나왔슴돠”
Me: “완료된게 뭔데?!”
코덱: “T10, T15, T20 은 완료됐슴돠.”
Me: “음… 그따구로 하면 구독끊는다!! 태스크 T23 문맥 가져와봐”
코덱: “가져옵니다,, T23 .. .. ㅁㅇ런밍널2” // 앱 죽음; 노트북 배터리 나가서 다시 시작해야 함;
Me: “야, 아까 말하다가 말았는데, T23 문맥 복구하고, 다시 시작하라고! 이번엔 확실하게 끝내! 만약 문제가 발생하면 새로운 태스크로 등록해두고. 어영부영 하면 콱;;;”
코덱: "T23 문맥 복구됐습니다. 턴별로 T23.1 에서 T23.7까지 단계별로 진행하겠습니다. 라면한잔 하고 오시죠”
…
Me: CLI 환경에서 “task list” 명령 수행하면 상태가 나옵니다. 거기서 task stage T23 && commit 합니다. (이건 제가 만든 체계) 그럼, 알림이 MCP를 통해 AGENT 에게 도착합니다.
코덱: “T23 완료됐습니다. 예약된 다른 태스크로 진행할까요?”
——
위의 상황이 실현되려면,
어떤 작업을 태스크 단위로 인식할 수 있어야 하고,
codex CLI를 세션을 물고 들어가지 않아도 태스크 단위를 복구할 수 있는 그 무언가의 방법이 있어야 하며,
작업 처리 과정이 규칙에 박혀있어야 하고,
MCP를 통해 Notifiaction이 도달해줘야 합니다.
그리고 CLI에서의 명령이 MCP와 AGENT에게도 알려져야 하죠.
그리고 무엇보다 그 과정이 안정되어 있어야 하며, 신뢰할 수 있어야 합니다.
태스크 단위 인식이나 작업 과정의 규칙화야 뭐 AGENTS.md를 적절하게 써주면 되죠. 문제아닙니다.
문제는 세션을 물고 들어가지 않는데 어떻게 태스크 단위로 복구하냐… 이거죠.
그래서, 제가 활용한 방법은 ~/.codex/ 아래의 sqlite 아래 저장된 세션 채팅을 처리해서 TURN 단위로 DB에 쌓았습니다. 그리고 AGENTS.md + MCP + hooks를 통해 태스크 관련 조작을 하게 했습니다.
즉, 매 턴마다 대화를 DB에 쌓고, 그걸 태스크 단위로 가져올 수만 있다면, MCP가 특정 태스크와 관련된 것까지 다 찾아준다면, 굳이 문맥을 물고 codex를 실행하지 않아도 됩니다 ㅋ
물론 많은 실전 내용이 빠져있긴한데, 이게 핵심이니까 뭐 다 말한것이나 다름없겠죠;;;
거기에 하나의 Git 프로젝트엔 여러 브랜치가 있듯이, 제가 작업할 때에도 비슷한 개념을 넣었습니다. 그래서 어떤 작업 그룹을 진행하고 있는지를 MCP/CLI 양쪽에서 git 처럼 다룰 수 있습니다. 그 결과를 MCP쪽으로 Notification을 보내기도하고, Turn을 진행하는 동안 알림을 날려서 근무제대로 하는지 잔소리도 가능합니다. 아무래도 갑자기 태스크와 상관없는 알림을 받으면 AGENT가 정신차리는 경향이 있긴하더군요.
작업상태를 웹으로 볼 수 있게해서 네트워크로 접근하게 했습니다. REST API 입히면 API 서버가 됩니다.
즉, 다른 Codex끼리 협업할 수 있습니다;;; 근데 제겐 그 다른 Codex란, macOS에서 작업하는 Codex 말고, 서버에 있는 Codex를 말합니다. 방구석 헤르메스죠;;;
먹을게 부족하면 못하는 짓거리가 없다고 하듯, 토큰이 부족하면 이런 짓거리를 하기도 한다는 예제가 되겠네요.