대규모 언어모델(LLM) 기반 에이전트를 개발할 때, 시스템 프롬프트(system prompt)는 모델의 기본 동작 방식을 정의하는 중요한 요소입니다. 하지만 현재 시각, 사용자 세션 상태, 호스트 정책처럼 매번 달라지는 런타임 지시사항을 시스템 프롬프트에 직접 포함하면, 프롬프트의 앞부분(prefix)이 계속 변경되어 LLM 제공업체의 프롬프트 캐싱(prompt caching) 기능을 제대로 활용하기 어렵다는 문제가 있었습니다. 이러한 비효율성은 LLM 호출 비용 증가와 응답 속도 저하로 이어질 수 있습니다.
이러한 문제를 해결하기 위해 '마에스트로 에이전트 SDK(maestro-agent-sdk)' v0.2.3에 '임시 시스템 프롬프트(ephemeralSystemPrompt)'라는 새로운 기능이 추가되었습니다. 이 기능은 안정적인 기본 시스템 프롬프트는 그대로 유지하면서, 실행 시점에 필요한 동적인 지시사항을 첫 사용자 메시지에 임시로 추가하는 방식입니다. 예를 들어, `ephemeralSystemPrompt: currentRuntimeInstructions`와 같이 사용하면, 실제 시스템 프롬프트는 변경하지 않고 요청 시점에만 런타임 지시사항이 합쳐져 전달됩니다. 이로써 기존 대화 기록과 캐시 가능한 프롬프트 프리픽스(prefix)가 유지되어 캐시 연속성(cache continuity)이 보장됩니다.
임시 시스템 프롬프트는 대화 기록이나 세션 파일에 저장되지 않으며, 하위 에이전트(subagent)에는 자동으로 전달되지 않는다는 특징이 있습니다. 또한, 합쳐진 요청이 컨텍스트 윈도우(context window)를 초과할 경우 오류를 처리하는 기능도 포함되어 있습니다. 이 기능은 LLM 에이전트의 효율적인 운영에 크게 기여할 것으로 보입니다. 프롬프트 캐싱을 통해 불필요한 토큰 사용을 줄여 비용을 절감하고, 반복적인 작업에서 응답 속도를 향상시켜 사용자 경험을 개선할 수 있기 때문입니다. 이는 LLM 기반 서비스의 상업적 성공에 중요한 요소가 될 것입니다.