[{"data":1,"prerenderedAt":2027},["ShallowReactive",2],{"/open_source/getting_started/your_first_memory":3,"surround-/open_source/getting_started/your_first_memory":2011},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":2004,"description":332,"extension":2005,"links":6,"meta":2006,"navigation":6,"path":2007,"seo":2008,"stem":2009,"__hash__":2010},"docs/en/open_source/getting_started/your_first_memory.md","Your First Memory",null,{"type":8,"value":9,"toc":1995},"minimark",[10,15,19,32,36,41,49,63,66,71,214,227,231,234,291,305,317,321,326,438,443,670,673,1920,1923,1927,1930,1975,1991],[11,12,14],"h2",{"id":13},"what-youll-learn","What You'll Learn",[16,17,18],"p",{},"By the end of this guide, you will:",[20,21,22,26,29],"ul",{},[23,24,25],"li",{},"Extract memories from plain text or chat messages.",[23,27,28],{},"Store them as semantic vectors.",[23,30,31],{},"Search and manage them using vector similarity.",[11,33,35],{"id":34},"how-it-works","How It Works",[37,38,40],"h3",{"id":39},"memory-structure","Memory Structure",[16,42,43,44,48],{},"Every memory is stored as a ",[45,46,47],"code",{},"TextualMemoryItem",":",[20,50,51,57],{},[23,52,53,56],{},[45,54,55],{},"memory",": the main text content (e.g., \"The user loves tomatoes.\")",[23,58,59,62],{},[45,60,61],{},"metadata",": extra details to make the memory searchable and manageable — type,\ntime, source, confidence, entities, tags, visibility, and updated_at.",[16,64,65],{},"These fields make each piece of memory queryable, filterable, and easy to govern.",[16,67,68,69,48],{},"For each ",[45,70,47],{},[72,73,74,90],"table",{},[75,76,77],"thead",{},[78,79,80,84,87],"tr",{},[81,82,83],"th",{},"Field",[81,85,86],{},"Example",[81,88,89],{},"What it means",[91,92,93,109,124,139,154,169,184,199],"tbody",{},[78,94,95,101,106],{},[96,97,98],"td",{},[45,99,100],{},"type",[96,102,103],{},[45,104,105],{},"\"opinion\"",[96,107,108],{},"Classify if it's a fact, event, or opinion",[78,110,111,116,121],{},[96,112,113],{},[45,114,115],{},"memory_time",[96,117,118],{},[45,119,120],{},"\"2025-07-02\"",[96,122,123],{},"When it happened",[78,125,126,131,136],{},[96,127,128],{},[45,129,130],{},"source",[96,132,133],{},[45,134,135],{},"\"conversation\"",[96,137,138],{},"Where it came from",[78,140,141,146,151],{},[96,142,143],{},[45,144,145],{},"confidence",[96,147,148],{},[45,149,150],{},"100.0",[96,152,153],{},"Certainty score (0–100)",[78,155,156,161,166],{},[96,157,158],{},[45,159,160],{},"entities",[96,162,163],{},[45,164,165],{},"[\"tomatoes\"]",[96,167,168],{},"Key concepts",[78,170,171,176,181],{},[96,172,173],{},[45,174,175],{},"tags",[96,177,178],{},[45,179,180],{},"[\"food\", \"preferences\"]",[96,182,183],{},"Extra labels for grouping",[78,185,186,191,196],{},[96,187,188],{},[45,189,190],{},"visibility",[96,192,193],{},[45,194,195],{},"\"private\"",[96,197,198],{},"Who can access it",[78,200,201,206,211],{},[96,202,203],{},[45,204,205],{},"updated_at",[96,207,208],{},[45,209,210],{},"\"2025-07-02T00:00:00Z\"",[96,212,213],{},"Last modified",[215,216,217],"note",{},[16,218,219,223,226],{},[220,221,222],"strong",{},"Best Practice",[224,225],"br",{},"You can define any metadata fields that make sense for your use case!",[37,228,230],{"id":229},"the-core-steps","The Core Steps",[16,232,233],{},"When you run this example:",[235,236,237,250,263,273],"ol",{},[23,238,239,242,243,246,247,249],{},[220,240,241],{},"Extract:","\nYour messages go through an ",[45,244,245],{},"extractor_llm",", which returns a JSON list of ",[45,248,47],{},"s.",[23,251,252,255,256,258,259,262],{},[220,253,254],{},"Embed:","\nEach memory's ",[45,257,55],{}," field is turned into an embedding vector via ",[45,260,261],{},"embedder",".",[23,264,265,268,269,272],{},[220,266,267],{},"Store:","\nThe embeddings are saved into a local ",[220,270,271],{},"Qdrant"," collection.",[23,274,275,278,279,282,283,286,287,290],{},[220,276,277],{},"Search & Manage:","\nYou can now ",[45,280,281],{},"search"," by semantic similarity, ",[45,284,285],{},"update"," by ID, or ",[45,288,289],{},"delete"," memories.",[215,292,293],{},[16,294,295,298,300,301,304],{},[220,296,297],{},"Hint",[224,299],{},"Make sure your embedder's output dimension matches your vector DB's ",[45,302,303],{},"vector_dimension",".\nMismatch may cause search errors!",[215,306,307],{},[16,308,309,311,313,314,316],{},[220,310,297],{},[224,312],{},"If your search results are too noisy or irrelevant, check whether your ",[45,315,261],{}," config and vector DB are properly initialized.",[37,318,320],{"id":319},"example-flow","Example Flow",[16,322,323],{},[220,324,325],{},"Input Messages:",[327,328,333],"pre",{"className":329,"code":330,"language":331,"meta":332,"style":332},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[\n  {\"role\": \"user\", \"content\": \"I love tomatoes.\"},\n  {\"role\": \"assistant\", \"content\": \"Great! Tomatoes are healthy.\"}\n]\n","json","",[45,334,335,344,392,432],{"__ignoreMap":332},[336,337,340],"span",{"class":338,"line":339},"line",1,[336,341,343],{"class":342},"sMK4o","[\n",[336,345,347,350,353,357,359,361,364,368,370,373,375,378,380,382,384,387,389],{"class":338,"line":346},2,[336,348,349],{"class":342},"  {",[336,351,352],{"class":342},"\"",[336,354,356],{"class":355},"spNyl","role",[336,358,352],{"class":342},[336,360,48],{"class":342},[336,362,363],{"class":342}," \"",[336,365,367],{"class":366},"sfazB","user",[336,369,352],{"class":342},[336,371,372],{"class":342},",",[336,374,363],{"class":342},[336,376,377],{"class":355},"content",[336,379,352],{"class":342},[336,381,48],{"class":342},[336,383,363],{"class":342},[336,385,386],{"class":366},"I love tomatoes.",[336,388,352],{"class":342},[336,390,391],{"class":342},"},\n",[336,393,395,397,399,401,403,405,407,410,412,414,416,418,420,422,424,427,429],{"class":338,"line":394},3,[336,396,349],{"class":342},[336,398,352],{"class":342},[336,400,356],{"class":355},[336,402,352],{"class":342},[336,404,48],{"class":342},[336,406,363],{"class":342},[336,408,409],{"class":366},"assistant",[336,411,352],{"class":342},[336,413,372],{"class":342},[336,415,363],{"class":342},[336,417,377],{"class":355},[336,419,352],{"class":342},[336,421,48],{"class":342},[336,423,363],{"class":342},[336,425,426],{"class":366},"Great! Tomatoes are healthy.",[336,428,352],{"class":342},[336,430,431],{"class":342},"}\n",[336,433,435],{"class":338,"line":434},4,[336,436,437],{"class":342},"]\n",[16,439,440],{},[220,441,442],{},"Extracted Memory:",[327,444,446],{"className":329,"code":445,"language":331,"meta":332,"style":332},"{\n  \"memory\": \"The user loves tomatoes.\",\n  \"metadata\": {\n    \"type\": \"opinion\",\n    \"memory_time\": \"2025-07-02\",\n    \"source\": \"conversation\",\n    \"confidence\": 100.0,\n    \"entities\": [\"tomatoes\"],\n    \"tags\": [\"food\", \"preferences\"],\n    \"visibility\": \"private\",\n    \"updated_at\": \"2025-07-02T00:00:00\"\n  }\n}\n",[45,447,448,453,474,487,508,528,548,565,589,620,640,659,665],{"__ignoreMap":332},[336,449,450],{"class":338,"line":339},[336,451,452],{"class":342},"{\n",[336,454,455,458,460,462,464,466,469,471],{"class":338,"line":346},[336,456,457],{"class":342},"  \"",[336,459,55],{"class":355},[336,461,352],{"class":342},[336,463,48],{"class":342},[336,465,363],{"class":342},[336,467,468],{"class":366},"The user loves tomatoes.",[336,470,352],{"class":342},[336,472,473],{"class":342},",\n",[336,475,476,478,480,482,484],{"class":338,"line":394},[336,477,457],{"class":342},[336,479,61],{"class":355},[336,481,352],{"class":342},[336,483,48],{"class":342},[336,485,486],{"class":342}," {\n",[336,488,489,492,495,497,499,501,504,506],{"class":338,"line":434},[336,490,491],{"class":342},"    \"",[336,493,100],{"class":494},"sBMFI",[336,496,352],{"class":342},[336,498,48],{"class":342},[336,500,363],{"class":342},[336,502,503],{"class":366},"opinion",[336,505,352],{"class":342},[336,507,473],{"class":342},[336,509,511,513,515,517,519,521,524,526],{"class":338,"line":510},5,[336,512,491],{"class":342},[336,514,115],{"class":494},[336,516,352],{"class":342},[336,518,48],{"class":342},[336,520,363],{"class":342},[336,522,523],{"class":366},"2025-07-02",[336,525,352],{"class":342},[336,527,473],{"class":342},[336,529,531,533,535,537,539,541,544,546],{"class":338,"line":530},6,[336,532,491],{"class":342},[336,534,130],{"class":494},[336,536,352],{"class":342},[336,538,48],{"class":342},[336,540,363],{"class":342},[336,542,543],{"class":366},"conversation",[336,545,352],{"class":342},[336,547,473],{"class":342},[336,549,551,553,555,557,559,563],{"class":338,"line":550},7,[336,552,491],{"class":342},[336,554,145],{"class":494},[336,556,352],{"class":342},[336,558,48],{"class":342},[336,560,562],{"class":561},"sbssI"," 100.0",[336,564,473],{"class":342},[336,566,568,570,572,574,576,579,581,584,586],{"class":338,"line":567},8,[336,569,491],{"class":342},[336,571,160],{"class":494},[336,573,352],{"class":342},[336,575,48],{"class":342},[336,577,578],{"class":342}," [",[336,580,352],{"class":342},[336,582,583],{"class":366},"tomatoes",[336,585,352],{"class":342},[336,587,588],{"class":342},"],\n",[336,590,592,594,596,598,600,602,604,607,609,611,613,616,618],{"class":338,"line":591},9,[336,593,491],{"class":342},[336,595,175],{"class":494},[336,597,352],{"class":342},[336,599,48],{"class":342},[336,601,578],{"class":342},[336,603,352],{"class":342},[336,605,606],{"class":366},"food",[336,608,352],{"class":342},[336,610,372],{"class":342},[336,612,363],{"class":342},[336,614,615],{"class":366},"preferences",[336,617,352],{"class":342},[336,619,588],{"class":342},[336,621,623,625,627,629,631,633,636,638],{"class":338,"line":622},10,[336,624,491],{"class":342},[336,626,190],{"class":494},[336,628,352],{"class":342},[336,630,48],{"class":342},[336,632,363],{"class":342},[336,634,635],{"class":366},"private",[336,637,352],{"class":342},[336,639,473],{"class":342},[336,641,643,645,647,649,651,653,656],{"class":338,"line":642},11,[336,644,491],{"class":342},[336,646,205],{"class":494},[336,648,352],{"class":342},[336,650,48],{"class":342},[336,652,363],{"class":342},[336,654,655],{"class":366},"2025-07-02T00:00:00",[336,657,658],{"class":342},"\"\n",[336,660,662],{"class":338,"line":661},12,[336,663,664],{"class":342},"  }\n",[336,666,668],{"class":338,"line":667},13,[336,669,431],{"class":342},[16,671,672],{},"Here's a minimal script to create, extract, store, and search a memory:",[674,675,677,682,685,696,1152,1156,1159,1290,1293,1301,1305,1308,1423,1427,1430,1489,1493,1496,1534,1538,1541,1793,1797,1800,1849,1853,1856,1896,1899,1905,1911],"steps",{"level":676},"4",[678,679,681],"h4",{"id":680},"create-a-memory-config","Create a Memory Config",[16,683,684],{},"First, create your minimal GeneralTextMemory config.\nIt contains three key parts:",[20,686,687,690,693],{},[23,688,689],{},"extractor_llm: uses an LLM to extract plaintext memories from conversations.",[23,691,692],{},"embedder: turns each memory into a vector.",[23,694,695],{},"vector_db: stores vectors and supports similarity search.",[327,697,701],{"className":698,"code":699,"language":700,"meta":332,"style":332},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from memos.configs.memory import MemoryConfigFactory\nfrom memos.memories.factory import MemoryFactory\n\nconfig = MemoryConfigFactory(\n    backend=\"general_text\",\n    config={\n        \"extractor_llm\": {\n            \"backend\": \"ollama\",\n            \"config\": {\n                \"model_name_or_path\": \"qwen3:0.6b\",\n                \"temperature\": 0.0,\n                \"remove_think_prefix\": True,\n                \"max_tokens\": 8192,\n            },\n        },\n        \"vector_db\": {\n            \"backend\": \"qdrant\",\n            \"config\": {\n                \"collection_name\": \"test_textual_memory\",\n                \"distance_metric\": \"cosine\",\n                \"vector_dimension\": 768,\n            },\n        },\n        \"embedder\": {\n            \"backend\": \"ollama\",\n            \"config\": {\n                \"model_name_or_path\": \"nomic-embed-text:latest\",\n            },\n        },\n    },\n)\n\nm = MemoryFactory.from_config(config)\n","python",[45,702,703,729,750,756,771,788,796,809,830,843,864,880,894,910,916,922,936,956,969,990,1011,1027,1032,1037,1050,1069,1082,1102,1107,1112,1118,1124,1129],{"__ignoreMap":332},[336,704,705,709,713,715,718,720,723,726],{"class":338,"line":339},[336,706,708],{"class":707},"s7zQu","from",[336,710,712],{"class":711},"sTEyZ"," memos",[336,714,262],{"class":342},[336,716,717],{"class":711},"configs",[336,719,262],{"class":342},[336,721,722],{"class":711},"memory ",[336,724,725],{"class":707},"import",[336,727,728],{"class":711}," MemoryConfigFactory\n",[336,730,731,733,735,737,740,742,745,747],{"class":338,"line":346},[336,732,708],{"class":707},[336,734,712],{"class":711},[336,736,262],{"class":342},[336,738,739],{"class":711},"memories",[336,741,262],{"class":342},[336,743,744],{"class":711},"factory ",[336,746,725],{"class":707},[336,748,749],{"class":711}," MemoryFactory\n",[336,751,752],{"class":338,"line":394},[336,753,755],{"emptyLinePlaceholder":754},true,"\n",[336,757,758,761,764,768],{"class":338,"line":434},[336,759,760],{"class":711},"config ",[336,762,763],{"class":342},"=",[336,765,767],{"class":766},"s2Zo4"," MemoryConfigFactory",[336,769,770],{"class":342},"(\n",[336,772,773,777,779,781,784,786],{"class":338,"line":510},[336,774,776],{"class":775},"sHdIc","    backend",[336,778,763],{"class":342},[336,780,352],{"class":342},[336,782,783],{"class":366},"general_text",[336,785,352],{"class":342},[336,787,473],{"class":342},[336,789,790,793],{"class":338,"line":530},[336,791,792],{"class":775},"    config",[336,794,795],{"class":342},"={\n",[336,797,798,801,803,805,807],{"class":338,"line":550},[336,799,800],{"class":342},"        \"",[336,802,245],{"class":366},[336,804,352],{"class":342},[336,806,48],{"class":342},[336,808,486],{"class":342},[336,810,811,814,817,819,821,823,826,828],{"class":338,"line":567},[336,812,813],{"class":342},"            \"",[336,815,816],{"class":366},"backend",[336,818,352],{"class":342},[336,820,48],{"class":342},[336,822,363],{"class":342},[336,824,825],{"class":366},"ollama",[336,827,352],{"class":342},[336,829,473],{"class":342},[336,831,832,834,837,839,841],{"class":338,"line":591},[336,833,813],{"class":342},[336,835,836],{"class":366},"config",[336,838,352],{"class":342},[336,840,48],{"class":342},[336,842,486],{"class":342},[336,844,845,848,851,853,855,857,860,862],{"class":338,"line":622},[336,846,847],{"class":342},"                \"",[336,849,850],{"class":366},"model_name_or_path",[336,852,352],{"class":342},[336,854,48],{"class":342},[336,856,363],{"class":342},[336,858,859],{"class":366},"qwen3:0.6b",[336,861,352],{"class":342},[336,863,473],{"class":342},[336,865,866,868,871,873,875,878],{"class":338,"line":642},[336,867,847],{"class":342},[336,869,870],{"class":366},"temperature",[336,872,352],{"class":342},[336,874,48],{"class":342},[336,876,877],{"class":561}," 0.0",[336,879,473],{"class":342},[336,881,882,884,887,889,891],{"class":338,"line":661},[336,883,847],{"class":342},[336,885,886],{"class":366},"remove_think_prefix",[336,888,352],{"class":342},[336,890,48],{"class":342},[336,892,893],{"class":342}," True,\n",[336,895,896,898,901,903,905,908],{"class":338,"line":667},[336,897,847],{"class":342},[336,899,900],{"class":366},"max_tokens",[336,902,352],{"class":342},[336,904,48],{"class":342},[336,906,907],{"class":561}," 8192",[336,909,473],{"class":342},[336,911,913],{"class":338,"line":912},14,[336,914,915],{"class":342},"            },\n",[336,917,919],{"class":338,"line":918},15,[336,920,921],{"class":342},"        },\n",[336,923,925,927,930,932,934],{"class":338,"line":924},16,[336,926,800],{"class":342},[336,928,929],{"class":366},"vector_db",[336,931,352],{"class":342},[336,933,48],{"class":342},[336,935,486],{"class":342},[336,937,939,941,943,945,947,949,952,954],{"class":338,"line":938},17,[336,940,813],{"class":342},[336,942,816],{"class":366},[336,944,352],{"class":342},[336,946,48],{"class":342},[336,948,363],{"class":342},[336,950,951],{"class":366},"qdrant",[336,953,352],{"class":342},[336,955,473],{"class":342},[336,957,959,961,963,965,967],{"class":338,"line":958},18,[336,960,813],{"class":342},[336,962,836],{"class":366},[336,964,352],{"class":342},[336,966,48],{"class":342},[336,968,486],{"class":342},[336,970,972,974,977,979,981,983,986,988],{"class":338,"line":971},19,[336,973,847],{"class":342},[336,975,976],{"class":366},"collection_name",[336,978,352],{"class":342},[336,980,48],{"class":342},[336,982,363],{"class":342},[336,984,985],{"class":366},"test_textual_memory",[336,987,352],{"class":342},[336,989,473],{"class":342},[336,991,993,995,998,1000,1002,1004,1007,1009],{"class":338,"line":992},20,[336,994,847],{"class":342},[336,996,997],{"class":366},"distance_metric",[336,999,352],{"class":342},[336,1001,48],{"class":342},[336,1003,363],{"class":342},[336,1005,1006],{"class":366},"cosine",[336,1008,352],{"class":342},[336,1010,473],{"class":342},[336,1012,1014,1016,1018,1020,1022,1025],{"class":338,"line":1013},21,[336,1015,847],{"class":342},[336,1017,303],{"class":366},[336,1019,352],{"class":342},[336,1021,48],{"class":342},[336,1023,1024],{"class":561}," 768",[336,1026,473],{"class":342},[336,1028,1030],{"class":338,"line":1029},22,[336,1031,915],{"class":342},[336,1033,1035],{"class":338,"line":1034},23,[336,1036,921],{"class":342},[336,1038,1040,1042,1044,1046,1048],{"class":338,"line":1039},24,[336,1041,800],{"class":342},[336,1043,261],{"class":366},[336,1045,352],{"class":342},[336,1047,48],{"class":342},[336,1049,486],{"class":342},[336,1051,1053,1055,1057,1059,1061,1063,1065,1067],{"class":338,"line":1052},25,[336,1054,813],{"class":342},[336,1056,816],{"class":366},[336,1058,352],{"class":342},[336,1060,48],{"class":342},[336,1062,363],{"class":342},[336,1064,825],{"class":366},[336,1066,352],{"class":342},[336,1068,473],{"class":342},[336,1070,1072,1074,1076,1078,1080],{"class":338,"line":1071},26,[336,1073,813],{"class":342},[336,1075,836],{"class":366},[336,1077,352],{"class":342},[336,1079,48],{"class":342},[336,1081,486],{"class":342},[336,1083,1085,1087,1089,1091,1093,1095,1098,1100],{"class":338,"line":1084},27,[336,1086,847],{"class":342},[336,1088,850],{"class":366},[336,1090,352],{"class":342},[336,1092,48],{"class":342},[336,1094,363],{"class":342},[336,1096,1097],{"class":366},"nomic-embed-text:latest",[336,1099,352],{"class":342},[336,1101,473],{"class":342},[336,1103,1105],{"class":338,"line":1104},28,[336,1106,915],{"class":342},[336,1108,1110],{"class":338,"line":1109},29,[336,1111,921],{"class":342},[336,1113,1115],{"class":338,"line":1114},30,[336,1116,1117],{"class":342},"    },\n",[336,1119,1121],{"class":338,"line":1120},31,[336,1122,1123],{"class":342},")\n",[336,1125,1127],{"class":338,"line":1126},32,[336,1128,755],{"emptyLinePlaceholder":754},[336,1130,1132,1135,1137,1140,1142,1145,1148,1150],{"class":338,"line":1131},33,[336,1133,1134],{"class":711},"m ",[336,1136,763],{"class":342},[336,1138,1139],{"class":711}," MemoryFactory",[336,1141,262],{"class":342},[336,1143,1144],{"class":766},"from_config",[336,1146,1147],{"class":342},"(",[336,1149,836],{"class":766},[336,1151,1123],{"class":342},[678,1153,1155],{"id":1154},"extract-memories-from-messages","Extract Memories from Messages",[16,1157,1158],{},"Give your LLM a simple dialogue and see how it extracts structured plaintext memories.",[327,1160,1162],{"className":698,"code":1161,"language":700,"meta":332,"style":332},"memories = m.extract(\n    [\n        {\"role\": \"user\", \"content\": \"I love tomatoes.\"},\n        {\"role\": \"assistant\", \"content\": \"Great! Tomatoes are delicious.\"},\n    ]\n)\nprint(\"Extracted:\", memories)\n",[45,1163,1164,1181,1186,1223,1260,1265,1269],{"__ignoreMap":332},[336,1165,1166,1169,1171,1174,1176,1179],{"class":338,"line":339},[336,1167,1168],{"class":711},"memories ",[336,1170,763],{"class":342},[336,1172,1173],{"class":711}," m",[336,1175,262],{"class":342},[336,1177,1178],{"class":766},"extract",[336,1180,770],{"class":342},[336,1182,1183],{"class":338,"line":346},[336,1184,1185],{"class":342},"    [\n",[336,1187,1188,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221],{"class":338,"line":394},[336,1189,1190],{"class":342},"        {",[336,1192,352],{"class":342},[336,1194,356],{"class":366},[336,1196,352],{"class":342},[336,1198,48],{"class":342},[336,1200,363],{"class":342},[336,1202,367],{"class":366},[336,1204,352],{"class":342},[336,1206,372],{"class":342},[336,1208,363],{"class":342},[336,1210,377],{"class":366},[336,1212,352],{"class":342},[336,1214,48],{"class":342},[336,1216,363],{"class":342},[336,1218,386],{"class":366},[336,1220,352],{"class":342},[336,1222,391],{"class":342},[336,1224,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1256,1258],{"class":338,"line":434},[336,1226,1190],{"class":342},[336,1228,352],{"class":342},[336,1230,356],{"class":366},[336,1232,352],{"class":342},[336,1234,48],{"class":342},[336,1236,363],{"class":342},[336,1238,409],{"class":366},[336,1240,352],{"class":342},[336,1242,372],{"class":342},[336,1244,363],{"class":342},[336,1246,377],{"class":366},[336,1248,352],{"class":342},[336,1250,48],{"class":342},[336,1252,363],{"class":342},[336,1254,1255],{"class":366},"Great! Tomatoes are delicious.",[336,1257,352],{"class":342},[336,1259,391],{"class":342},[336,1261,1262],{"class":338,"line":510},[336,1263,1264],{"class":342},"    ]\n",[336,1266,1267],{"class":338,"line":530},[336,1268,1123],{"class":342},[336,1270,1271,1274,1276,1278,1281,1283,1285,1288],{"class":338,"line":550},[336,1272,1273],{"class":766},"print",[336,1275,1147],{"class":342},[336,1277,352],{"class":342},[336,1279,1280],{"class":366},"Extracted:",[336,1282,352],{"class":342},[336,1284,372],{"class":342},[336,1286,1287],{"class":766}," memories",[336,1289,1123],{"class":342},[16,1291,1292],{},"You'll get a list of TextualMemoryItem, with each of them like:",[327,1294,1299],{"className":1295,"code":1297,"language":1298,"meta":332},[1296],"language-text","TextualMemoryItem(\n  id='...',\n  memory='The user loves tomatoes.',\n  metadata=...\n)\n","text",[45,1300,1297],{"__ignoreMap":332},[678,1302,1304],{"id":1303},"add-memories-to-your-vector-db","Add Memories to Your Vector DB",[16,1306,1307],{},"Save the extracted memories to your vector DB and demonstrate adding a custom plaintext memory manually (with a custom ID).",[327,1309,1311],{"className":698,"code":1310,"language":700,"meta":332,"style":332},"m.add(memories)\nm.add([\n    {\n        \"id\": \"a19b6caa-5d59-42ad-8c8a-e4f7118435b4\",\n        \"memory\": \"User is Chinese.\",\n        \"metadata\": {\"type\": \"opinion\"},\n    }\n])\n",[45,1312,1313,1329,1340,1345,1365,1384,1413,1418],{"__ignoreMap":332},[336,1314,1315,1318,1320,1323,1325,1327],{"class":338,"line":339},[336,1316,1317],{"class":711},"m",[336,1319,262],{"class":342},[336,1321,1322],{"class":766},"add",[336,1324,1147],{"class":342},[336,1326,739],{"class":766},[336,1328,1123],{"class":342},[336,1330,1331,1333,1335,1337],{"class":338,"line":346},[336,1332,1317],{"class":711},[336,1334,262],{"class":342},[336,1336,1322],{"class":766},[336,1338,1339],{"class":342},"([\n",[336,1341,1342],{"class":338,"line":394},[336,1343,1344],{"class":342},"    {\n",[336,1346,1347,1349,1352,1354,1356,1358,1361,1363],{"class":338,"line":434},[336,1348,800],{"class":342},[336,1350,1351],{"class":366},"id",[336,1353,352],{"class":342},[336,1355,48],{"class":342},[336,1357,363],{"class":342},[336,1359,1360],{"class":366},"a19b6caa-5d59-42ad-8c8a-e4f7118435b4",[336,1362,352],{"class":342},[336,1364,473],{"class":342},[336,1366,1367,1369,1371,1373,1375,1377,1380,1382],{"class":338,"line":510},[336,1368,800],{"class":342},[336,1370,55],{"class":366},[336,1372,352],{"class":342},[336,1374,48],{"class":342},[336,1376,363],{"class":342},[336,1378,1379],{"class":366},"User is Chinese.",[336,1381,352],{"class":342},[336,1383,473],{"class":342},[336,1385,1386,1388,1390,1392,1394,1397,1399,1401,1403,1405,1407,1409,1411],{"class":338,"line":530},[336,1387,800],{"class":342},[336,1389,61],{"class":366},[336,1391,352],{"class":342},[336,1393,48],{"class":342},[336,1395,1396],{"class":342}," {",[336,1398,352],{"class":342},[336,1400,100],{"class":366},[336,1402,352],{"class":342},[336,1404,48],{"class":342},[336,1406,363],{"class":342},[336,1408,503],{"class":366},[336,1410,352],{"class":342},[336,1412,391],{"class":342},[336,1414,1415],{"class":338,"line":550},[336,1416,1417],{"class":342},"    }\n",[336,1419,1420],{"class":338,"line":567},[336,1421,1422],{"class":342},"])\n",[678,1424,1426],{"id":1425},"search-memories","Search Memories",[16,1428,1429],{},"Now test similarity search!\nType any natural language query and find related memories.",[327,1431,1433],{"className":698,"code":1432,"language":700,"meta":332,"style":332},"results = m.search(\"Tell me more about the user\", top_k=2)\nprint(\"Search results:\", results)\n",[45,1434,1435,1469],{"__ignoreMap":332},[336,1436,1437,1440,1442,1444,1446,1448,1450,1452,1455,1457,1459,1462,1464,1467],{"class":338,"line":339},[336,1438,1439],{"class":711},"results ",[336,1441,763],{"class":342},[336,1443,1173],{"class":711},[336,1445,262],{"class":342},[336,1447,281],{"class":766},[336,1449,1147],{"class":342},[336,1451,352],{"class":342},[336,1453,1454],{"class":366},"Tell me more about the user",[336,1456,352],{"class":342},[336,1458,372],{"class":342},[336,1460,1461],{"class":775}," top_k",[336,1463,763],{"class":342},[336,1465,1466],{"class":561},"2",[336,1468,1123],{"class":342},[336,1470,1471,1473,1475,1477,1480,1482,1484,1487],{"class":338,"line":346},[336,1472,1273],{"class":766},[336,1474,1147],{"class":342},[336,1476,352],{"class":342},[336,1478,1479],{"class":366},"Search results:",[336,1481,352],{"class":342},[336,1483,372],{"class":342},[336,1485,1486],{"class":766}," results",[336,1488,1123],{"class":342},[678,1490,1492],{"id":1491},"get-memories-by-id","Get Memories by ID",[16,1494,1495],{},"Fetch any memory directly by its ID:",[327,1497,1499],{"className":698,"code":1498,"language":700,"meta":332,"style":332},"print(\"Get one by ID:\", m.get(\"a19b6caa-5d59-42ad-8c8a-e4f7118435b4\"))\n",[45,1500,1501],{"__ignoreMap":332},[336,1502,1503,1505,1507,1509,1512,1514,1516,1518,1520,1523,1525,1527,1529,1531],{"class":338,"line":339},[336,1504,1273],{"class":766},[336,1506,1147],{"class":342},[336,1508,352],{"class":342},[336,1510,1511],{"class":366},"Get one by ID:",[336,1513,352],{"class":342},[336,1515,372],{"class":342},[336,1517,1173],{"class":766},[336,1519,262],{"class":342},[336,1521,1522],{"class":766},"get",[336,1524,1147],{"class":342},[336,1526,352],{"class":342},[336,1528,1360],{"class":366},[336,1530,352],{"class":342},[336,1532,1533],{"class":342},"))\n",[678,1535,1537],{"id":1536},"update-a-memory","Update a Memory",[16,1539,1540],{},"Need to fix or refine a memory?\nUpdate it by ID and re-embed the new version.",[327,1542,1544],{"className":698,"code":1543,"language":700,"meta":332,"style":332},"m.update(\n    \"a19b6caa-5d59-42ad-8c8a-e4f7118435b4\",\n    {\n        \"memory\": \"User is Canadian.\",\n        \"metadata\": {\n            \"type\": \"opinion\",\n            \"confidence\": 85,\n            \"memory_time\": \"2025-05-24\",\n            \"source\": \"conversation\",\n            \"entities\": [\"Canadian\"],\n            \"tags\": [\"happy\"],\n            \"visibility\": \"private\",\n            \"updated_at\": \"2025-05-19T00:00:00\",\n        },\n    }\n)\nprint(\"Updated:\", m.get(\"a19b6caa-5d59-42ad-8c8a-e4f7118435b4\"))\n",[45,1545,1546,1556,1566,1570,1589,1601,1619,1634,1653,1671,1692,1713,1731,1750,1754,1758,1762],{"__ignoreMap":332},[336,1547,1548,1550,1552,1554],{"class":338,"line":339},[336,1549,1317],{"class":711},[336,1551,262],{"class":342},[336,1553,285],{"class":766},[336,1555,770],{"class":342},[336,1557,1558,1560,1562,1564],{"class":338,"line":346},[336,1559,491],{"class":342},[336,1561,1360],{"class":366},[336,1563,352],{"class":342},[336,1565,473],{"class":342},[336,1567,1568],{"class":338,"line":394},[336,1569,1344],{"class":342},[336,1571,1572,1574,1576,1578,1580,1582,1585,1587],{"class":338,"line":434},[336,1573,800],{"class":342},[336,1575,55],{"class":366},[336,1577,352],{"class":342},[336,1579,48],{"class":342},[336,1581,363],{"class":342},[336,1583,1584],{"class":366},"User is Canadian.",[336,1586,352],{"class":342},[336,1588,473],{"class":342},[336,1590,1591,1593,1595,1597,1599],{"class":338,"line":510},[336,1592,800],{"class":342},[336,1594,61],{"class":366},[336,1596,352],{"class":342},[336,1598,48],{"class":342},[336,1600,486],{"class":342},[336,1602,1603,1605,1607,1609,1611,1613,1615,1617],{"class":338,"line":530},[336,1604,813],{"class":342},[336,1606,100],{"class":366},[336,1608,352],{"class":342},[336,1610,48],{"class":342},[336,1612,363],{"class":342},[336,1614,503],{"class":366},[336,1616,352],{"class":342},[336,1618,473],{"class":342},[336,1620,1621,1623,1625,1627,1629,1632],{"class":338,"line":550},[336,1622,813],{"class":342},[336,1624,145],{"class":366},[336,1626,352],{"class":342},[336,1628,48],{"class":342},[336,1630,1631],{"class":561}," 85",[336,1633,473],{"class":342},[336,1635,1636,1638,1640,1642,1644,1646,1649,1651],{"class":338,"line":567},[336,1637,813],{"class":342},[336,1639,115],{"class":366},[336,1641,352],{"class":342},[336,1643,48],{"class":342},[336,1645,363],{"class":342},[336,1647,1648],{"class":366},"2025-05-24",[336,1650,352],{"class":342},[336,1652,473],{"class":342},[336,1654,1655,1657,1659,1661,1663,1665,1667,1669],{"class":338,"line":591},[336,1656,813],{"class":342},[336,1658,130],{"class":366},[336,1660,352],{"class":342},[336,1662,48],{"class":342},[336,1664,363],{"class":342},[336,1666,543],{"class":366},[336,1668,352],{"class":342},[336,1670,473],{"class":342},[336,1672,1673,1675,1677,1679,1681,1683,1685,1688,1690],{"class":338,"line":622},[336,1674,813],{"class":342},[336,1676,160],{"class":366},[336,1678,352],{"class":342},[336,1680,48],{"class":342},[336,1682,578],{"class":342},[336,1684,352],{"class":342},[336,1686,1687],{"class":366},"Canadian",[336,1689,352],{"class":342},[336,1691,588],{"class":342},[336,1693,1694,1696,1698,1700,1702,1704,1706,1709,1711],{"class":338,"line":642},[336,1695,813],{"class":342},[336,1697,175],{"class":366},[336,1699,352],{"class":342},[336,1701,48],{"class":342},[336,1703,578],{"class":342},[336,1705,352],{"class":342},[336,1707,1708],{"class":366},"happy",[336,1710,352],{"class":342},[336,1712,588],{"class":342},[336,1714,1715,1717,1719,1721,1723,1725,1727,1729],{"class":338,"line":661},[336,1716,813],{"class":342},[336,1718,190],{"class":366},[336,1720,352],{"class":342},[336,1722,48],{"class":342},[336,1724,363],{"class":342},[336,1726,635],{"class":366},[336,1728,352],{"class":342},[336,1730,473],{"class":342},[336,1732,1733,1735,1737,1739,1741,1743,1746,1748],{"class":338,"line":667},[336,1734,813],{"class":342},[336,1736,205],{"class":366},[336,1738,352],{"class":342},[336,1740,48],{"class":342},[336,1742,363],{"class":342},[336,1744,1745],{"class":366},"2025-05-19T00:00:00",[336,1747,352],{"class":342},[336,1749,473],{"class":342},[336,1751,1752],{"class":338,"line":912},[336,1753,921],{"class":342},[336,1755,1756],{"class":338,"line":918},[336,1757,1417],{"class":342},[336,1759,1760],{"class":338,"line":924},[336,1761,1123],{"class":342},[336,1763,1764,1766,1768,1770,1773,1775,1777,1779,1781,1783,1785,1787,1789,1791],{"class":338,"line":938},[336,1765,1273],{"class":766},[336,1767,1147],{"class":342},[336,1769,352],{"class":342},[336,1771,1772],{"class":366},"Updated:",[336,1774,352],{"class":342},[336,1776,372],{"class":342},[336,1778,1173],{"class":766},[336,1780,262],{"class":342},[336,1782,1522],{"class":766},[336,1784,1147],{"class":342},[336,1786,352],{"class":342},[336,1788,1360],{"class":366},[336,1790,352],{"class":342},[336,1792,1533],{"class":342},[678,1794,1796],{"id":1795},"delete-memories","Delete Memories",[16,1798,1799],{},"Remove one or more memories cleanly",[327,1801,1803],{"className":698,"code":1802,"language":700,"meta":332,"style":332},"m.delete([\"a19b6caa-5d59-42ad-8c8a-e4f7118435b4\"])\nprint(\"Remaining:\", m.get_all())\n",[45,1804,1805,1824],{"__ignoreMap":332},[336,1806,1807,1809,1811,1813,1816,1818,1820,1822],{"class":338,"line":339},[336,1808,1317],{"class":711},[336,1810,262],{"class":342},[336,1812,289],{"class":766},[336,1814,1815],{"class":342},"([",[336,1817,352],{"class":342},[336,1819,1360],{"class":366},[336,1821,352],{"class":342},[336,1823,1422],{"class":342},[336,1825,1826,1828,1830,1832,1835,1837,1839,1841,1843,1846],{"class":338,"line":346},[336,1827,1273],{"class":766},[336,1829,1147],{"class":342},[336,1831,352],{"class":342},[336,1833,1834],{"class":366},"Remaining:",[336,1836,352],{"class":342},[336,1838,372],{"class":342},[336,1840,1173],{"class":766},[336,1842,262],{"class":342},[336,1844,1845],{"class":766},"get_all",[336,1847,1848],{"class":342},"())\n",[678,1850,1852],{"id":1851},"dump-memories-to-disk","Dump Memories to Disk",[16,1854,1855],{},"Finally, dump all your memories to local storage:",[327,1857,1859],{"className":698,"code":1858,"language":700,"meta":332,"style":332},"m.dump(\"tmp/mem\")\nprint(\"Memory dumped to tmp/mem\")\n",[45,1860,1861,1881],{"__ignoreMap":332},[336,1862,1863,1865,1867,1870,1872,1874,1877,1879],{"class":338,"line":339},[336,1864,1317],{"class":711},[336,1866,262],{"class":342},[336,1868,1869],{"class":766},"dump",[336,1871,1147],{"class":342},[336,1873,352],{"class":342},[336,1875,1876],{"class":366},"tmp/mem",[336,1878,352],{"class":342},[336,1880,1123],{"class":342},[336,1882,1883,1885,1887,1889,1892,1894],{"class":338,"line":346},[336,1884,1273],{"class":766},[336,1886,1147],{"class":342},[336,1888,352],{"class":342},[336,1890,1891],{"class":366},"Memory dumped to tmp/mem",[336,1893,352],{"class":342},[336,1895,1123],{"class":342},[16,1897,1898],{},"By default, your memories are saved to:",[327,1900,1903],{"className":1901,"code":1902,"language":1298},[1296],"\u003Cyour_dir>/\u003Cconfig.memory_filename>\n",[45,1904,1902],{"__ignoreMap":332},[16,1906,1907,1908,262],{},"They can be reloaded anytime with ",[45,1909,1910],{},"load()",[215,1912,1913],{},[16,1914,1915,1916,1919],{},"By default, your dumped memories are saved to the file path you set in your config.\nAlways check ",[45,1917,1918],{},"config.memory_filename"," if you want to customize it.",[16,1921,1922],{},"Now your agent remembers — no more stateless chatbots!",[11,1924,1926],{"id":1925},"whats-next","What's Next?",[16,1928,1929],{},"Ready to level up?",[20,1931,1932,1938,1949,1959],{},[23,1933,1934,1937],{},[220,1935,1936],{},"Try your own LLM backend:"," Swap to OpenAI, HuggingFace, or Ollama.",[23,1939,1940,1948],{},[220,1941,1942,1943,48],{},"Explore ",[1944,1945,1947],"a",{"href":1946},"/open_source/modules/memories/tree_textual_memory","TreeTextMemory"," Build a graph-based,\nhierarchical memory.",[23,1950,1951,1958],{},[220,1952,1953,1954,48],{},"Add ",[1944,1955,1957],{"href":1956},"/open_source/modules/memories/kv_cache_memory","Activation Memory"," Cache key-value\nstates for faster inference.",[23,1960,1961,1964,1965,1969,1970,1974],{},[220,1962,1963],{},"Dive deeper:"," Check the ",[1944,1966,1968],{"href":1967},"/api-reference/search-memories","API Reference"," and ",[1944,1971,1973],{"href":1972},"/open_source/getting_started/examples","Examples"," for advanced workflows.",[215,1976,1977],{},[16,1978,1979,1982,1984,1985,1987,1988,1990],{},[220,1980,1981],{},"Try Graph Textual Memory",[224,1983],{},"Try switching to\n",[45,1986,1947],{}," to add a graph-based, hierarchical structure to your memories.",[224,1989],{},"Perfect for scenarios that need explainability and long-term structured knowledge.",[1992,1993,1994],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":332,"searchDepth":346,"depth":346,"links":1996},[1997,1998,2003],{"id":13,"depth":346,"text":14},{"id":34,"depth":346,"text":35,"children":1999},[2000,2001,2002],{"id":39,"depth":394,"text":40},{"id":229,"depth":394,"text":230},{"id":319,"depth":394,"text":320},{"id":1925,"depth":346,"text":1926},"Let’s build your first plaintext memory in MemOS! **GeneralTextMemory** is the easiest way to get hands-on with extracting, embedding, and searching simple text memories.","md",{},"/en/open_source/getting_started/your_first_memory",{"title":5,"description":332},"en/open_source/getting_started/your_first_memory","XJj6nMMSItlPEJSQ93170UoPjVNfQJ9F0ZYAhqIVM24",[2012,2020],{"title":2013,"path":2014,"stem":2015,"icon":2016,"framework":6,"module":6,"class":2017,"target":-1,"active":2018,"defaultOpen":2018,"children":-1,"description":2019},"Installation Guide","/open_source/getting_started/installation","open_source/getting_started/installation","i-ri-install-line",[],false,"Complete installation guide for MemOS.",{"title":2021,"path":2022,"stem":2023,"icon":2024,"framework":6,"module":6,"class":2025,"target":-1,"active":2018,"defaultOpen":2018,"children":-1,"description":2026},"Core Concepts","/open_source/home/core_concepts","open_source/home/core_concepts","i-ri-lightbulb-line",[],"MemOS treats memory as a first-class citizen. Its core design revolves around how to orchestrate, store, retrieve, and govern memory for your LLM applications.",1770372087858]