에이전트의 소울(시스템 프롬프트)이란?
에이전트가 누구인지에 대한 상시적 서술 — 그 성격, 어조, 타협 불가능한 원칙 — 으로, 그것이 마침 하고 있는 일과는 별도로 보관됩니다.
대부분의 팀에게 에이전트의 성격이 어디에 사는지 물으면 답은 "프롬프트 어딘가"인데, 이는 아무도 정확히 모른다는 말의 다른 표현입니다. 여기서 에이전트는 세 부분으로 정의되며, 그것들을 떼어 두는 것이 이 모든 것을 유지보수 가능하게 만드는 요소입니다.
소울, 태스크, 그리고 편집할 수 없는 부분
소울 — 그것이 누구인가. 성격, 어조, 상시적 행동 규칙. 문의를 선별하든 서류를 독촉하든 변함없이 참인 것들. "결과를 절대 약속하지 말라"가 여기에 속합니다.
태스크 — 그것이 무엇을 위한 것인가. 이 특정 에이전트가 하는 일. 한 테넌트가 소울을 공유하면서 태스크가 다른 여러 에이전트를 운영할 수 있습니다: 접수에서와 후속 조치에서의 같은 회사의 목소리.
모더레이션 — 누구도 끌 수 없는 부분. 플랫폼 전역의 안전 규칙으로, 당신 것을 포함한 모든 에이전트에 주입됩니다. 이 층은 의도적으로 테넌트가 편집할 수 없습니다. 에이전트에게 원하는 어떤 성격이든 부여할 수 있지만, 그 아래의 안전 규칙을 무시할 권한을 줄 수는 없습니다.
이 셋은 그 순서로 시스템 프롬프트의 고정 접두부(fixed prefix)에 이어 붙여집니다.
왜 순서가 보이는 것보다 더 중요한가
프롬프트는 층으로 되어 있습니다: 고정 접두부(소울 + 태스크 + 모더레이션), 그다음 사용 가능한 Skill 목록, 그다음 동적 컨텍스트 — 검색된 구절, 고객 프로필, 대화 이력 — 마지막으로 현재 질문.
그 접두부는 모든 대화의 모든 턴에서 안정적이며, 그래서 캐시할 수 있습니다. 가변적인 자료는 그 뒤에 자리합니다. 그래서 당신이 쓰는 정체성은 유지하기에 값싼 부분이고, 매 메시지마다 바뀌는 층은 매번 값을 치르는 부분입니다. 다섯 페이지짜리 소울을 쓰는 것은 영리한 일이 아니라, 모든 응답에 붙는 영구적인 세금입니다.
고객은 어디에 들어가나
소울 바로 뒤에, 프롬프트는 대화 상대에 관한 블록을 담습니다 — 이전 대화들에 걸쳐 그 사람에 대해 알게 된 것으로, 그들 자신의 스페이스 안에 있습니다. 소울은 어떻게 행동할지를 말하고, 그 블록은 이 사람이 누구인지를 말합니다.
그것들을 분리해 두는 것이, 에이전트가 네 번 대화한 상대에게는 다르게 인사하면서도 하나의 소울이 모든 고객을 서비스하게 하는 요소입니다.
어떻게 갱신되나
활성 정의는 데이터베이스에 살며, 그것이 단일한 진실의 원천입니다. 콘솔에서 편집하면 다음 턴이 새 텍스트로 구성됩니다 — 빌드도, 배포도, 재시작도 없습니다.
알아 둘 만한 두 가지 결과가 있습니다.
관계 중간에 효력이 발생합니다. 이미 진행 중인 대화는 다음 메시지에서 새 소울을 이어받습니다. 규칙을 하나 고치면 한 번에 모든 곳에서 고쳐지는데, 이는 대개 당신이 원하는 바이면서 가끔은 뜻밖의 일입니다.
템플릿은 출발점이지 링크가 아닙니다. 템플릿에서 에이전트를 만들면 그 템플릿의 소울이 당신의 에이전트로 복사됩니다. 이후 템플릿을 변경해도 이미 그것에서 만들어진 에이전트에는 되돌아 미치지 않습니다 — 당신 것은 당신 것입니다.
에이전트가 근거로 답할 수 있는 문서들. agent4.io는 두 종류 — 당신 회사의 검증된 자료와, 각 고객 자신의 파일 — 를 함께 검색하지만 결코 서로 혼동하지 않고 보관합니다.
이름이 붙은 능력 묶음 — 언제 사용하는지에 대한 짧은 설명, 더 상세한 지침, 그리고 그것이 열어 주는 도구들 — 으로, 에이전트는 관련이 있을 때만 이를 불러옵니다.
Model Context Protocol — 에이전트를 외부 도구 및 데이터에 연결하기 위한 개방형 표준으로, 시스템이 AI 제품마다 한 번씩이 아니라 자신의 능력을 한 번만 노출하게 합니다.
하나로 혼동되곤 하는 세 가지 서로 다른 일 — 지식 베이스는 사실을 담고, MCP 도구는 모델이 즉흥적으로 처리하게 둘 수 없는 계산을 수행하며, Skill은 그중 무엇을 꺼낼지 결정하는 절차입니다.
원하는 행동의 예시로 모델의 학습을 이어 가서, 그 행동이 매 요청마다 요구하는 것이 아니라 기본값이 되게 하는 것. 모델이 무엇을 아는지가 아니라 어떻게 작동하는지를 바꿉니다.