1๏ธโฃ ๅ จๆฏๅพ๏ผMemory ็ณป็ป็ๆดไฝๆถๆ
ๅ ็ไธๅผ ๅฎๆด็ๅฐๅพ๏ผๅ้ขๆๆๅ ๅฎน้ฝๅจ่ฟๅผ ๅพ้๏ผ
โโโโโโโโโโโโโโโโโโโโ LangGraph Memory โโโโโโโโโโโโโโโโโโโโ
โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ็ญๆ่ฎฐๅฟ โ โ ้ฟๆ่ฎฐๅฟ โ โ
โ โ (State) โ โ (Store) โ โ
โ โ โ โ โ โ
โ โ Thread ่ๅด โ โ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โ Checkpointerโ โ โ่ฏญไน่ฎฐๅฟ โ โๆ
ๆฏ่ฎฐๅฟ โ โ โ
โ โ โ โ โ(ไบๅฎ) โ โ(็ป้ช) โ โ โ
โ โโโโโโโโโโโโโโโโ โ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โ โโโโโโโโโโ โ โ
โ โ โ็จๅบ่ฎฐๅฟ โ ๅๅ
ฅๆนๅผ๏ผ โ โ
โ โ โ(่งๅ) โ โข Hot Path โ โ
โ โ โโโโโโโโโโ โข Backgroundโ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2๏ธโฃ ็ญๆ่ฎฐๅฟ
ไธๆฌก่ฎฒไบๅบๆฌๆฆๅฟต๏ผ่ฟๆฌก่กฅๅ ็ฎก็็ญ็ฅ็ๆ ธๅฟๆๆณใ
้ฎ้ขๆฌ่ดจ
ๅฏน่ฏ่ถๆฅ่ถ้ฟ โ ๆถๆฏๅ่กจไธๆญๅข้ฟ โ ไธไธช็ธๅผน๐ฃ
| ๐ฃ ้ฎ้ข | ็ฑปๆฏ | ๅๆ |
|---|---|---|
| Context Window ๆบขๅบ | ไนฆๆกๅ ๆปกไบ็บธ๏ผๅๆพไธๅผ ๅฐฑๅกไบ | ็ดๆฅๆฅ้๏ผไธๅฏๆขๅค |
| ๆณจๆๅๅๆฃ | ่่ฏๆถๆกไธๆพไบๆผซ็ปไนฆ | ๅ็ญ่ดจ้ไธ้ |
| ๆๆฌ้ฃๅ | ๆฏๆฌกๅคๅฐ้ฝ่ฆๅคๅฐๅ จ้จๅๅฒๆไปถ | ๐ฐ๐ฐ๐ฐ |
็ฎก็็ญ็ฅ็ๆ ธๅฟๆๆณ๏ผไธปๅจ้ๅฟ
ไบบ็ฑปไนไธไผ่ฎฐไฝๆฏๅฅๅฏน่ฏ๏ผๆไปฌไผ่ชๅจๅ็ผฉๅ่ฟๆปคใLLM ้่ฆไฝ ๅธฎๅฎๅ่ฟไปถไบ๏ผ
# ็ญ็ฅ 1: ๆปๅจ็ชๅฃ โโ ๅชไฟ็ๆ่ฟ N ๆก
messages = [system_msg] + messages[-20:]
# ็ญ็ฅ 2: Token ้ข็ฎ โโ ไธ่ถ
่ฟ X ไธช token
# ็ญ็ฅ 3: ๆ่ฆๆฟๆข โโ ็จ LLM ๆๆงๅฏน่ฏๅ็ผฉๆไธๆฎตๆ่ฆ
# ็คบๆ๏ผ
# ๅๅง: [msg1, msg2, msg3, ..., msg50, msg51, msg52]
# ๅ็ผฉๅ: [system_msg, summary("msg1-msg50็ๆ่ฆ"), msg51, msg52]๐ก ่ฆ่ฎฐไฝ๏ผ็ญๆ่ฎฐๅฟ็ๆๆไธๆฏโๆไน่ฎฐไฝโ๏ผ่ๆฏโๆไน่ชๆๅฐ้ๅฟโใ
3๏ธโฃ ้ฟๆ่ฎฐๅฟ โ ่ฏญไน่ฎฐๅฟ๏ผSemantic Memory๏ผ
ไปไนๆฏ่ฏญไน่ฎฐๅฟ๏ผ
่ฎฐไฝไบๅฎๅๆฆๅฟตใไธๆฏๆๆฌกๅ ทไฝ็ปๅ๏ผ่ๆฏๆฝ่ฑก็็ฅ่ฏใ
| ไบบ็ฑป็่ฏญไน่ฎฐๅฟ | Agent ็่ฏญไน่ฎฐๅฟ |
|---|---|
| โๅฐ็็ปๅคช้ณ่ฝฌ" | "็จๆทๅฐๆๅฏน่ฑ็่ฟๆ" |
| "Python ๆฏ็ผ็จ่ฏญ่จ" | "่ฟไธชๅ ฌๅธ็่ดขๅนดไป 4 ๆๅผๅง" |
| "ๆณๅฝ็้ฆ้ฝๆฏๅทด้ป" | "็จๆทๅๅฅฝ็ฎๆด็ๅๅค้ฃๆ ผโ |
โ ๏ธ ่ฏญไน่ฎฐๅฟ โ ่ฏญไนๆ็ดขใ่ฏญไน่ฎฐๅฟๆฏๅฟ็ๅญฆๆฏ่ฏญ๏ผๅญไบๅฎ๏ผ๏ผ่ฏญไนๆ็ดขๆฏๆฃ็ดขๆๆฏ๏ผ็จ embedding ๆพ็ธไผผๅ ๅฎน๏ผใๅซๆททๆท๏ผ
ไธค็งๅญๅจๆจกๅผ๏ผProfile vs Collection
่ฟๆฏๆฌ่ๆๆ ธๅฟ็ๅฏนๆฏ๏ผ็จไธไธช็ๆดป็ฑปๆฏๆฅ็่งฃ๏ผ
๐ชช Profile ๆจกๅผ โ โไธๅผ ๅ็โ
ๆๆๆๅ ณไบๆไธชๅฎไฝ็ไฟกๆฏ๏ผ็ปดๆคๆไธไธช JSON ๆๆกฃ๏ผๆ็ปญๆดๆฐใ
# Profile ๆจกๅผ๏ผไธไธช็จๆท = ไธไธช JSON ๆๆกฃ
user_profile = {
"name": "ๅฐๆ",
"language": "zh-CN",
"tone_preference": "formal", # ไนๅๆฏ casual๏ผๅๆฅๆดๆฐไบ
"allergies": ["peanut"],
"favorite_topics": ["Python", "AI"],
"last_updated": "2026-02-09"
}ๆดๆฐๆต็จ๏ผ
ๆง Profile + ๆฐๅฏน่ฏ โ LLM ็ๆๆฐ Profile โ ่ฆ็ไฟๅญ
# ไผชไปฃ็ ๏ผๆดๆฐ Profile
prompt = f"""
ๅฝๅ็จๆท Profile: {old_profile}
ๆ่ฟ็ๅฏน่ฏ: {recent_conversation}
่ฏทๆ นๆฎๅฏน่ฏๆดๆฐ Profile๏ผ่พๅบๆฐ็ JSONใ
"""
new_profile = llm.invoke(prompt)
store.put(namespace, "profile", new_profile)ไผ็น๏ผ็ปๆๆธ ๆฐ๏ผไธไธๆๅฎๆด๏ผไธๆฌก่ฏปๅๅฐฑๆฟๅฐๅ จ่ฒ ็ผบ็น๏ผProfile ๅๅคงๅ๏ผLLM ๆดๆฐๅฎนๆๅบ้๏ผๆผๆๆงไฟกๆฏใๆ ผๅผ้ไนฑ๏ผ
๐ Collection ๆจกๅผ โ โไธไธชๆไปถๅคนโ
ๆฏๆก่ฎฐๅฟๆฏๆไปถๅคน้็ไธไธช็ฌ็ซๆไปถ๏ผไธๆญๆฐๅขใไฟฎๆนใๅ ้คใ
# Collection ๆจกๅผ๏ผไธไธช็จๆท = ๅคๆก็ฌ็ซ่ฎฐๅฟ
memories = [
{"id": "mem-001", "content": "็จๆทๅๅซๅฐๆ"},
{"id": "mem-002", "content": "็จๆทๅฏน่ฑ็่ฟๆ"},
{"id": "mem-003", "content": "็จๆทๅๆฌขๆญฃๅผ็่ฏญๆฐ"},
{"id": "mem-004", "content": "็จๆทๅจๅญฆ LangGraph"},
# ... ๅฏไปฅไธๆญๅขๅ
]ไผ็น๏ผ
- ๅๆก่ฎฐๅฟๅฐ่็ฒพ็กฎ๏ผLLM ๆดๅฎนๆ็ๆ
- ไธๅฎนๆไธขๅคฑไฟกๆฏ๏ผๆฐๅขๆฏไฟฎๆนๅฎนๆ๏ผ
- ๅฌๅ็๏ผrecall๏ผๆด้ซ
็ผบ็น๏ผ
- ๆดๆฐๅคๆโโ่ฆๅณๅฎๆฏโๆฐๅขโ่ฟๆฏโไฟฎๆนๅทฒๆ็โ่ฟๆฏโๅ ้คๆง็โ
- ๆ็ดขๅคๆโโ็จๅชๆก๏ผ้่ฆ่ฏญไนๆ็ดข + ่ฟๆปค
- ็ผบไนๅ จๅฑ่ง่งโโๅๆก่ฎฐๅฟๅฏ่ฝ็ผบๅฐไธไธๆๅ ณ่
๐ค ๆไน้๏ผ
| ็ปดๅบฆ | Profile | Collection |
|---|---|---|
| ไฟกๆฏ้ | ้ๅๅฐ้ใ็ปๆๅ็ไฟกๆฏ | ้ๅๅคง้ใๆ็ปญๅข้ฟ็ไฟกๆฏ |
| ๆดๆฐ้ข็ | ไฝ้ขๆดๆฐ | ้ซ้ขๆดๆฐ |
| ไฟกๆฏๅ ณ่ๆง | ไฟกๆฏไน้ดๆๅผบๅ ณ่ | ไฟกๆฏ็ธๅฏน็ฌ็ซ |
| ็ฑปๆฏ | ็ฎๅ/ไธชไบบ่ตๆๅก | ไพฟๅฉ่ดดๅข |
ๅฎ้ ้กน็ฎไธญ๏ผๅฏไปฅไธค่ ็ปๅใๆฏๅฆๆ ธๅฟๅฑๆง็จ Profile๏ผ็ป็ข็ๅๅฅฝ็จ Collectionใ
4๏ธโฃ ้ฟๆ่ฎฐๅฟ โ ๆ ๆฏ่ฎฐๅฟ๏ผEpisodic Memory๏ผ
ไปไนๆฏๆ ๆฏ่ฎฐๅฟ๏ผ
่ฎฐไฝๅ ทไฝ็็ปๅใไธๆฏๆฝ่ฑกไบๅฎ๏ผ่ๆฏโ้ฃๆฌกๆๅไบไปไน๏ผ็ปๆๅฆไฝโใ
| ไบบ็ฑป็ๆ ๆฏ่ฎฐๅฟ | Agent ็ๆ ๆฏ่ฎฐๅฟ |
|---|---|
| โไธๆฌกๆ่ตฐ้ฃๆก่ทฏๅ ต่ฝฆไบ" | "ไธๆฌก็จๆท้ฎ้จ็ฝฒ้ฎ้ขๆถ๏ผๆ็จ Docker ๆนๆก่งฃ็ญๆๆๅพๅฅฝ" |
| "็ฌฌไธๆฌก้ช่ช่ก่ฝฆๆไบ" | "ไธๆฌก่ฐ็จ API X ่ถ ๆถไบ๏ผๆขๆ API Y ๆๅไบโ |
ๅฎ็ฐๆนๅผ๏ผFew-shot Example Prompting
ๆ ๆฏ่ฎฐๅฟๅจๅฎ่ทตไธญ๏ผๆๅธธ่ง็ๅฎ็ฐๅฐฑๆฏ few-shot ็คบไพโโๆ่ฟๅปๆๅ็โ็ป้ชโไฝไธบ็คบไพๅ็ป LLMใ
# ๅ่ฎพๆไปฌๅญไบไธไบ่ฟๅป็ๆๅ็ป้ช
past_experiences = [
{
"user_input": "ๅธฎๆๅไธชๆๅบ็ฎๆณ",
"good_response": "่ฟๆฏๅฟซ้ๆๅบ็ Python ๅฎ็ฐ...(ๅ
ทไฝไปฃ็ )"
},
{
"user_input": "่งฃ้ไธไธ่ฃ
้ฅฐๅจ",
"good_response": "่ฃ
้ฅฐๅจๅฐฑๅ็คผ็ฉๅ
่ฃ
็บธ...(็ๅจ็ฑปๆฏ+ไปฃ็ )"
}
]
# ๆ้ prompt ๆถ๏ผๆ็ธๅ
ณ็ป้ชไฝไธบ few-shot ็คบไพ
prompt = f"""
ไปฅไธๆฏไธไบๅฅฝ็ๅ็ญ็คบไพ๏ผ
็คบไพ 1:
็จๆท: {past_experiences[0]["user_input"]}
ๅ็ญ: {past_experiences[0]["good_response"]}
็คบไพ 2:
็จๆท: {past_experiences[1]["user_input"]}
ๅ็ญ: {past_experiences[1]["good_response"]}
็ฐๅจ่ฏทๅ็ญ๏ผ
็จๆท: {current_user_input}
"""ๆ ธๅฟๆๆณ๏ผๆๆถๅโๅ็ปไฝ ็โๆฏโๅ่ฏไฝ ่งๅโๆดๆๆใLLM ไปไพๅญไธญๅญฆไน ็่ฝๅ้ๅธธๅผบใ
๐ก ๅญๅจๆนๅผ็้ๆฉ๏ผ
- ็จ LangGraph Store โ ็ตๆดป๏ผไปฃ็ ๆงๅถ
- ็จ LangSmith Dataset โ ๆด้ๅๅ่ฏไผฐ็ณป็ป็ปๅ๏ผๅ ็ฝฎ BM25 ็ธไผผๅบฆๆฃ็ดข
5๏ธโฃ ้ฟๆ่ฎฐๅฟ โ ็จๅบ่ฎฐๅฟ๏ผProcedural Memory๏ผ
ไปไนๆฏ็จๅบ่ฎฐๅฟ๏ผ
่ฎฐไฝ่งๅๅๆ่ฝใๅฐฑๅไฝ ้ช่ช่ก่ฝฆโโไฝ ไธ็จๆฏๆฌก้ฝโๆณโๆไน้ช๏ผ่บซไฝ่ชๅจ็ฅ้ใ
| ไบบ็ฑป็็จๅบ่ฎฐๅฟ | Agent ็็จๅบ่ฎฐๅฟ |
|---|---|
| ้ช่ช่ก่ฝฆ็่่่ฎฐๅฟ | ๆจกๅๆ้๏ผ่ฎญ็ปๅฅฝ็่ฝๅ๏ผ |
| ๆๅญๆถๆๆ่ชๅจ็งปๅจ | Agent ไปฃ็ ้ป่พ |
| ๅ้ฅญ็ๆญฅ้ชคๅไน ๆฏ | System Prompt๏ผๆๅธธ่ขซไฟฎๆน็้จๅ๏ผ |
ๅฎ็ฐๆนๅผ๏ผ่ชๆไฟฎๆน Prompt๏ผReflection๏ผ
ๅจๅฎ่ทตไธญ๏ผAgent ไธ่ฌไธไผๆน่ชๅทฑ็ไปฃ็ ๆๆจกๅๆ้๏ผไฝๅฏไปฅๆน่ชๅทฑ็ Prompt๏ผ
่ฟๅฐฑๅไธไธชๅจๅธๆ นๆฎ้ฃๅฎขๅ้ฆ่ฐๆด่ชๅทฑ็็น้ฅชไน ๆฏ๏ผ
็ฌฌ1ๅคฉ: "ๆๆ็
งๆ ๅ้ฃ่ฐฑๅไบ็บข็ง่"
้ฃๅฎขๅ้ฆ: "ๅคชๅธไบ"
็ฌฌ2ๅคฉ: "ๆ่ฎฐไฝไบ๏ผๅฐๆพ็" โ ไฟฎๆนไบ่ชๅทฑ็"็น้ฅช่งๅ"
ไปฃ็ ็คบไพ
# ่็น1: ไฝฟ็จๅฝๅๆไปคๆฅๅ็ญ
def call_model(state: State, store: BaseStore):
# ไป Store ่ฏปๅๅฝๅ็ๆไปค
namespace = ("agent_instructions",)
instructions = store.get(namespace, key="agent_a")
# ็จๆไปคๆ้ prompt
prompt = f"""
ไฝ ็่กไธบๅๅ๏ผ
{instructions.value["instructions"]}
็จๆทๆถๆฏ๏ผ
{state["messages"][-1].content}
"""
response = llm.invoke(prompt)
return {"messages": [response]}
# ่็น2: ๆ นๆฎๅ้ฆๆดๆฐๆไปค
def update_instructions(state: State, store: BaseStore):
# ่ฏปๅๅฝๅๆไปค
namespace = ("agent_instructions",)
current = store.get(namespace, key="agent_a")
# ่ฎฉ LLM ๅๆๅนถๆน่ฟๆไปค
prompt = f"""
ไฝ ๅฝๅ็่กไธบๅๅๆฏ๏ผ
{current.value["instructions"]}
ไปฅไธๆฏๆ่ฟ็ๅฏน่ฏ๏ผๅ
ๅซ็จๆทๅ้ฆ๏ผ๏ผ
{state["messages"]}
่ฏทๆ นๆฎ็จๆทๅ้ฆ๏ผๆน่ฟไฝ ็่กไธบๅๅใ
"""
output = llm.invoke(prompt)
# ไฟๅญๆฐๆไปค
store.put(
("agent_instructions",),
"agent_a",
{"instructions": output.content}
)ๆต็จๅพ๏ผ
็จๆทๅ้ฆ โ update_instructions โ Store(ๆฐ Prompt) โ call_model ่ฏปๅๆฐ Prompt โ ๆดๅฅฝ็ๅ็ญ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ก ็ฐๅฎๆกไพ๏ผๆๆกฃ้ๆๅฐไบไธไธช Tweet ็ๆๅจใๅ่ฎบๆๆ่ฆ็ prompt ๅพ้พไธๆฌกๅๅฅฝ๏ผไฝ็จๆทๅฏไปฅ่ฝปๆพๅฐ่ฏดโ่ฟๆกๆจๆๅคช้ฟไบโใโไธๅคๅธๅผไบบโ๏ผAgent ๅฐฑๆฎๆญคไฟฎๆน่ชๅทฑ็ๆ่ฆ็ๆ็ญ็ฅใ
6๏ธโฃ ๅๅ ฅๆถๆบ๏ผHot Path vs Background
่ฟๆฏไธไธชๆถๆๅณ็ญ๏ผ็ฑปๆฏๅฆไธ๏ผ
๐ฅ Hot Path โ โ่พน่่พน่ฎฐโ
ๅฐฑๅไฝ ๅๆๅ่ๅคฉๆถ๏ผๅฝๅบๅจ็ฌ่ฎฐๆฌไธ่ฎฐไธ้่ฆไฟกๆฏใ
็จๆท: ๆไธๅจ่ฆๅปไธไบฌๅบๅทฎ
Agent: (ๅฟๆณ๏ผ่ฟไธช่ฆ่ฎฐไฝ๏ผ)
โ ่ฐ็จ save_memory ๅทฅๅ
ท
โ ๅญๅจ: "็จๆทไธๅจๅปไธไบฌๅบๅทฎ"
โ ๅๅค: "ๅฅฝ็๏ผ้่ฆๆๅธฎไฝ ๆฅไธไบฌ็ๅคฉๆฐๆ้คๅ
ๆจ่ๅ๏ผ"
| โ ไผ็น | โ ็ผบ็น |
|---|---|
| ๅฎๆถๆดๆฐ๏ผ็ซๅณๅฏ็จ | ๅขๅ ๅๅบๅปถ่ฟ |
| ็จๆทๅฏๆ็ฅ๏ผ้ๆ๏ผ | Agent ่ฆโไธๅฟๅค็จโ |
| ๆฐ่ฎฐๅฟ็ซๅป็ๆ | ้่ฆ้ขๅค็ tool๏ผๅฆ save_memories๏ผ |
ไปฃ่กจไบงๅ๏ผChatGPT ็่ฎฐๅฟๅ่ฝๅฐฑๆฏ Hot Path๏ผๅฎไฝฟ็จ save_memories ๅทฅๅ
ทๅจๅฏน่ฏไธญๅณๅฎๅญไปไนใ
๐ Background โ โไบๅๆด็โ
ๅฐฑๅไฝ ็ปๆไธๅคฉ็ไผ่ฎฎๅ๏ผๆไธๅๅฎถๆด็็ฌ่ฎฐใ
็จๆทๅ Agent ๆญฃๅธธๅฏน่ฏ๏ผไธๅๆๆฐ๏ผ
โ
ๅฏน่ฏ็ปๆๅ๏ผๅๅฐๅผๆญฅไปปๅกๅฏๅจ
โ
ๅๆๅฏน่ฏ โ ๆๅๅผๅพ่ฎฐไฝ็ไฟกๆฏ โ ๅญๅ
ฅ Store
| โ ไผ็น | โ ็ผบ็น |
|---|---|
| ไธๅฝฑๅไธปๆต็จๅปถ่ฟ | ๆฐ่ฎฐๅฟไธ่ฝ็ซๅณไฝฟ็จ |
| ๅบ็จ้ป่พๅ่ฎฐๅฟ้ป่พๅ็ฆป | ้่ฆๅณๅฎโๅคไน ่ทไธๆฌกโ |
| Agent ๅฏไปฅไธๆณจๅฝๅไปปๅก | ๅ ถไป Thread ๅฏ่ฝๆๆถ็ผบๅฐๆๆฐไธไธๆ |
่งฆๅ็ญ็ฅ๏ผ
- โฐ ๅฎๆถ่งฆๅ๏ผๅฆๆฏ 5 ๅ้๏ผ
- ๐ Cron ่ฐๅบฆ๏ผๅฆๆฏๅคฉๅๆจ๏ผ
- ๐ฑ๏ธ ๆๅจ่งฆๅ๏ผ็จๆท็นโไฟๅญโๆๅฏน่ฏ็ปๆๆถ๏ผ
ๆไน้๏ผ
้่ฆๅฎๆถๆง๏ผ โโๆฏโโโ ๐ฅ Hot Path
โ
ๅฆ
โ
โ
ๅฏนๅปถ่ฟๆๆ๏ผ โโๆฏโโโ ๐ Background
โ
ๅฆ
โ
โ
ไธค่
็ปๅ๏ผๅ
ณ้ฎไฟกๆฏ Hot Path๏ผๅ
ถไฝ Background
7๏ธโฃ ๅญๅจๆบๅถ๏ผStore API ๅฎๆ
ๆๅ๏ผๆๆ้ฟๆ่ฎฐๅฟ้ฝ้่ฆไธไธช็ฉ็ๅญๅจใLangGraph ็ Store ๅฐฑๆฏ่ฟไธชๅญๅจๅฑใ
ๆ ธๅฟๆฆๅฟต
Store
โโโ Namespace (็ฑปไผผๆไปถๅคน๏ผๆฏๆๅฑ็บง)
โโโ Key (็ฑปไผผๆไปถๅ)
โโโ Value (JSON ๆๆกฃ)
ๆๅฎๆณ่ฑกๆไธไธชๆไปถ็ณป็ป๏ผ
/my-user/chitchat/ โ namespace = ("my-user", "chitchat")
โโโ a-memory.json โ key = "a-memory"
โโโ b-memory.json โ key = "b-memory"
โโโ ...
/my-user/work/ โ namespace = ("my-user", "work")
โโโ project-notes.json
โโโ ...
/org-abc/shared/ โ namespace = ("org-abc", "shared")
โโโ guidelines.json
ๅฎๆดไปฃ็ ็คบไพ
from langgraph.store.memory import InMemoryStore
# 1. ๅๅปบ Store๏ผ็ไบง็ฏๅขๅบไฝฟ็จๆฐๆฎๅบๅ็ซฏ๏ผ
def embed(texts: list[str]) -> list[list[float]]:
# ๅฎ้
้กน็ฎไธญๆฟๆขไธบ็ๆญฃ็ embedding ๅฝๆฐ
return [[1.0, 2.0] * len(texts)]
store = InMemoryStore(
index={"embed": embed, "dims": 2} # ๅฏ็จ่ฏญไนๆ็ดข
)
# 2. ๅฎไน namespace๏ผ็จๆท ID + ๅบ็จๅบๆฏ๏ผ
user_id = "xiaoming"
context = "chitchat"
namespace = (user_id, context)
# 3. ๅๅ
ฅ่ฎฐๅฟ
store.put(
namespace,
"preferences", # key
{
"rules": [
"็จๆทๅๆฌข็ฎ็ญ็ดๆฅ็่ฏญ่จ",
"็จๆทๅช่ฏดไธญๆๅ Python",
],
"tone": "formal",
},
)
# 4. ็ฒพ็กฎ่ฏปๅ๏ผ็ฅ้ key๏ผ
item = store.get(namespace, "preferences")
print(item.value)
# โ {"rules": [...], "tone": "formal"}
# 5. ๆ็ดข๏ผไธ็ฅ้ๅ
ทไฝ key๏ผไฝ็ฅ้ๅคงๆฆๅ
ๅฎน๏ผ
results = store.search(
namespace,
filter={"tone": "formal"}, # ๅ
ๅฎน่ฟๆปค
query="language preferences", # ่ฏญไนๆ็ดข
)ไธ็ง่ฎฟ้ฎๆนๅผๅฏนๆฏ
| ๆนๅผ | ็จ้ | ็ฑปๆฏ |
|---|---|---|
store.get(namespace, key) | ็ฒพ็กฎ่ทๅๆๆก่ฎฐๅฟ | ๆๅผไนฆๆถไธ็นๅฎ็้ฃๆฌไนฆ |
store.search(namespace, query=...) | ่ฏญไนๆ็ดข็ธๅ ณ่ฎฐๅฟ | ๅจๅพไนฆ้ฆๆ็ดขโๅ ณไบ AI ็ไนฆโ |
store.search(namespace, filter=...) | ๆๅญๆฎต่ฟๆปค | ็ญ้โ2026 ๅนดๅบ็็ไนฆโ |
๐ฏ ็ปๆๆป็ป
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ LangGraph Memory ๅ
จๆฏ โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ็ญๆ่ฎฐๅฟ โ โ ้ฟๆ่ฎฐๅฟ โ โ
โ โ โ โ โ โ
โ โ State โ โ ่ฏญไน่ฎฐๅฟ ๆ
ๆฏ่ฎฐๅฟ ็จๅบ่ฎฐๅฟ โ โ
โ โ Checkpointerโ โ (ไบๅฎ) (็ป้ช) (่งๅ) โ โ
โ โ โ โ Profile/ Few-shot Prompt โ โ
โ โ ็ฎก็: โ โ Collection Examples Reflection โ โ
โ โ โข ๆปๅจ็ชๅฃ โ โ โ โ
โ โ โข Token ้ๅถโ โ ๅๅ
ฅ: Hot Path / Background โ โ
โ โ โข ๆ่ฆๅ็ผฉ โ โ ๅญๅจ: Store (namespace + key + JSON) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
่ฎฐๅฟไธ้ฎ๏ผ่ฎพ่ฎก้ฟๆ่ฎฐๅฟๆถ้ฎ่ชๅทฑ๏ผ
- What โ ่ฎฐไปไน็ฑปๅ๏ผไบๅฎ๏ผ่ฏญไน๏ผ/ ็ป้ช๏ผๆ ๆฏ๏ผ/ ่งๅ๏ผ็จๅบ๏ผ
- When โ ไปไนๆถๅๅ๏ผๅฎๆถ๏ผHot Path๏ผ/ ๅผๆญฅ๏ผBackground๏ผ
- How โ ๆไน็ป็ป๏ผProfile๏ผๅๆๆกฃ๏ผ/ Collection๏ผๅคๆๆกฃ๏ผ