대화 버퍼 메모리
에이전트의 문맥 안에서 과거 상호작용을 저장하고 불러오는 기본 대화 메모리를 구현합니다.
대화 버퍼 메모리은(는) CoddyKit의 무료 AI Agents with LangChain & Autonomous Workflows 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents with LangChain & Autonomous Workflows 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents with LangChain & Autonomous Workflows 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
Why Agents Need Memory
Imagine having a conversation where you instantly forget everything said just a moment ago. That's what happens to an AI agent without memory!
Agents often need to recall past interactions to maintain context. Without memory, each turn is a fresh start, leading to repetitive or nonsensical conversations.
What is Buffer Memory?
ConversationBufferMemory is LangChain's simplest memory type. It stores the raw, unsummarized conversation history directly.
Think of it like keeping a full transcript of everything said, in the exact order it was said. It's straightforward and easy to use for basic conversational recall.
Initializing Buffer Memory
To use ConversationBufferMemory, you simply import it and create an instance. It's often integrated into a Chain, but we can explore it standalone first.
Let's initialize a memory object and peek at its initial (empty) state:
from langchain.memory import ConversationBufferMemory
# Initialize the memory
memory = ConversationBufferMemory()
print("Memory initialized!")
# You can see its content (it will be empty at first)
print(memory.load_memory_variables({}))Saving Conversation Context
The save_context method is how you add new user inputs and AI outputs to the memory. It takes two dictionaries: one for inputs and one for outputs.
This method is crucial because it's how the memory 'learns' from the ongoing conversation and builds its history.
Code Demo: Saving Context
Let's add a simple interaction to our memory object and see how it stores the conversation turn.
Notice how the 'input' and 'output' are paired and stored as 'Human' and 'AI' messages.
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
# Simulate a user input and an AI response
memory.save_context(
{"input": "Hi there!"},
{"output": "Hello! How can I help you?"}
)
print("Memory after one turn:")
print(memory.load_memory_variables({}))Retrieving Stored History
To access the stored conversation history, you use the load_memory_variables method. It returns a dictionary containing the memory content.
By default, the conversation history is stored under the key 'history'. This key is what you'll typically pass into your LLM's prompt template.
Customizing the Memory Key
By default, ConversationBufferMemory stores history under the key 'history'. However, your prompt template might expect a different variable name, like 'chat_history'.
You can change this using the memory_key parameter during initialization:
from langchain.memory import ConversationBufferMemory
# Initialize with a custom memory_key
memory = ConversationBufferMemory(memory_key="my_chat_history")
memory.save_context(
{"input": "What's up?"},
{"output": "Not much, just coding!"}
)
print("Memory with custom key:")
print(memory.load_memory_variables({}))Integrating with an LLM Chain
Here's how you integrate ConversationBufferMemory into an LLMChain. The memory_key in the ConversationBufferMemory must match the variable name in your PromptTemplate (e.g., chat_history).
Remember to replace 'YOUR_API_KEY' with your actual OpenAI key if you want to run this example fully.
from langchain.memory import ConversationBufferMemory
from langchain.chains import LLMChain
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
import os
# Set your OpenAI API key (replace with your actual key or env var)
# os.environ["OPENAI_API_KEY"] = "YOUR_API_KEY"
# Initialize LLM (using a dummy if API key not set)
llm = OpenAI(temperature=0) # You might need to set openai_api_key=os.environ.get("OPENAI_API_KEY")
# Initialize memory with a key matching the prompt template
memory = ConversationBufferMemory(memory_key="chat_history")
# Define a prompt template that expects 'chat_history'
template = """You are a friendly chatbot.
{chat_history}
Human: {human_input}
AI:"""
prompt = PromptTemplate(
input_variables=["chat_history", "human_input"],
template=template
)
# Create an LLMChain with the memory
conversation = LLMChain(
llm=llm,
prompt=prompt,
verbose=False,
memory=memory
)
# First turn
print("Human: What is your capital?")
response1 = conversation.predict(human_input="What is your capital?")
print(f"AI: {response1}")
# Second turn - the AI should remember the context
print("\nHuman: And what about its population?")
response2 = conversation.predict(human_input="And what about its population?")
print(f"AI: {response2}")When to Use Buffer Memory
ConversationBufferMemory is excellent for short, direct conversations where you need exact recall of recent turns.
- Pros: Simple to implement, stores full, unedited conversation details.
- Cons: Can quickly exceed the LLM's context window for longer chats, no summarization or filtering, leading to higher token usage and costs.
Quick Check
Let's test your understanding of ConversationBufferMemory.
Buffer Memory Summary
We've successfully explored ConversationBufferMemory, LangChain's simplest way to give agents a basic form of memory:
- It stores raw conversation history.
- You use
save_contextto add turns andload_memory_variablesto retrieve them. - It's ideal for short, direct conversations but can quickly hit LLM context limits with longer chats.
- Remember to set
memory_keyif your prompt expects a different variable name for history.
Next, we'll dive into more advanced memory solutions that handle longer conversations better!
자주 묻는 질문
“대화 버퍼 메모리” 강의는 무료인가요?
네 — “대화 버퍼 메모리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents with LangChain & Autonomous Workflows 강의 전체를 잠금 해제할 수 있습니다. AI Agents with LangChain & Autonomous Workflows 강의에는 총 4개의 강의가 포함되어 있습니다.
“대화 버퍼 메모리”에서 뭘 배우나요?
에이전트의 문맥 안에서 과거 상호작용을 저장하고 불러오는 기본 대화 메모리를 구현합니다. 브라우저에서 직접 실행하는 실습 코드로 AI Agents with LangChain & Autonomous Workflows을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Agents with LangChain & Autonomous Workflows을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents with LangChain & Autonomous Workflows은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“대화 버퍼 메모리” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Agents with LangChain & Autonomous Workflows 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Agents with LangChain & Autonomous Workflows 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 에이전트 메모리 개념
- 대화 버퍼 메모리
- 고급 메모리 솔루션
- 엔터티 및 요약 메모리 전략