서론: Herdr란 무엇인가
Claude Code와 같은 AI 에이전트를 매일 사용하다 보면, 피할 수 없는 것이 바로 '다중 세션 관리 문제'입니다. PC 너머에서 에이전트가 자율적으로 작업을 진행해 주는 것은 매우 편리하지만, 병렬로 실행되는 태스크가 늘어날수록 '지금 어떤 세션이 움직이고 있고, 어느 것이 멈춰 있는지'를 파악하기 어려워집니다.
이러한 멀티 에이전트 운영의 스트레스를 해소해 주는 것이 바로 제가 아끼는 터미널 안에서 작동하며, 에이전트의 상태(작업 중/응답 대기 등)를 자동으로 감지하여 시각화하고 영속화해 주는 런타임 플랫폼 Herdr입니다.
저 역시 이 Herdr를 도입하여 멀티 세션 운영을 시작하게 되었지만, 그 환경에 도달하기 전 '어느새 하나의 세션이 카오스가 되어버렸다'는 경험담을 되돌아보고자 합니다.
계기: 어느새 1개 세션에 4개 프로젝트가 올라와 있었다
AI 에이전트를 일상 업무에 사용하다 보면, 처음에는 '이 데이터 좀 봐줘' 정도의 가벼운 대화였을 것이라 생각했는데, 어느새 하나의 세션 안에 여러 개의 독립적인 프로젝트가 공존하게 되는 일이 발생합니다.
저의 경우도 정확히 그랬습니다. 처음 요청은 '특정 웹 서비스의 리드 획득 수 감소 원인을 현재 보유한 데이터 기반에서 조사해 달라'는 것이었습니다. 거기서부터 대화가 흘러갔습니다.
- 현황 분석을 하고 개선 방향성(KPI)을 함께 설계한다.
- 그 시스템을 관련 부서/다른 제품에도 전개하는 검토가 시작된다.
- 측정의 기반(어떤 데이터를 어떻게 연결할지)에 결함이 발견되어, 해당 수정 프로젝트가 개설된다.
- 게다가 인접 팀으로부터 '우리 업무 관리도 겸사겸사 효율화할 수 없을까'라는 상담이 들어온다.
모두 첫 요청의 연장선상에 있었기 때문에 같은 세션에서 대화를 이어가게 됩니다. 하지만 며칠이 지나자, 하나의 세션 안에 성격이 다른 네 개의 프로젝트가 동시 진행되고 있어 '오늘 무슨 이야기를 했더라'를 떠올리는 것만으로도 고생스러웠습니다.
이는 에이전트 성능의 문제가 아닙니다. 오히려 맥락을 전부 기억하고 우수하게 답변해 주기 때문에, 끝없이 이야기가 확장되어 버리는 인간 측면의 운영 문제입니다.
대책: 프로젝트별로 세션을 분리하기
막다른 골목에 다다라 어느 날 에이전트 스스로에게 '솔직히 이 세션만으로 전부 관리하는 건 무리가 오고 있는 것 같다. 어떻게 진행하는 게 좋을까?'라고 상담해 보았습니다. 돌아온 제안은 간단했습니다.
현재 실행 중인 주제들을 정리해보니, 실질적으로 ◯개의 독립적인 워크스트림이 되고 있습니다. 이들은 서로 관련은 있지만, 매일 깊게 파고드는 것은 하나에 집중해야 합니다. 따라서 프로젝트별로 별도의 세션을 만들고, 현재 세션은 '전체 교통정리 및 우선순위 결정'에 특화시키는 것이 좋습니다.
듣고 보니 당연한 이야기였지만, 한가운데 있을 때는 '모두 연결되어 있으니 나눌 수 없다'고 착각하게 됩니다. 실제로는 각 프로젝트의 검토 내용은 이미 문서나 Wiki 페이지라는 형태로 외부화되어 있었습니다. 즉, 대화의 맥락은 사라져도 결과물이라는 형태로 인계할 수 있는 상태가 되어 있던 것입니다.
새로운 세션 시작하기
각 프로젝트용으로 새 세션을 만들 때, 처음부터 배경을 다시 설명할 필요는 없었습니다. 했던 일은 간단했습니다. '지금까지의 검토 내용이 정리된 문서/Wiki 페이지(Confluence 등) 링크'와 '한마디 맥락'만 전달하면 되었습니다.
예를 들면 이렇습니다↓
◯◯ 건에 대해 깊게 파고들고 싶다. 지금까지의 검토 내용은 이 문서에 정리되어 있다: <URL>
최근 관계자와 MTG했다. 그 내용을 바탕으로 계속 진행하고 싶다.
이것만으로 에이전트는 링크를 읽어 배경을 파악한 상태에서 대화를 재개할 수 있습니다. 새 세션이라고 해서 '원점으로 돌아간다'는 느낌은 전혀 없었습니다.
기존 세션은 개별 구현의 깊은 탐구를 멈추고, 대신 다음 역할에 전념하도록 바꿨습니다.
- 일일 '오늘 한 일/내일 할 일' 정리
- 여러 프로젝트를 아우르는 태스크 진행 상황 관리
- 관계자에게 연락(메시지 초안 작성・문구 검토)
- '다음, 어느 프로젝트 세션에서 무엇을 진행해야 하는가'의 교통정리
즉, 세션의 역할을 '구현 담당'에서 '프로젝트 매니저'로 바꾼 형태입니다.
거기서 효과를 본 것이 Herdr였습니다
세션을 분리하는 것 자체는 단순한 정리 기술이지만, 일단 분리하는 순간 새로운 문제가 발생한다. 여러 세션을 동시에 실행하고 있으면, 어떤 것이 '작업 중'이고 어떤 것이 '응답 대기 중'인지 구분하기 어려워진다. 애써 분리했는데도 결국 모든 창과 탭을 돌아다니며 상황을 확인해야 한다면, 분할한 의미가 퇴색되어 버린다.
여기서 사용된 것이 Herdr라는 도구였다. 이것은 코딩 에이전트를 백그라운드에서 상시 실행하는 런타임 플랫폼이며, 제가 운영하면서 특히 도움이 된 특징은 다음 세 가지이다.
1. 에이전트가 서버 위에서 계속 움직인다
PC를 닫거나 네트워크가 끊어져도 에이전트의 작업 자체는 멈추지 않는다. 재연결하면 그대로 이어서 확인할 수 있다. 여러 세션을 병렬로 운영해도, 눈앞의 기기 상태에 구애받지 않는다.
2. 각 세션의 상태를 능동적으로 알려준다
Herdr는 각 에이전트의 상태를 '작업 중(working)', '응답 대기(blocked)', '대기 중(idle)'으로 자동 판정하고, 제가 찾아보지 않아도 응답이 필요한 타이밍에 알려준다. 이것이 없으면, 분할한 4개의 세션을 주기적으로 직접 순회하며 '멈추지는 않았는지'를 확인하는 작업이 발생하여, 분할의 이점이 상쇄되어 버린다.
3. 여러 기기의 에이전트를 하나의 워크스페이스에서 관리할 수 있다
노트북 PC, 데스크톱, 원격 서버에 흩어져 있는 에이전트를 SSH 연결로 전환하며 일원적으로 관리할 수 있다. 어느 기기에서 어떤 세션을 돌리고 있었는지 의식할 필요가 없다.
결과적으로, '하나의 프로젝트에 하나의 세션을 두고 각각 백그라운드에서 실행시키고, 알림이 온 것부터 처리한다'는 운영 방식이 무리 없이 돌아가게 되었다. 세션을 분리한다는 판단과 Herdr의 알림 기능은, 세트로 처음으로 기능을 발휘하는 조합이었다고 느낀다.
요약
AI 에이전트와의 대화는 방심하면 점점 하나의 세션에 쌓여간다. 이는 성능이 좋을수록 더 자주 발생하는 현상이라고 생각한다. 대책은 어려운 것이 아니라,
- 현재 세션에서 진행 중인 주제를 정리하여, 독립된 워크스트림으로 분해하기
- 각 워크스트림의 검토 내용을 문서나 Wiki 등 외부 결과물에 기록해 두기
- 새로운 세션에는 해당 문서로의 링크와 한마디 맥락만 전달하며 시작하기
- 원래 세션은 '개별 구현'이 아닌 '전체적인 교통정리' 역할로 전환하기
- 여러 세션을 병렬로 운영하는 이상, 상태를 능동적으로 알려주는 메커니즘(Herdr의 알림 기능 등)을 결합하기
와 같은 비교적 사소한 운영상의 노하우였다. 에이전트 자체를 똑똑하게 만드는 이야기가 아니라, 에이전트와의 관계 맺는 방식을 설계하는 이야기로서, 마찬가지로 '어느새 하나의 세션이 비대해져 있었다'는 분들에게 도움이 되기를 바란다.
Discussion