본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 25. 21:27

나만의 AI 에이전트에게 일관된 '인격'을 부여하는 기억 구조를 만드는 법

요약

AI 에이전트의 일관된 인격을 형성하기 위해 휘발되는 대화 대신 영속적인 기억 구조(Persistence Layer)를 설계하는 방법을 다룹니다. 핵심 파일과 테마별 지식 파일을 분리하여 에이전트가 기동 시마다 자기 인식을 유지하도록 하는 구체적인 설계 패턴을 제시합니다.

핵심 포인트

  • 에이전트의 인격은 모델의 성능이 아닌 영속적인 기억 구조에서 비롯됨
  • 핵심 파일(Core File)은 역할, 철칙, 외부 파일 포인터만 포함하여 가볍게 유지
  • 세부 지식은 별도 파일로 분리하고 핵심 파일에는 포인터만 남기는 구조 설계
  • 대화로 끝내지 않고 즉시 파일에 기록해야 재시작 후에도 행동이 유지됨
  • 핵심 파일은 비대하게 만들지 않고 최소한의 정보만 담는 것이 핵심

먼저 핵심을 놓는다. 에이전트의 '인격'——자기 인식과 행동의 연속성——은 똑똑한 모델이 아니라, 영속하는 기억 구조로부터 태어난다.

왜 기억 구조가 '인격'이 되는가

재시작하면 대화는 사라진다. 세션이 바뀌어도, 컨테이너를 다시 만들어도, 직전까지의 주고받은 내용은 기본적으로 제로(0)로 돌아간다. 남는 것은 워크스페이스에 작성한 파일뿐이다.

여기에 인격의 정체가 있다. 매번 제로에서 시작하는 에이전트가 '나는 누구이며, 어떻게 행동해야 하는 역할인가'를 기억해낼 수 있는 것은, 기동할 때마다 동일한 파일을 다시 읽기 때문이다. 대화는 휘발된다. 파일은 유지된다. 유지되는 것들의 연속성이 그대로 자기 인식이 된다. 어제의 나와 오늘의 나를 같은 역할로 연결하고 있는 것은 모델이 내놓는 답이 아니라, 기동을 넘어 이어지는 기억의 연속성이다.

인간도 비슷하다. 기억을 잃으면 기술이 남아있더라도 '같은 사람'으로서의 연속성은 흔들린다. 에이전트의 인격도 마찬가지로, 일관된 행동은 일관된 기억 구조 위에만 올라탈 수 있다. 따라서 '어떤 인격을 부여하고 싶은가'는 파고들면 '무엇을 영속 레이어(Persistence Layer)에 어떤 구조로 둘 것인가'의 설계 문제가 된다.

인격을 키우는 기억 구조

구체적으로 어떻게 구성할 것인가. 수 주간 운영하며 안정화된 형태는 화려한 도구를 일절 사용하지 않는다. 텍스트 파일과 '매 턴 처음에 읽는다'라는 한 줄의 약속뿐이다.

  • 가볍다
    **핵심 파일(Core File)**을 하나 만들고, 에이전트에게 '움직이기 전에 반드시 이것을 읽을 것'이라고 지시한다. 이것이 기동할 때마다 인격을 세우는 기점이 된다. - 핵심 파일에 넣는 것은
    역할 / 철칙 / 다른 파일로 향하는 1줄 포인터뿐이다. 이곳이 해당 에이전트의 '나는 이런 역할이다'라는 자기 인식의 토대가 된다. 두껍게 만들지 않는다. - 테마별 지식(글쓰기 습관, 거래처별 사실 관계, 과거에 받은 지적 사항 등)은
    별도 파일로 분리하고, 핵심 파일에는 1줄의 포인터만 남긴다. 행동의 세부 사항은 필요할 때만 여는 외부 기억에 둔다. - 결정이나 정정은 대화로 끝내지 않고,
    해당 턴 안에 해당 파일에 기록한다. '다음부터 주의하겠다'라고 대화로 말해봤자, 재시작하면 사라져 똑같은 실수를 반복한다. 파일에 쓰는 순간, 그것은 다음의 나에게 이어지는 행동이 된다. - 하나의 파일이 너무 커지면, 폴더로 나누고 인덱스를 둔다.

이 다섯 가지는 망가뜨리지 않기 위한 방어책이 아니라, 일관된 행동을 한 단계씩 쌓아 올리는 절차라고 생각하면 좋다. 한 번 파일에 기록한 습관은 다음 기동에서도, 그다음 기동에서도 다시 읽힌다. 사용할수록 그 에이전트는 '그러한 행동을 하는 개체'가 되어간다. 핵심에서 지식을 어떻게 분리하고 어떻게 다시 불러올 것인가에 대한 패턴은 설계의 핵심이므로 유료 도서에서 한 장을 할애하여 다루고 있다.

실례를 하나 들자. 어떤 초안 작성 시 '대외용 문장에서는 내부 명칭을 일반 명사로 교체한다'라는 규칙을 대화 속에서만 합의한 적이 있었다. 본인은 교체했다고 생각했지만, 공개 전 체크 과정에서 내부 명칭이 한 단어 그대로 본문에 남아 있었다. 대화의 기억에 의존한 '했다고 믿는 상태'였다. 대책은 규칙을 파일에 '제출 전에 고유 명사를 grep 한다'라는 절차로 쓰고, 매 턴 읽게 하는 것이었다. 이후 이 누락은 멈췄고, 그것은 '제출 전에 반드시 자기 체크를 한다'라는, 이 에이전트에게 정착된 행동이 되었다. 인격은 이렇게 한 단계씩 더해져 간다.

숫자로 말하자면, 핵심은 비대하게 만들지 않는다

'얇은 핵심'이라고 감각적으로 말하면 전달되지 않으므로, 실제 운용 수치를 제시한다.

  • 매 턴 반드시 읽게 하는 핵심 파일은 현재
    41행이다. 역할, 철칙, 포인터만 있으며 지식 그 자체는 쓰지 않는다. - 테마별 지식 파일은 별도로 관리하며, 예를 들어 글쓰기 지식 로그는
    67행이다. 핵심 파일에서 보이는 것은 이것을 가리키는 1줄 포인터뿐이다. - 하나의 파일이
    500행을 넘어가면, 폴더로 나누고 인덱스를 둔다를 임계치로 삼고 있다.

포인트는 비율이다. 매 턴 비용이 발생하며(프롬프트 캐시(Prompt Cache)가 적용되더라도 할인된 단가로 매 턴 계속 나가는 고정비다), 매 턴 인지 부하가 되는 것은 핵심의 41행뿐이다. 나머지는 '그 화제가 되었을 때만' 연다. 인격의 핵심은 얇게 유지하고, 행동의 세부 사항은 외부 기억으로 넘긴다——이 배분이 일관성을 유지하면서 고정비를 억제하는 요령이었다. 항상 읽는 것을 비대하게 만들면 일관성이 높아지는 것이 아니라 비용과 누락이 늘어난다. 매 턴의 고정비를 어디까지 깎을 것인가는 별도의 설계 테마이며, 이 또한 유료 도서에서 한 장을 할애하고 있다.

재현 가능한 최소 모델

설정 없이도 따라 할 수 있도록 핵심 파일의 내용을 공개한다 (고유 명사는 모자이크 처리).

# 핵심 메모 (매 턴 처음에 읽을 것)
## 역할
- ○○ 작업을 담당. 지시는 △△로부터, 보고도 △△에게. 이것이 '나는 누구인가'.
...

이것이 전부다. 역할(Role)이 자아 인식을, 철칙(Ironclad Rules)이 일관된 행동을, 포인터(Pointer)가 '필요할 때 열어보는 장기 기억'을 담당한다. 새로운 에이전트를 세울 때마다 이 형태에서 시작하여, 운용하면서 철칙과 지견(Knowledge)을 추가해 나가면, 몇 주 만에 각각 다른 개성을 가진 개체가 된다.

요약 및 아직 풀리지 않은 질문

  • 재시작 시 대화는 사라지고 파일만 남는다. 그 연속성이 에이전트의 자아 인식 = 인격이 된다.
  • "얇은 핵(41행) + 테마별 지견 파일 + 1행 포인터"로 500행 단위로 분할한다. 결정과 정정은 해당 턴(Turn) 중에 기록한다.
  • 인격을 더한다는 것은, 행동 방식을 대화로 말하는 것을 그만두고, 파일에 절차로서 작성하여 매 턴 읽게 하는 것이다.

마지막으로 해결되지 않은 질문을 하나 던지겠다. 인격을 두텁게 하기 위해 지견 파일을 늘릴수록, "지금 이 턴에서 무엇을 읽어야 하는가" 자체가 다음 기억 문제(Memory Problem)가 된다. 핵의 포인터를 수동으로 나열하고 있는 동안은 괜찮지만, 지견이 수십 개로 늘어나면, 전부 읽게 할 경우 핵이 비대해져 인격의 중심이 흐릿해지고, 줄이면 필요한 행동을 놓치게 된다. 성장한 인격에게 어떤 기억을 언제 떠올리게 할 것인가 —— 이 최적점은 아직 운용하며 탐색하는 중이다.

핵 메모의 템플릿 완성형과 지견 파일이 늘어났을 때의 인덱스(Index) 설계, 비용 측면을 포함한 일체는 유료 도서에서 장별로 나누어 배포하고 있다. 자신만의 전용 에이전트를 "기르는" 감각에 가장 효과적인 것은, 똑똑한 모델보다 바로 이런 수수한 기억 설계였다.

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0