네 가지 층
| 층 | 담는 것 | 언제 읽히는가 |
|---|---|---|
| 대화 기억 | 이 대화 하나에서 오간 모든 것 | 그 대화의 매 턴마다 |
| 장기 기억 | 여러분과 업무에 관한 오래가는 사실과 선호 | 모든 대화의 매 턴마다 |
| 지식 베이스 | 업로드한 문서와 저장한 웹페이지 | 에이전트가 무언가를 검색할 때만 |
| 스킬 | 절차 - 반복 작업을 어떻게 하는지 | 지금 하려는 일이 스킬과 맞아떨어질 때 |
앞의 두 가지는 언제나 작동하고 있어서 매 턴마다 어느 정도 비용이 듭니다. 뒤의 두 가지는 필요할 때만 찾아보고 쓰이기 전까지는 비용이 들지 않습니다. 이 차이야말로 무엇을 어디에 둘지 신중히 정해야 하는 이유 전부입니다.
대화 기억
대화는 하나하나가 사라지지 않는 스레드입니다. 브라우저를 닫고 다음 주에 돌아와 Chat 레일에서 다시 열어도, 에이전트는 여전히 그 맥락을 갖고 있습니다. 대화는 최신순으로 나열되며, 읽기 쉬운 이름표와 어느 채널에서 왔는지, 메시지 수, 누적 비용이 함께 표시됩니다.
긴 대화라도 무너지지 않습니다. 모델의 한계에 가까워지면 오래된 턴들을 제자리에서 압축해서, 스레드가 갈라지지 않고 계속 이어지게 합니다. 컨텍스트 바 가 채팅 헤더에 있어서 대화가 지금 얼마나 차 있는지를 보여 줍니다. 그리고 /context 명령을 실행하면 내역 카드가 열립니다. 시스템 프롬프트, 도구, 기억 파일, 스킬, 메시지가 각각 얼마나 자리를 차지하는지, 남은 여유 공간은 얼마인지를 보여 줍니다.
여기서 중요한 명령이 두 가지 있습니다. /new 은 새 대화를 시작합니다. 주제를 바꿀 때마다 옳은 선택이죠. 깔끔한 스레드는 관계없는 이력을 끌고 다니는 긴 스레드보다 비용도 적고 더 예리합니다. /compact 은 한계까지 기다리지 않고 지금 바로 압축을 요청합니다.
장기 기억
그 기억 구역은 에이전트의 장기 기억 문서를 직접 들여다보는 화면입니다. 이 문서는 매 턴마다 지시문에 주입됩니다. 읽기 모드는 세 가지입니다: 개요 (구역과 사실, 필터링과 접기가 가능), 읽기 (렌더링됨), 그리고 원본 (마크다운 원본). 복사 및 다운로드 은 이름 그대로 동작합니다.
여기에 쓰는 방법은 두 가지입니다. 빠른 추가 양식은 사실 하나를 덧붙입니다. 구역을 고르면 장기 기억에 들어가고, 구역을 비워 두면 대신 오늘의 일일 기록에 들어갑니다. 편집 버튼을 누르면 문서 전체가 편집용으로 열립니다. 저장 은 파일을 하나의 원자적 쓰기로 덮어씁니다.
에이전트도 이를 스스로 관리합니다. 백그라운드 루프가 최근 대화를 날짜별 일일 기록으로 압축하고, 그 기록 중 오래갈 부분을 주기적으로 주 기억 문서에 접어 넣습니다. 그래서 아무도 타이핑하지 않아도 기억은 저절로 자라납니다.
전체 문서 편집기는 파일을 통째로 바꿔치기합니다. 편집하는 동안 실시간 업데이트는 멈추고, 만약 에이전트가 여러분 모르게 파일을 바꿨다면 저장하면 더 최신 버전을 덮어쓰게 된다는 경고 배너가 뜨고 대신 다시 불러오라고 권합니다. 저장하기 전에 그 배너를 읽으세요.
장기 기억은 짧게 유지하세요. 이것은 매 턴마다 읽히므로 변하지 않는 것들 - 고객이 누구인지, 사내 문체가 무엇인지, 어떤 공급업체를 선호하는지 - 을 담아야지, 지난 화요일 대화 기록을 담아서는 안 됩니다.
여러분의 지식 베이스
그 지식 구역은 여러분이 제공하는 문서와 웹페이지로 검색 가능한 모음을 만듭니다. 개별 파일을 추가하고, URL을 추가하고, 서로 다른 자료 묶음이 섞이지 않도록 이름을 붙인 저장소를 만들고, 디렉터리 전체를 동기화하고, 색인된 항목을 나열하고, 더는 원하지 않는 출처를 제거할 수 있습니다. 검색은 지식 베이스, 에이전트의 작업 공간, 그 기억, 또는 사용자 지정 저장소를 가로질러 실행됩니다.
여기가 제품 매뉴얼, 가격표, 정책, 지난 제안서, 참고용 PDF가 있어야 할 곳입니다. 에이전트는 이 중 어느 것도 머릿속에 담고 다니지 않습니다. 질문이 필요로 할 때 검색하고, 찾은 것을 인용합니다. 그 덕분에 답변은 모델의 일반 학습이 아니라 여러분의 자료에 근거하게 되고, 실제로 필요해지기 전까지는 큰 자료 뭉치를 갖고 있는 비용이 계속 0으로 유지됩니다.
채팅 작성창으로 올린 파일은 에이전트의 작업 공간에 들어가서 Files 구역의 uploads/보입니다. 에이전트가 만들어 내는 것 - 생성한 이미지, 보고서, 스크린숏 - 도 거기 놓입니다. 그래서 대화가 아니라 결과물 자체가 필요할 때 찾아봐야 할 곳이 바로 Files입니다.
색인 작업은 백그라운드에서 실행되며, 진행 중인 대화를 절대 느리게 만들지 않도록 일부러 속도를 늦춰 둡니다. 큰 업로드는 끝난 직후가 아니라 조금 지나야 검색됩니다.
Notes
그 Notes 구역은 에이전트가 읽고 쓰는, 서로 연결된 마크다운 위키입니다. 노트마다 제목, 태그, 별칭, 출처가 있고, 노트끼리 서로 연결됩니다. 읽기 창은 그 연결 그래프의 양방향을 링크 대상 및 참조한 항목 칩으로 보여 줍니다. 그래서 어떤 아이디어의 주변을 따라갈 수 있습니다. 검색창은 모음 전체에 걸쳐 키워드 검색을 실행합니다.
알아 둘 만한 플래그가 하나 있습니다: auto-inject. auto-inject로 표시한 노트는 그 조각이 장기 기억처럼 매 턴마다 에이전트의 컨텍스트로 밀어 넣어집니다. 독립된 문서를 가질 만한 상시 지시문에 유용하지만, 그런 노트는 가장 최근 다섯 개까지로 제한되어 있어 조용히 부풀어 오르지 않습니다. 나머지는 모두 필요할 때 찾아봅니다.
스킬
스킬이란 가르쳐 둔 절차입니다. 문서로 된 지시문과, 필요하면 실행할 스크립트를 담은 폴더입니다. 시스템 프롬프트가 에이전트가 누구인지를 말해 준다면, 스킬은 특정한 일을 어떻게 하는지를 말해 줍니다. 단계, 형식, 점검 사항이죠. 작업이 맞아떨어지면 에이전트는 해당 스킬을 꺼내 씁니다. 에이전트별로 켜고 끄는 것은 상세 페이지의 스킬 탭에서 합니다.
스킬은 세 곳에서 옵니다. 플랫폼에 딸려 오는 것, 여러분의 배포 환경을 위해 쓰인 것, 그리고 에이전트가 Cortex를 통해 스스로 배우는 것( 7장). 채팅에서 /skills 라고 치면 지금 에이전트가 실제로 가진 것을 범주별로 나열해 줍니다. 어떤 스킬이 보안 감사에 걸려 보류됐다면, 그것도 이유와 함께 거기 나열됩니다. 조용히 사라지는 게 아니라요.
단계가 있는 일이라면 무엇이든 스킬이 있어야 할 자리입니다. “지난주 작업을 가져와서 계정별로 묶고 이 템플릿에 맞춰 주간 고객 업데이트 초안을 작성한다”는 스킬입니다. 이것을 시스템 프롬프트의 한 문단으로 욱여넣으려 하면, 프롬프트는 다른 모든 면에서 나빠집니다.
이건 어디에 넣어야 할까?
- 모든 답변의 형태를 결정해야 하는 사실 - 우리 근무 시간, 대표 이름, 우리가 쓰는 어조 같은 것 - 은 장기 기억에 들어갑니다.
- 누군가 물어볼 만한 문서 - 40쪽짜리 정책 문서, 카탈로그, 작년 보고서 같은 것 - 은 지식 베이스에 들어갑니다.
- 반복 가능한 방법 - 리드를 어떻게 검증하는지, 다이제스트를 어떻게 정리하는지 같은 것 - 은 스킬에 들어갑니다.
- 이 스레드에만 해당하는 것 - 그냥 대화 안에서 말하면 됩니다. 그 대화가 살아 있는 동안만 기억됩니다.
흔한 실수는 문서를 장기 기억에 쏟아붓는 것입니다. 그러면 일주일은 잘 굴러가지만, 그다음부터는 모든 답변이 느려지고, 비용이 늘고, 더 헷갈리게 됩니다. 에이전트가 모든 대화마다 서류 캐비닛 하나를 통째로 짊어지고 다니기 때문이죠. 문서는 문서가 가야 할 곳에 두세요.