연결됨 다시 연결 중 다시 연결 연결 실패 연결 일시 중지 복구 실패
Agent 프롬프트를 매번 다시 읽지 않게 만드는 방법 대표 이미지
공개 지식 로그 출처 @dimohy 리비전 v2 3개 관련 로그 2개 이전/다음 로그 0개 댓글

Agent 프롬프트를 매번 다시 읽지 않게 만드는 방법

공개 로그
@dimohy 팔로우 0개 2026.06.27 11 분 75 조회관계 잇기수정 2026.06.27 15:08

로그 요약

본문과 댓글은 @dimohy의 #mcp 태그, Slogs LLM Wiki 시리즈, 리비전 v2, 2개 이전/다음 로그에 이어진 지식 로그입니다.

주요 태그 #mcp 로그 시리즈 Slogs LLM Wiki 리비전 v2 3개 관련 로그 2개 이전/다음 로그

Slogs MCP 프롬프트 동기화를 주기 스케줄이 아니라 세션 시작 버전 체크로 설계한 이유와 구현 규칙을 정리합니다.

Session-start prompt version sync

Agent 정책 프롬프트는 길어지기 쉽다. 처음에는 설치 안내, MCP 연결 방법, 기억 조회 규칙, 저장 규칙, 예외 상황까지 모두 넣어야 하므로 자연스럽다. 문제는 이 프롬프트가 전역 AGENTS.md 같은 영구 지침에 들어가면 매 세션마다 토큰을 잡아먹는다는 점이다.

Slogs MCP 프롬프트도 같은 문제를 겪었다. 기능은 유지해야 하지만, 전역 Agent 정책은 훨씬 작아져야 했다. 그래서 Slogs는 “전체 프롬프트를 매번 읽는 방식”이 아니라 “세션 시작 시 버전만 확인하는 방식”으로 바꿨다.

목표는 압축이지 기능 삭제가 아니다

프롬프트를 compact하게 만든다고 해서 정책을 삭제하면 안 된다. 줄여야 하는 것은 중복 설명이고, 유지해야 하는 것은 동작 계약이다.

Slogs MCP 프롬프트에서 유지해야 했던 핵심 계약은 다음과 같다.

  • 처음 설치 시 MCP 키를 다시 묻는 조건
  • 전역/프로젝트/현재 세션 적용 범위 선택
  • 토큰을 문서, 로그, LLM Wiki에 기록하지 않는 규칙
  • 이전 결정/선호/프로젝트 맥락은 LLM Wiki를 먼저 조회하는 규칙
  • 저장 전 관련 기억을 찾고 병합/갱신하는 규칙
  • categoryPath를 명시하는 규칙
  • 프롬프트 버전 동기화 규칙

compact 버전은 이 계약을 짧게 표현할 뿐, 기능을 줄이지 않는다.

세션 시작에는 한 줄 버전만 확인한다

핵심은 slogs-mcp.version 엔드포인트다.

세션이 시작되면 Agent나 동기화 스크립트는 먼저 다음 URL의 한 줄 버전 텍스트만 읽는다.

https://slogs.dev/prompts/slogs-mcp.version

그 다음 로컬 지침 파일에 설치된 SLOGS_MCP_PROMPT 관리 블록의 version과 비교한다.

  • 버전이 같으면 전체 프롬프트를 읽지 않는다.
  • 파일을 다시 쓰지 않는다.
  • 키 요청을 반복하지 않는다.
  • 적용 범위 질문도 반복하지 않는다.

이 규칙 하나로 평소 세션 시작 비용이 작아진다. 대부분의 세션에서는 한 줄 버전 확인만 하고 기존 정책으로 바로 작업하면 된다.

버전이 다를 때만 전체 Markdown을 읽는다

서버 버전과 로컬 버전이 다르거나, 로컬 블록에 버전이 없을 때만 전체 프롬프트를 읽는다.

https://slogs.dev/prompts/slogs-mcp.ko.md

읽은 뒤에는 기존 SLOGS_MCP_PROMPT 관리 블록을 같은 위치에서 교체한다. 전역에 설치된 블록은 전역 지침에서, 프로젝트에 설치된 블록은 프로젝트 지침에서 갱신한다.

중요한 점은 누적 추가가 아니라 교체라는 것이다. 같은 정책이 여러 번 붙으면 Agent는 어떤 문장을 더 우선해야 하는지 알기 어렵다. 관리 블록은 하나만 있어야 한다.

이것은 스케줄러가 아니다

처음에는 SlogsMcpPromptSync라는 이름 때문에 주기적 스케줄처럼 보일 수 있었다. 하지만 의도는 백그라운드 스케줄이 아니다.

Slogs의 현재 정책은 명확하다.

  • Windows Scheduled Task로 반복 등록하지 않는다.
  • 일정 시간마다 자동 갱신하지 않는다.
  • 세션 시작 시 버전이 다를 때만 동기화한다.
  • 버전이 같으면 전체 프롬프트를 fetch하지 않는다.

Agent 정책은 사용자가 작업을 시작하는 시점에 맞춰 최신이면 충분하다. 백그라운드에서 몰래 지침 파일을 바꾸면 디버깅이 어려워지고, 사용자가 보지 않는 시점에 정책이 변할 수 있다.

해시와 관리 블록이 필요한 이유

Slogs 관리 블록은 URL, version, sha256, updated 값을 헤더에 둔다. 버전만으로도 동기화 판단은 가능하지만, 해시는 실제 본문이 기대한 내용인지 검증하는 데 도움이 된다.

관리 블록의 목적은 사람이 읽기 위한 장식이 아니다. Agent와 스크립트가 다음을 명확히 알기 위한 구조다.

  • 이 블록은 Slogs MCP 프롬프트가 관리한다.
  • 현재 설치된 버전은 무엇이다.
  • 서버와 비교할 URL은 무엇이다.
  • 새 버전이 오면 이 블록만 교체하면 된다.

Agent 정책은 짧을수록 좋지만 모호하면 안 된다

프롬프트를 줄일 때 흔한 실수는 예외 규칙을 잘라내는 것이다. 하지만 실제 운영에서 중요한 부분은 대부분 예외다.

  • MCP 도구가 보이지 않을 때는 tool search를 먼저 시도한다.
  • 도구가 없으면 기억을 사용했다고 말하지 않는다.
  • 토큰을 평문 설정에 써야 하면 먼저 사용자에게 알린다.
  • 민감 정보는 LLM Wiki에 저장하지 않는다.
  • 기억 저장은 remember보다 merge/update가 우선이다.

compact 프롬프트는 이런 규칙을 살리면서 설명을 줄여야 한다. 짧아졌는데 Agent 행동이 달라졌다면 실패한 압축이다.

참고 링크

0 대화 흔적

대화 흔적 (0)

이 로그에 댓글을 남기려면 지식 로그 홈으로 돌아가야 합니다. 지식 로그로 돌아가기

아직 이어진 댓글이 없습니다. 첫 댓글을 남겨 보세요.

지식 로그 연결이 잠시 끊겼습니다. 다시 연결 ×