← 노드 한 장 전체#42 · Simple Memory
Simple Memory
아까 말한 프로젝트 별칭 기억할까?
이 글은 이런 분께챗봇이 같은 대화의 앞말을 기억하게 하고 세션별로 구분하고 싶은 분

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요
아까 말한 프로젝트 별칭, 기억할까요?
노드 한 장 #42 · Simple Memory
먼저 결과부터
Simple Memory는 AI Agent에 이전 대화를 전달하는 n8n 인메모리 메모리예요. 직접 작성한 가상 별칭 ‘달빛배’를 TEST_SESSION_A에 알려 준 뒤 같은 A에서 물으니 ‘달빛배’, 새 TEST_SESSION_B에서는 ‘기억된 별칭이 없습니다.’라고 답했어요. 실제 실행 #74815·#74816·#74817의 runData에서 회상 전 이전 메시지는 각각 0·2·0개였어요. 샘플 대화·AI 출력이며 영구 DB 기억이나 큐 모드 운영 안전성을 검증한 결과는 아니에요.
우리가 실제로 돌린 기록 · 실행 #74817 · 2026-10-30
우리가 실제로 돌린 기록 · 실행 #74817 · 2026-10-30
- TEST_SESSION_A 첫 대화: 별칭을 알려 줌 → “기억했습니다.”
- 같은 A 두 번째 대화: 앞서 말한 별칭 질문 → “달빛배”
- 새 TEST_SESSION_B 첫 대화: 같은 질문 → “기억된 별칭이 없습니다.”

따라 하기
아래 설정값은 이 영상에 나온 워크플로우 JSON에서 그대로 가져왔어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 실제로 넣은 값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.
Step 1. Manual Trigger 노드 추가이름: Run manually
설정 없이 그대로 추가해요.
Step 2. Code 노드 추가이름: Prepare sample
| JavaScript | // 직접 작성한 샘플 대화: 1회 실행 후 아래 chatInput을 질문으로 바꿔 같은 세션에서 실행하세요.
return [{json:{sample:true,sessionId:'TEST_SESSION_A',sessionLabel:'TEST_SESSION_A',turn:1,chatInput:"가상 프로젝트 별칭은 '달빛배'야. 기억해 줘."}}]; |
Step 3. AI Agent 노드 추가이름: AI Agent
| Source for Prompt (User Message) | Define below |
| Prompt (User Message) | {{ $json.chatInput }} |
| Options › System Message | 당신은 가상 프로젝트 별칭을 기억하는 실습 도우미입니다. 기억해 달라는 요청에는 '기억했습니다.'라고만 답하세요. 별칭을 질문받으면 이전 대화에 명시된 별칭만 그대로 답하세요. 이전 대화나 현재 입력에 별칭이 없다면 추측하지 말고 '기억된 별칭이 없습니다.'라고만 답하세요. 한국어로 간결하게 답하세요. |
| Options › Max Iterations | 2 |
Step 4. OpenAI Chat Model 노드 추가이름: OpenAI Chat Model
| Model | gpt-4.1-mini |
| Use Responses API | 꺼짐 |
| Options › Sampling Temperature | 0 |
| Options › Maximum Number of Tokens | 150 |
Step 5. Simple Memory 노드 추가이름: Simple Memory
| Session ID | Define below |
| Key | {{ $json.sessionId }} |
| Context Window Length | 5 |
Step 6. Edit Fields (Set) 노드 추가이름: Show safe result
| 필드 1 | session · string · {{ $('Prepare sample').first().json.sessionLabel }} |
| 필드 2 | turn · number · {{ $('Prepare sample').first().json.turn }} |
| 필드 3 | sample_message · string · {{ $('Prepare sample').first().json.chatInput }} |
| 필드 4 | ai_output · string · {{ $json.output }} |
| 필드 5 | sample · boolean · 켜짐 |
가져와서 쓸 때 확인할 것
- 샘플 대화입니다. OpenAI 자격 증명을 연결한 뒤 Prepare sample의 chatInput으로 별칭을 알려 주고 실행하세요. 같은 sessionId를 유지한 채 chatInput을 별칭 질문으로 바꾸면 회상 실습, sessionId와 sessionLabel을 TEST_SESSION_B로 바꾸면 새 세션 비교입니다. 공개 JSON의 TEST_SESSION_A/B는 본인 테스트용 키로 바꿔 주세요. 영구 저장이나 큐 모드 운영 안전성을 검증한 결과는 아닙니다.
- YOUR_… 표시를 내 값으로 바꾸고, 계정이 필요한 서비스 노드만 자격 증명을 연결하세요. 그런 칸이나 노드가 없는 예제는 추가 계정 없이 실행할 수 있어요.
노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.