모든 세션에 모든 지침을 로드하는 것을 멈추세요

대부분의 사람들은 더 나은 프롬프트에만 집중합니다. 프롬프트가 시작되기 전에 어떤 일이 일어나는지는 무시합니다. 어시스턴트 컨텍스트에 너무 많은 지침을 로드합니다.

이는 세 가지 문제를 일으킵니다:

사소한 질문 하나를 할 때마다 방대한 지침 파일을 로드하는 것은, 간단한 질문을 하기 전에 직원 핸드북 전체를 읽는 것과 같습니다. 그 정보의 대부분은 현재 작업에 쓸모가 없습니다.

규칙을 더 많이 추가할수록 관련 있는 부분이 희석됩니다. 컨텍스트가 많다고 해서 능력이 더 뛰어난 것은 아닙니다.

저는 단일 파일 방식에서 모듈형 시스템으로 전환하여 이 문제를 해결했습니다. 지침을 다음과 같이 전문화된 모듈로 나누었습니다:

• instructions.md: 항상 로드되는 작은 진입점. • persona.md: 페르소나 및 톤. • structure.md: 내비게이션 작업을 위한 시스템 구조. • workflows.md: 세션 종료를 위한 특정 규칙.

이제 메인 파일은 라우터 역할을 합니다. 작업이 필요로 할 때만 다른 모듈을 호출합니다.

예시:

결과는 명확했습니다. 저의 베이스라인 토큰 로드량이 4,800토큰에서 1,450토큰으로 줄었습니다. 이는 70% 감소한 수치입니다.

목표는 지침을 작게 만드는 것이 아닙니다. 목표는 베이스라인 로드(baseline load)와 온디맨드 로드(on-demand load)를 분리하는 것입니다.

베이스라인 로드는 매번 발생하는 비용입니다. 이를 아주 작게 유지해야 합니다. 온디맨드 로드는 필요할 때만 로드하는 것입니다. 이는 크고 상세할 수 있습니다.

이 접근 방식에는 트레이드오프(trade-offs)가 있습니다. 효율성은 얻지만, 지침을 라우팅하는 방식이 복잡해집니다. 어시스턴트가 모듈에 안정적으로 접근할 수 있도록 보장해야 합니다.

지침이 적다면 이렇게 하지 마세요. 시간 낭비입니다. 지침 세트가 방대하고 계속 늘어나고 있다면, 즉시 이 방식을 도입하세요.

어시스턴트에게 불필요한 무게를 짊어지게 하지 마세요. 관련 없는 지침들로 공간을 채우지 마세요.

Source: https://dev.to/ben-witt/significantly-fewer-context-tokens-through-a-modular-instruction-architecture-2g70

Optional learning community: https://t.me/GyaanSetuAi