A2A Memory and Personalization
메모리 설계의 최종 목적은 A2A가 이전 맥락과 사용자 특성을 바탕으로 더 정확한 추론을 하게 만드는 것이다.
메모리 단위
| 단위 | 기간/범위 | 목적 |
|---|---|---|
| Pair | user/assistant 한 쌍 | 최소 대화 원자 |
| Session | 최대 8 pair | 짧은 대화 흐름 유지 |
| Short-term | 하루 정도 | 최근 맥락과 진행 중인 작업 유지 |
| Mid-term | 일주일 정도 | 반복 주제, 최근 선호, unresolved task 유지 |
| Long-term | 장기 | 사용자 특성, 선호, 기기 사용 패턴 |
Cloud와 온디바이스 역할
온디바이스:
- 최근 turn과 session context를 보관한다.
- Cloud 요청 시 compact memory snapshot을 보낸다.
- Cloud가 내려준 memory update를 local cache에 반영한다.
Cloud:
- Planner가 필요한 수준으로 memory를 요약한다.
- long-term candidate를 추출한다.
- LangGraph/LangMem 같은 orchestration 도구를 사용하더라도 제품 schema는 유지한다.
중요한 원칙
- Memory는 현재 발화를 덮어쓰면 안 된다.
- Long-term memory는 candidate와 confirmed state를 분리한다.
- 민감 정보는 저장 정책과 삭제 정책이 있어야 한다.
- A2A route family 판단에 memory를 쓰더라도, 현재 발화의 명확한 의미가 우선이다.
Planner 입력 예시
recognized_text
voice_context.recent_turns
memory_snapshot.session_summary
memory_snapshot.profile_hints
device_context
다음 구현 방향
- memory DB schema 정의.
- session/day/week summary 생성 정책.
- long-term candidate review/confirm 정책.
- Cloud와 온디바이스 sync cursor 계약.
- Planner prompt에 memory 사용 우선순위 명시.
상세 DB schema, sync cursor, retention/delete 정책은 Memory DB and Sync Contract를 기준으로 관리한다.