작동 방식
모든 내보내기는 같은 정규화된 메시지가 됩니다. 그다음 페르소나의 모든 행동이 도구 호출로 모델에 다시 재생되어, 모델은 무엇을 쓰는지뿐 아니라 어떻게 그 사람이 상호작용하는지를 배우고, 같은 방식으로 답합니다.
행동을 도구 호출로
| 페르소나가 한 일 | 기록과 실시간 응답의 도구 호출 |
|---|---|
| 텍스트 말풍선, 답장이나 부분 인용일 수도 있음 | send_message {text, reply_to?, quote?} |
| 스티커 | send_sticker {sticker_id, reply_to?} |
| 라이브러리의 GIF, 또는 MCP 도구의 URL | send_gif {gif_id | url, caption?} |
| 사진, 동영상, 음성, 오디오, 파일 | send_media {media_id, caption?} |
| 전달된 게시물 | forward_message {message_id} |
| 반응 | react {message_id, emoji} |
| (오래된 기록 떠올리기) | search_history {query} |
한 턴에 여러 호출을 하면 여러 말풍선이 됩니다. 상대방의 메시지는 ID가 가리키는 간결한 줄이 됩니다.
text
#52108 19:08 ↩ #52107에 답장 (당신: "할머니의 라자냐 🍝"): 당신은 라자냐를 한 번도 만들어 본 적이 없잖아요.
<sticker stk_156dbb381a>: 요리사 모자를 쓴 고양이가 냄비를 젓고 있음
#52107("할머니의 라자냐 🍝")에 😂 반응시스템 프롬프트
| 부분 | |
|---|---|
| 어떤 사람이어야 하는지 | 페르소나의 지식과 말투를 추정하고, 그 사람이 알 수 있는 것 이상을 절대 알지 않기 |
| 말투 프로필 | 전체 내보내기에서: 메시지 길이, 대문자, 문장부호, 이모지와 스티커 사용, 답장과 반응 습관, 턴당 말풍선 수, 원문 그대로의 예시 |
| 라이브러리 | 스티커, GIF, 미디어와 그것이 어떻게 사용되었는지 |
| 메모 | 사용자가 그 사람에 대해 쓴 내용 |
프롬프트는 채팅마다 정적입니다. 시계도, 카운터도 없습니다. 모델은 — 날짜 — 구분선과 HH:MM 타임스탬프에서 시간을 읽으며, 각 요청은 다음 요청의 바이트 단위로 동일한 접두사이므로, 공급자의 프롬프트 캐시가 계속 적중합니다.
긴 채팅
기록 예산 ────────────────────────────────────────────────▶
┌──────────────────────┬────────────────────────────────────────┐
│ 메모리 (350단어 이하)│ 최근 턴, 예산의 60 %로 잘림 │
└──────────────────────┴────────────────────────────────────────┘
관계, 사실, 자르는 지점이 오래 고정되므로
주제, 농담 캐시된 접두사도 그대로 유지됨재생되는 기록이 예산을 넘으면, 다음 응답은 먼저 가장 오래된 턴(과 이전 메모리)을 짧은 요약으로 압축합니다. 가져오기나 채팅을 열 때는 아무것도 소비되지 않습니다. 말투 프로필은 여전히 전체 내보내기에서 만들어지며, search_history는 모든 오래된 메시지에 닿습니다. 토큰 usage(프롬프트, 캐시, 완성)는 { }에 표시됩니다.
미디어 라이브러리
채팅 모델은 텍스트를 읽으므로, 스티커는 설명되기 전까지는 <sticker stk_…>일 뿐입니다. AI로 설명은 설명이 없는 항목의 이미지를 미디어 모델로 보내며, 미디어 모델은 이미지 인식을 지원해야 합니다.
- GIF, 비디오 스티커, 동영상은 순서대로 4개의 프레임으로 보내져서, 모델이 움직임을 볼 수 있습니다. 이를 위해서는 ffmpeg(
brew install ffmpeg,apt install ffmpeg,winget install ffmpeg)이 필요하며, 없으면 썸네일이 사용됩니다. - 다시 하기는 항목 하나를 다시 설명합니다. 모든 설명은 직접 편집할 수 있습니다.
- 설명은 내보내기에 속하며, 그 안의 모든 채팅에서 쓰입니다.
CLI로 직접 확인해 보세요: rooftop convert <내보내기> --persona "Jonas Weber".