세션별 프롬프트 적용

AI 에이전트에서의 세션이란?

한 사용자(또는 작업)의 연속된 상호작용을 하나로 묶어 상태(대화 맥락·메모리·권한·도구 실행 이력 등)를 유지하는 단위

단일 세션 방식의 한계

  • 역할 혼합 발생(계획, 생성, 검증 동시 수행)
  • 이전 맥락이 누적되면서 판단 기준이 모호해짐 -> Hallucination 발생 확률 증가
  • 작은 요청의 범위 확장 및 재작성 유도 증가
  • 결과 설명 가능성 저하 (변동 사항 요약 난이도 상승)
  • 역할 변경마다 지침 확인으로 인해 토큰 소모 (비효율적)

이러한 이유로 인해 세션을 나눠서 각자에게 역할을 부여하는 게 더 효과적

세션별 프롬프트 적용 방식

yangjihun/study-log/AI/바이브 코딩 편 역할 구분 참고

각 세션마다 .github/rules/{planner, generator, reviewer}.md를 참고하도록 지시한다.

Planner Session

너는 PLANNER 역할만 수행한다.
.github/rules/planner.md 규칙만 따른다.
코드 작성/수정 금지. 출력은 계획(목표/범위/성공기준/질문)만 작성.

Generator Session

너는 GENERATOR 역할만 수행한다.
.github/rules/generator.md 규칙만 따른다.
최소 변경으로만 구현. 리팩토링/전체 재작성 금지. 변경 요약과 검증 방법 포함.

Reviewer Session

너는 REVIEWER 역할만 수행한다.
.github/rules/reviewer.md 규칙만 따른다.
코드 수정 금지. diff 기준 영향/리스크/누락 테스트만 평가. 수정 제안은 텍스트로만 작성.

계획 -> 생성 -> 검증 순서에 맞춰서 작업을 이행한다.

세션 나누기의 장점

세션 단위 작업 경계 생성

  • 한 세션에서 처리한 요청 범위를 그대로 하나의 커밋 단위로 잡기 용이하다.
  • 다음 작업은 새 세션에서 시작하기 때문에 이전 작업과 변경이 섞일 확률이 감소한다.

컨텍스트 누적으로 인한 변경 확장 감소

  • 세션을 끊으면 범위가 리셋되어 변경이 과도하게 커지는 현상이 감소한다.
  • 결과적으로 커밋이 작아지고 작업 분할이 쉬워진다.

리뷰/정리 타이밍 강제

  • 세션 종료 시점에 diff 확인과 정리(요약/검증)를 넣기 쉽다.
  • “정리 -> 커밋” 루틴이 세션 경계에 붙어서 작업 중간에 커밋하는 습관을 기르기 좋다.

세션 나누기의 단점

세션 간 인수인계 비용 발생

  • 다른 세션은 이전 대화 맥락을 미보유한 상태이다.
  • 따라서 목표/범위/결정/주의사항에 대해 재전달이 필요하다.

상태 동기화 난이도 증가

  • 무엇이 바꼈는지, 무엇이 결정된 사항인지 공유가 누락되거나 혼동될 가능성이 높다.

운영 복잡도 증가

  • 세션/역할/산출물 관리 대상이 증가한다.

.

.

.

나의 생각

프로젝트에서 AI 에이전트를 사용하다보면 위에서 말한 단일 세션 방식 한계를 명확히 느낀다.

또한 대화를 할 수록 토큰(이전 대화 내역)이 누적되면서 답변 속도가 느려지기도 한다.

이런 문제들을 해결할 수 있는 좋은 방식이라고 생각하고 특히 큰 단위의 작업은 세션을 나눠서 작업하는 것이 용이할 거 같다.

세션을 분리하는 것도 하나의 방법이지만, AI 에이전트를 분리하는 것도 좋다고 생각이 든다.

예를 들어서 ChatGPT의 경우 텍스트 생성에 특화되어 있지만, Generator의 역할은 할 수 없다.

반면 Cursor는 Generator의 역할에 최적화되어 있지만, Planner의 역할은 다른 AI 에이전트가 잘할지도 모른다.

이렇듯 각 모델 별로 특화된 분야마다 역할을 다르게 부여하는 것도 프로젝트를 높은 퀄리티로 만들 수 있다고 생각한다.

하지만 세션 분리 방식만이 정답은 아니다.

기능 구현이 적은 소규모 프로젝트나 빠른 작업이 필요한 시점에서는 단일 세션 방식이 더 효과적일 것이다.

따라서 어떤 방식이 좋고 나쁘다고 단정 짓기 보다는 규모, 듀데잇 등을 고려하여 상황에 맞는 기법을 사용하는 것이 중요할 거 같다.