Supermemory рдХреНрдпрд╛ рд╣реИ?
Supermemory рдХреЛ рдПрдЬреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП AI рдореЗрдореЛрд░реА API рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдпреВрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ Supermemory рдХреЛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╛рдж рдореЗрдВ рдЙрд╕ рдпреВрдЬрд╝рд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡реНрдпреВ рд▓реМрдЯрд╛рддреА рд╣реИтАФрд╡реЗ рдХреМрди рд╣реИрдВ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдореНрдмреЗрдбрд┐рдВрдЧ, рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдФрд░ рд░рд┐рдЯреНрд░реАрд╡рд▓ рд╕рдм Supermemory рдХреЗ рдЕрдВрджрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдПрдЬреЗрдВрдЯ рдХреЛрдб рдЫреЛрдЯрд╛ рд░рд╣рддрд╛ рд╣реИред
LongMemEval рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдпрд╣ рдкрд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдореЗрдореЛрд░реА рд╕рд┐рд╕реНрдЯрдо рд▓рдВрдмреА рдмрд╛рддрдЪреАрдд рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред Supermemory рд╕рд╣реА рддрдереНрдпреЛрдВ рдХрд╛ 81.6% рдпрд╛рдж рд░рдЦрддреА рд╣реИред Zep, рдЕрдЧрд▓рд╛ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╕рд┐рд╕реНрдЯрдо, 71.2% рд╕реНрдХреЛрд░ рдХрд░рддрд╛ рд╣реИтАФ10 рдЕрдВрдХреЛрдВ рдХрд╛ рдЕрдВрддрд░, рдЬреЛ рд▓рдЧрднрдЧ рд╣рд░ 10 рдпреВрдЬрд╝рд░ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ 1 рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╣реА рдЙрддреНрддрд░ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рдУрдкрди-рд╕реЛрд░реНрд╕ рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдкрд░ 22k+ GitHub рд╕реНрдЯрд╛рд░реНрд╕ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдФрд░ рд╕рдВрдХреЗрдд рд╣реИред
рдореЗрдореЛрд░реА рдмрдирд╛рдо RAG
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдардХ рдЬреЛ рдХрд┐рд╕реА рдПрдЬреЗрдВрдЯ рдореЗрдореЛрд░реА рдЯреВрд▓ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╕реЗ RAG рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рдЪреБрдХреЗ рд╣реЛрддреЗ рд╣реИрдВред It рдЗрд╕реЗ рдЙрд╕рдХреЗ рд╕рд╛рде рд░рдЦрдирд╛ рдорджрджрдЧрд╛рд░ рд░рд╣рддрд╛ рд╣реИред RAG рдФрд░ рдореЗрдореЛрд░реА рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдХреНрд╕рд░ рдПрдХ рд╣реА рдПрдЬреЗрдВрдЯ рдореЗрдВ рд╕рд╛рде рд░рд╣рддреЗ рд╣реИрдВред
RAG рд╕рд┐рд╕реНрдЯрдо рдЙрд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХреЙрд░реНрдкрд╕ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рдмрд╛рд░ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдбрдХреНрдЯ рдореИрдиреБрдЕрд▓, рд╕рдкреЛрд░реНрдЯ рдЖрд░реНрдЯрд┐рдХрд▓, рдЗрдВрдЯрд░рдирд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕ред рдХреЙрд░реНрдкрд╕ рдбрд┐рдкреНрд▓реЙрдп рд╕рдордп рдкрд░ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХреНрд╡реЗрд░реА рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рд╣реА рдмрджрд▓рддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЙрддреНрддрд░ рдкреНрд░реЛрдбрдХреНрдЯ рдХреЛ рдЦреБрдж рдкрддрд╛ рд╣реИрдВред
рдПрдХ рдореЗрдореЛрд░реА рд╕рд┐рд╕реНрдЯрдо рдпреВрдЬрд╝рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред Supermemory рдпреВрдЬрд╝рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдереНрдп рд▓рд┐рдЦрддреА рд╣реИ рдЬрдм рдПрдЬреЗрдВрдЯ рдЙрд╕ рдпреВрдЬрд╝рд░ рд╕реЗ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдмрд╛рддрдЪреАрдд рдХреЗ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдмрдврд╝рддрд╛ рд╣реИред рдПрдЬреЗрдВрдЯ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрддреНрддрд░ рдХреЗрд╡рд▓ рдпреВрдЬрд╝рд░ рд╣реА рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдкрд╕рдВрдж, рдЗрддрд┐рд╣рд╛рд╕, рдФрд░ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ред

рдХрд┐рд╕реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдбрдХреНрдЯ рдореЗрдВ, рджреЛрдиреЛрдВ рд╕рд╛рде-рд╕рд╛рде рдЪрд▓рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХрдВрдкрдиреА рдиреЙрд▓реЗрдЬ рдмреЗрд╕ рдкрд░ RAG рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИтАФ"рд╣рдорд╛рд░реА рд░рд┐рдлрдВрдб рдкреЙрд▓рд┐рд╕реА рдХреНрдпрд╛ рд╣реИ?" Supermemory рдпреВрдЬрд╝рд░ рдХреЗ рдкреНрд░рд╢реНрди рдкрд░тАФ"рдкрд┐рдЫрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрд░рд╛ рдмреЗрдВрдЪ рдкреНрд░реЗрд╕ рдХреНрдпрд╛ рдерд╛?"тАФрдЙрддреНрддрд░ рджреЗрддреА рд╣реИред рд╡рд╣реА рдПрдЬреЗрдВрдЯ, рджреЛ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░, рджреЛ рдХрд╛рдоред
рдпреВрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓: рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп
Supermemory рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИ рдпреВрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ред рд╣рд░ рд▓реЙрдЧ рджреЛ рдмрдХреЗрдЯ рдореЗрдВ рд╕реЙрд░реНрдЯ рд╣реЛрддрд╛ рд╣реИ: рд╕реНрдерд┐рд░ рддрдереНрдп рдЬреЛ рд╢рд╛рдпрдж рд╣реА рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдпред рдмрд╛рд░-рдмрд╛рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреИрдЯрд░реНрди рд╕реНрдерд┐рд░ рдореЗрдВ рдкреНрд░рдореЛрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдЧрддрд┐рд╢реАрд▓ рдореЗрдВ рд░рд╣рддреА рд╣реИред
рдЬрдм рдПрдЬреЗрдВрдЯ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдХреЙрд▓ рджреЛрдиреЛрдВ рдмрдХреЗрдЯреНрд╕ рдФрд░ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рдореЗрдореЛрд░реА рдЪрдВрдХреНрд╕ рд▓реМрдЯрд╛рддреА рд╣реИред
рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд┐рд░ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп рдПрдХ рд╣реА рдпреВрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ:
|
рд╕реНрдерд┐рд░ рддрдереНрдп |
рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп |
|
рдбрдореНрдмрд▓ рдФрд░ рдкреБрд▓-рдЕрдк рдмрд╛рд░ рдХреЗ рд╕рд╛рде рдШрд░ рдкрд░ рдЯреНрд░реЗрди рдХрд░рддрд╛/рдХрд░рддреА рд╣реИ |
рд╡рд░реНрддрдорд╛рди рдлреЛрдХрд╕: рдЕрдкрд░-рдмреЙрдбреА рд╕реНрдЯреНрд░реЗрдВрде |
|
рдмрд╛рдПрдБ рдШреБрдЯрдиреЗ рдХреА рдЪреЛрдЯ, рдбреАрдк рд╕реНрдХреНрд╡реИрдЯреНрд╕ рдирд╣реАрдВ |
рдЖрдЦрд╝рд┐рд░реА рдмреЗрдВрдЪ: 185 рдкрд╛рдЙрдВрдб рдкрд░ 5 рд░реЗрдкреНрд╕ рдХреЗ 4 рд╕реЗрдЯ |
|
рд╡рд░реНрд╖ рдХреЗ рдЕрдВрдд рддрдХ рдмреЗрдВрдЪ рдореЗрдВ 20 рдкрд╛рдЙрдВрдб рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛/рдЪрд╛рд╣рддреА рд╣реИ |
рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдЧреНрд░реАрд╕-рдж-рдЧреНрд░реВрд╡ рдкреБрд▓-рдЕрдкреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛/рд░рд╣реА рд╣реИ |
|
рд╕рд┐рд░реНрдлрд╝ рд╢рд╛рдо рдХреЛ рдЯреНрд░реЗрди рдХрд░рддрд╛/рдХрд░рддреА рд╣реИ, рдХрднреА рд╕реБрдмрд╣ рдирд╣реАрдВ |
рдХрд▓ 28 рдорд┐рдирдЯ рдореЗрдВ 5k рджреМрдбрд╝рд╛/рджреМрдбрд╝реА |
рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдкрдврд╝реЗрдВред рд╕реНрдерд┐рд░ рдкрдХреНрд╖ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпреВрдЬрд╝рд░ рдХреИрд╕реЗ рдЯреНрд░реЗрди рдХрд░рддрд╛/рдХрд░рддреА рд╣реИ: рдШрд░ рдкрд░, рдЕрдкрдиреЗ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рдеред рдпрд╣ рд╣рдлреНрддреЗ-рджрд░-рд╣рдлреНрддреЗ рдирд╣реАрдВ рдмрджрд▓рддрд╛ред рдЧрддрд┐рд╢реАрд▓ рдкрдХреНрд╖ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдЗрд╕ рд╕рд╛рдЗрдХрд▓ рдореЗрдВ рдЕрдкрд░ рдмреЙрдбреАред
рд╡рд░реНрдХрдЖрдЙрдЯ рд╕рдЬреЗрд╕реНрдЯрд░ рдХреЛ рджреЛрдиреЛрдВ рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд┐рд░ рдкрдХреНрд╖ рдЬрд┐рдо-рдУрдирд▓реА рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬрд╝ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИ, рдЧрддрд┐рд╢реАрд▓ рдкрдХреНрд╖ рдЖрдЬ рдХрд╛ рд╕рддреНрд░ рдЪреБрдирддрд╛ рд╣реИред
рдЙрд╕ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рдкреАрдЫреЗ, Supermemory рдЪрд╛рд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдЦреБрдж рдмрдирд╛рдиреЗ рдкрдбрд╝рддреЗ: рдХрдЪреНрдЪреА рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░ рдХрд░рдирд╛, рд╣рд░ chunk рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛, рдкрдврд╝рддреЗ рд╕рдордп рд╕рд┐рдорд┐рд▓реИрд░рд┐рдЯреА рд╕рд░реНрдЪ рдЪрд▓рд╛рдирд╛, рдФрд░ рд▓реЙрдЧ рдХрд┐рдП рд╣реБрдП рдХрдВрдЯреЗрдВрдЯ рд╕реЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рддрдереНрдп рдирд┐рдХрд╛рд▓рдирд╛ред рдЗрди рдЪрд╛рд░ рдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ред

рд╣рд░ рдореЗрдореЛрд░реА рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдЪреБрдирддрд╛ рд╣реИред рд╣рд░ рд░реАрдб рд╡рд╣реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдкрд╛рд╕ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╕реАрдорд┐рдд рд░рд╣реЗред рдЯреНрд░реЗрдирд░ рдПрдХ рдЯреИрдЧ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреНрдпрд╛ рдХрд░рддреА рд╣реИ, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреВрдЬрд╝рд░ рдХрд╛рдлрд╝реА рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдРрдкреНрд╕ рдкреНрд░рдорд╛рдгрд┐рдд рдпреВрдЬрд╝рд░ рд╕реЗ, рдЬреИрд╕реЗ рдЙрдирдХреЗ JWT рд╕реЗ, рдЯреИрдЧ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред
рдЕрдкрдирд╛ Supermemory рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдирд╛
рдЯреНрд░реЗрдирд░ рдХреЛ рджреЛ API рдХреБрдВрдЬрд┐рдпрд╛рдБ (Supermemory рдФрд░ OpenAI) рдФрд░ рддреАрди рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рд╡рд╛рд▓рд╛ рдПрдХ Python рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд╛рд╣рд┐рдПред рдПрдХ рддреНрд╡рд░рд┐рдд рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рд╕реА рднреА рдПрдЬреЗрдВрдЯ рдХреЛрдб рдХреЗ рдкрд╛рд╕ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреЛрдиреЛрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рддреА рд╣реИред
рдЕрдкрдиреА API рдХреБрдВрдЬрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
Supermemory API рдХреБрдВрдЬреА рд░рд╣рддреА рд╣реИ console.supermemory.ai рдкрд░, NOT app.supermemory.ai рдкрд░ рдирд╣реАрдВред app рд╕рдмрдбреЛрдореЗрди рдХрдВрдЬрд╝реНрдпреВрдорд░ рдореЗрдореЛрд░реА рдкреНрд░реЛрдбрдХреНрдЯ рд╣реИ (рдиреЛрдЯреНрд╕ рд╕реЗрд╡ рдХрд░рдиреЗ, рдЕрдкрдиреЗ рд╕реНрдкреЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рдореЗрдВ рдХреЛрдИ API key рдкреЗрдЬ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЫреЛрдбрд╝реЗрдВ рдФрд░ рд╕реАрдзреЗ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдБред
console.supermemory.ai рдкрд░:
-
рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВред
-
рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ API Keys рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
-
Create API Key рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
-
рдирд╛рдо рджреЗрдВ (рдЯреНрд░реЗрдирд░ рдбреЗрдореЛ
datacamp-tutorialрдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред -
рдмрдиреА рд╣реБрдИ рдХреБрдВрдЬреА рдХреЙрдкреА рдХрд░реЗрдВред рдпрд╣
sm_рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред

рдПрдЬреЗрдВрдЯ рдХреЗ LLM рдХреЙрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ OpenAI рдХреБрдВрдЬреА рднреА рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рд▓реЗрдВ platform.openai.com/api-keys рд╕реЗред
рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рдПрдХ .env рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рджреЛрдиреЛрдВ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реЗрдВред рдЗрд╕реЗ рдХрдорд┐рдЯ рди рдХрд░реЗрдВред
SUPERMEMORY_API_KEY=sm_your_key_here
OPENAI_API_KEY=sk-your_key_here
Supermemory рдХрд╛ рдлреНрд░реА рдЯрд┐рдпрд░ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рднреБрдЧрддрд╛рди рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдП рдмрд┐рдирд╛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рд╕рдЯреАрдХ рд╕реАрдорд╛рдПрдБ рдкреНрд░рд╛рдЗрд╕рд┐рдВрдЧ рдкреЗрдЬ рдкрд░ рд╣реИрдВред
рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реАрдЬрд╝ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ uv рдХрд╛ рдЙрдкрдпреЛрдЧ pреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрдЕрдк рдФрд░ рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ uv рдирд╣реАрдВ рд╣реИ, рддреЛ astral.sh/uv рд╕реЗ рд╡рди-рд▓рд╛рдЗрдирд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ:
uv init supermemory-trainer
cd supermemory-trainer
uv init рдЬреЛ README.md рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред hello.py рдСрдЯреЛ-рдЬрдирд░реЗрдЯреЗрдб рдлрд╝рд╛рдЗрд▓ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рдЗрд╕рд▓рд┐рдП рдЕрднреА рд░рд╣рдиреЗ рджреЗрдВред
рддреАрди рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЬреЛрдбрд╝реЗрдВ:
-
supermemory==3.37.0рдореЗрдореЛрд░реА рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрд┐рдд рд╡рд░реНрдЬрд╝рди рдкрд░ рдкрд┐рдиреНрдбред -
openai-agents OpenAI Agents SDK рд╣реИред рдкреИрдХреЗрдЬ рдирд╛рдо рд╣рд╛рдЗрдлрд╝рдиреЗрд╢рди рдХреЗ рд╕рд╛рде рд╣реИ, рдЗрдореНрдкреЛрд░реНрдЯ рдкрд╛рде
agentsрд╣реИред -
python-dotenvрд╡рд╣.envрдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рдЕрднреА рдмрдирд╛рдИред
uv add supermemory==3.37.0 openai-agents python-dotenv
рдмрдиреА рд╣реБрдИ pyproject.toml:
[project]
name = "supermemory-trainer"
version = "0.1.0"
description = "Personal exercise trainer agent built with Supermemory and the OpenAI Agents SDK."
requires-python = ">=3.10"
dependencies = [
"openai-agents>=0.10.2",
"python-dotenv>=1.2.1",
"supermemory==3.37.0",
]
рдЕрдкрдирд╛ рд╕реЗрдЯрдЕрдк рд╡реЗрд░рд┐рдлрд╝рд╛рдИ рдХрд░рдирд╛
рдХрд┐рд╕реА рднреА рдПрдЬреЗрдВрдЯ рдХреЛрдб рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, Supermemory рдХреЛ рдПрдХ рд╡рд╛рдХреНрдп рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдмрд╛рд░ рджреЗрдЦреЗрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддрдереНрдп Supermemory рдХреЛ рднреЗрдЬрддреА рд╣реИ, рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреА рд╣реИ, рдлрд┐рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдХрд░ рд╡рд╛рдкрд╕ рд▓рд╛рддреА рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рд╛рдлрд╝-рд╕реБрдерд░реЗ рдврдВрдЧ рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ рдФрд░ SDK рдкрд╣реБрдБрдЪ рдореЗрдВ рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдЖрдкрдХреЛ рдпрд╣ рднреА рдкрд╣рд▓реА рдЭрд▓рдХ рджреЗрддрд╛ рд╣реИ рдХрд┐ Supermemory рдХрдЪреНрдЪреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред
hello.py рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдСрдЯреЛ-рдЬрдирд░реЗрдЯреЗрдб рдмреЙрдбреА рдХреЛ рдЗрдореНрдкреЛрд░реНрдЯреНрд╕ рдФрд░ рдПрдХ write рдХреЙрд▓ рд╕реЗ рдмрджрд▓реЗрдВ:
import time
from dotenv import load_dotenv
from supermemory import Supermemory
load_dotenv()
client = Supermemory()
USER_ID = "demo_warmup"
response = client.add(
content="The user is learning Supermemory by building a personal trainer agent.",
container_tag=USER_ID,
)
print(f"client.add() -> id={response.id} status={response.status}")
load_dotenv() .env рд╕реЗ API рдХреБрдВрдЬреА рдкрдврд╝рдХрд░ Supermemory() рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдореЗрдВ рдбрд╛рд▓рддреА рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ SUPERMEMORY_API_KEY рдЕрдкрдиреЗ рдЖрдк рдЙрдард╛ рд▓реЗрддрд╛ рд╣реИред container_tag="demo_warmup" рдорд╛рди рдЗрд╕ рдПрдХ рддрдереНрдп рдХреЛ рдПрдХ рдереНрд░реЛрдЕрд╡реЗ рдпреВрдЬрд╝рд░ рддрдХ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЕрдм рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдиреАрдЪреЗ wait рдФрд░ read рдЬреЛрдбрд╝реЗрдВ:
print("Waiting 20 seconds for processing...")
time.sleep(20)
prof = client.profile(container_tag=USER_ID, q="learning")
print(f"profile.static ({len(prof.profile.static)}): {prof.profile.static}")
print(f"profile.dynamic ({len(prof.profile.dynamic)}): {prof.profile.dynamic}")
print(f"search_results.results ({len(prof.search_results.results)}):")
for r in prof.search_results.results[:3]:
print(f" - {r['memory']} (similarity={r['similarity']:.3f})")
20-рд╕реЗрдХрдВрдб рдХреА рд╕реНрд▓реАрдк Supermemory рдХреА рдПрдореНрдмреЗрдб-рдПрдВрдб-рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдирдИ рдореЗрдореЛрд░реА рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рд░реАрдб рдХреБрдЫ рдирд╣реАрдВ рд▓реМрдЯрд╛рддреА, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯреА рд╣реБрдИ рд▓рдЧрддреА рд╣реИ рдЬрдмрдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБ:
uv run python hello.py
рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ:
client.add() -> id=zNLsJBrY1PZupAeZ3Qn6EL status=queued
Waiting 20 seconds for processing...
profile.static (0): []
profile.dynamic (1): ['Building a personal trainer agent to learn Supermemory.']
search_results.results (1):
- Building a personal trainer agent to learn Supermemory. (similarity=0.650)
рдЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рддреАрди рд╡рд┐рд╡рд░рдг рдорд╛рдпрдиреЗ рд░рдЦрддреЗ рд╣реИрдВред client.add() рддреБрд░рдВрдд status="queued" рдХреЗ рд╕рд╛рде рд▓реМрдЯрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Supermemory рдбреЙрдХреНрдпреВрдореЗрдВрдЯреНрд╕ рдХреЛ asynchronously рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреА рд╣реИред 20-рд╕реЗрдХрдВрдб рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдПрдореНрдмреЗрдб-рдПрдВрдб-рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рд░реАрдб рдЪрд▓рддреА рд╣реИ, рдХрдЪреНрдЪрд╛ рд╡рд╛рдХреНрдп рдПрдХ рд╕рд░реНрдЪреЗрдмрд▓ рдореЗрдореЛрд░реА chunk рдмрди рдЪреБрдХрд╛ рд╣реЛрддрд╛ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк рд▓рд╛рдЗрди рд╣реИ profile.dynamicред рдЗрдирдкреБрдЯ рдерд╛ рд╡рд╛рдХреНрдп "The user is learning Supermemory by building a personal trainer agent." рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп 'Building a personal trainer agent to learn Supermemory.' Supermemory рдиреЗ рддреАрд╕рд░реЗ рдкреБрд░реБрд╖ рдХреЗ рд╡рд╛рдХреНрдп рдХреЛ рдпреВрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдкреБрд░реБрд╖ рдХреЗ рддрдереНрдп рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдпрд╣ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛ рдХрд╛рдо рд╣реИред
profile.static рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рд╣реИред рд╕реНрдерд┐рд░ рддрдереНрдп рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рдореЗрдХрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╕рдВрдмрдВрдзрд┐рдд рд▓реЙрдЧ рдЗрдХрдЯреНрдард╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЧрд▓ рд╡реЙрд░реНрдо-рдЕрдк write рдЗрд╕рд╕реЗ рдирд╣реАрдВ рдмрдирд╛рддрд╛ред рдЯреНрд░реЗрдирд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рдЯреВрд▓ рдЗрд╕рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ static рдХреЛ рдЧрд╛рд░рдВрдЯреА рдХреЗ рдмрдЬрд╛рдп рдмреЛрдирд╕ рдорд╛рдирддрд╛ рд╣реИред
Supermemory рдПрдЬреЗрдВрдЯ рдмрдирд╛рдирд╛: Python рдореЗрдВ рдкрд░реНрд╕рдирд▓ рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬрд╝ рдЯреНрд░реЗрдирд░
рдЯреНрд░реЗрдирд░ client.add() рдФрд░ client.profile() рдХреЛ рджреЛ рдПрдЬреЗрдВрдЯ рдЯреВрд▓реНрд╕ рдореЗрдВ рд░реИрдк рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдпреВрдЬрд╝рд░ рдХреЗ рдЪреИрдЯ рдХрд░рддреЗ рд╣реА рд░реАрдбреНрд╕ рдФрд░ рд░рд╛рдЗрдЯреНрд╕ рдЕрдкрдиреЗ рдЖрдк рд╣реЛрдВред рд╡рд░реНрдХрдЖрдЙрдЯ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдореЛрд░реА рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдЙрдкрдХрд░рдг, рдЪреЛрдЯреЗрдВ, рдФрд░ рд╣рд╛рд▓ рдХреА рд▓рд┐рдлреНрдЯреНрд╕ LLM рдХреЗ рдЯреНрд░реЗрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддреАрдВ, рдФрд░ рд╕рддреНрд░-рджрд░-рд╕рддреНрд░ рдЗрдХрдЯреНрдареА рд╣реЛрддреА рд╣реИрдВред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдЬреЗрдВрдЯ
рдЯреНрд░реЗрдирд░ рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рд╣реИ рдХрд┐ рдкреВрд░рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджреЛ Python рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдлрд┐рдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рдореЗрдВ рд╡рд╣ pyproject.toml рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реИ:
supermemory-trainer/
тФЬтФАтФА .env # your real keys (gitignored)
тФЬтФАтФА .env.example # placeholders, committed
тФЬтФАтФА .gitignore
тФЬтФАтФА .python-version
тФЬтФАтФА main.py # agent definition, system prompt, REPL loop
тФЬтФАтФА pyproject.toml
тФФтФАтФА tools.py # log_workout and suggest_next_session
tools.py рдореЗрдВ рд╡реЗ рджреЛ рдореЗрдореЛрд░реА-рд╕рдорд░реНрдерд┐рдд рдЯреВрд▓реНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЖрдЧреЗ рд▓рд┐рдЦреЗрдВрдЧреЗред log_workout client.add() рдХреЗ рдЬрд╝рд░рд┐рдП Supermemory рдореЗрдВ рд╡рд░реНрдХрдЖрдЙрдЯ рд▓рд┐рдЦрддрд╛ рд╣реИред suggest_next_session client.profile() рдХреЗ рдЬрд╝рд░рд┐рдП рдпреВрдЬрд╝рд░ рдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрдврд╝рддрд╛ рд╣реИред main.py рджреЛрдиреЛрдВ рдХреЛ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдЬреЗрдВрдЯ рдХреЛ рд╡рд╛рдпрд░ рдХрд░рддрд╛ рд╣реИред
main.py рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ OpenAI Agents SDK рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рдПрдХ рд╡рд╛рдХреНрдп Supermemory рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдпреВрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд░ рддрдереНрдп рдЯреВрд▓ рдХреЙрд▓реНрд╕ рдХреЗ рдЬрд╝рд░рд┐рдП рд╣реА рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдЬреЗрдВрдЯ рдХреЛ рдмрддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдЕрдкрдиреА рдХреЛрдИ рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣реА рдПрдХ рдирд┐рдпрдо рдЯреНрд░реЗрдирд░ рдХреЛ рдореЗрдореЛрд░реА-рд╕рдорд░реНрдерд┐рдд рдмрдирд╛рддрд╛ рд╣реИред
main.py рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрдореНрдкреЛрд░реНрдЯреНрд╕ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
import asyncio
from agents import Agent, Runner, SQLiteSession
from tools import log_workout, suggest_next_session
SYSTEM_PROMPT = """You are a personal exercise trainer who logs the user's
workouts and recommends what to do next.
You have no memory of the user's history on your own. Every fact about the
user lives in Supermemory and reaches you only through tool calls.
Two rules, no exceptions:
1. Whenever the user reports completing a workout, call log_workout immediately, before responding. Extract the exercise, sets, reps, weight, and any notes from what they said. If a value is missing, ask one short follow-up question instead of guessing. After logging, confirm in one short sentence and stop. Do NOT recommend the next session unless the user asks for one.
2. When the user explicitly asks what to do next (or asks for a recommendation, suggestion, or plan), call suggest_next_session first. Never recommend from your own training data. The tool returns the user's
recent activity, stable preferences, and matching past sessions. Reference those facts directly in your reply.
Keep replies concise (2-4 sentences). Be specific: name the exercise, sets, reps, and weight. Honor any injuries or equipment constraints the tool surfaces.
"""
рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдореЗрдВ рджреЛрдиреЛрдВ рдирд┐рдпрдо рдореЙрдбрд▓ рдХреЛ Supermemory рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рдХрд░рддреЗ рд╣реИрдВред┬а
рдирд┐рдпрдо 1 рд╣рд░ рдмрд╛рд░ рдпреВрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдХрдЖрдЙрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реА log_workout рдХреЙрд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рд░ рд╡рд░реНрдХрдЖрдЙрдЯ рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░ рддрдХ рдкрд╣реБрдБрдЪреЗред рдирд┐рдпрдо 2 рдХрд┐рд╕реА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╕реЗ рдкрд╣рд▓реЗ suggest_next_session рд░реАрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╣рд░ рд╕рд┐рдлрд╛рд░рд┐рд╢ Supermemory рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛред┬а
рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рдПрдЬреЗрдВрдЯ рдЕрдкрдиреЗ рдЯреНрд░реЗрдирд┐рдВрдЧ рдбреЗрдЯрд╛ рд╕реЗ рдЙрддреНрддрд░ рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдореЗрдореЛрд░реА рд▓реЗрдпрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реА рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдЗрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдЬреЗрдВрдЯ рдФрд░ рдЪреИрдЯ рд▓реВрдк рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:
def build_agent() -> Agent:
return Agent(
name="Trainer",
instructions=SYSTEM_PROMPT,
tools=[log_workout, suggest_next_session],
model="gpt-5",
)
async def chat() -> None:
agent = build_agent()
session = SQLiteSession(session_id="trainer-cli")
print("Trainer ready. Type a message, or 'exit' to quit.\n")
while True:
try:
message = input("You: ").strip()
except (EOFError, KeyboardInterrupt):
print()
break
if not message:
continue
if message.lower() in {"exit", "quit"}:
break
result = await Runner.run(agent, message, session=session)
print(f"\nTrainer: {result.final_output}\n")
if __name__ == "__main__":
asyncio.run(chat())
рдЙрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИрдВред tools=[log_workout, suggest_next_session] рджреЛ рдореЗрдореЛрд░реА-рд╕рдорд░реНрдерд┐рдд рдЯреВрд▓реНрд╕ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред @function_tool рдбреЗрдХреЛрд░реЗрдЯрд░ (tools.py рдореЗрдВ) SDK рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛, рдирд┐рд░реНрдорд╛рдг рдХреЙрд▓ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рд░рдирдЯрд╛рдЗрдо рдкрд░ рдПрдЬреЗрдВрдЯ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЯреВрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
SQLiteSession(session_id="trainer-cli") рдЪрд▓ рд░рд╣реА Python рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЯрд░реНрди рд╣рд┐рд╕реНрдЯреНрд░реА рд░рдЦрддреА рд╣реИред Supermemory рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд╛рд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдпреВрдЬрд╝рд░ рддрдереНрдпреЛрдВ рдХреЛ рд░рдЦрддреА рд╣реИред Python рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ SQLite рд╕рддреНрд░ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Supermemory рдбреЗрдЯрд╛ рд░рд╣рддрд╛ рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг: main.py рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣ рдЪрд▓рд╛рдПрдБ, Jupyter рд╕реЗрд▓ рдореЗрдВ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ Jupyter рдХрд╛ рдЗрд╡реЗрдВрдЯ рд▓реВрдк asyncio.run() рд╕реЗ рдЯрдХрд░рд╛рддрд╛ рд╣реИред рд╕рд┐рдВрдХреНрд░реЛрдирд╕ Supermemory() рдХреНрд▓рд╛рдЗрдВрдЯ async рдЯреВрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдЕрдВрджрд░ рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Agents SDK рдЯреВрд▓реНрд╕ рдХреЛ рдереНрд░реЗрдб рдкреВрд▓ рдореЗрдВ рдЪрд▓рд╛рддрд╛ рд╣реИред SDK рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ OpenAI Agents SDK рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред
рд╡рд░реНрдХрдЖрдЙрдЯ-рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рд▓рд┐рдЦрдирд╛
log_workout рдПрдЬреЗрдВрдЯ рдХреА рдореЗрдореЛрд░реА рдХрд╛ write рдкрдХреНрд╖ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдПрдЬреЗрдВрдЯ рд╕реЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯ рд▓реЗрддрд╛ рд╣реИ: рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬрд╝ рдХрд╛ рдирд╛рдо, рд╕реЗрдЯреНрд╕, рд░реЗрдкреНрд╕, рд╡рдЬрд╝рди, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдиреЛрдЯреНрд╕ред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЫреЛрдЯреА рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╡рд╛рдХреНрдп рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ client.add() рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Supermemory рдХреЛ рд╕реМрдВрдк рджреЗрддрд╛ рд╣реИред рдПрдореНрдмреЗрдб-рдПрдВрдб-рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЙрд╕рдХреЗ рдмрд╛рдж Supermemory рдХреЗ рдЕрдВрджрд░ рдЪрд▓рддреА рд╣реИ рдФрд░ рдЯреНрд░реЗрдирд░ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рдорд╛рдБрдЧрддреАред
tools.py рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрдореНрдкреЛрд░реНрдЯреНрд╕ рдФрд░ рдПрдХ рд╕рд╛рдЭрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ:
from agents import function_tool
from dotenv import load_dotenv
from supermemory import Supermemory
load_dotenv()
USER_ID = "demo_user"
client = Supermemory()
load_dotenv() рдЗрдореНрдкреЛрд░реНрдЯ рд╕рдордп рдкрд░ рдЪрд▓рддреА рд╣реИ рддрд╛рдХрд┐ SUPERMEMORY_API_KEY Supermemory() рдмрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рдореЗрдВ рд╣реЛред рдПрдирд╡ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдПрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдирдСрдереЗрдВрдЯрд┐рдХреЗрдЯреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдорд┐рд▓реЗрдЧрд╛ред рдкрд╣рд▓реА рдХреЙрд▓ рддрдм рдЙрд▓рдЭрд╛рдиреЗ рд╡рд╛рд▓рд╛ 401 рд▓реМрдЯрд╛рддреА рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рджреЛрдиреЛрдВ рдЯреВрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╡рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╡рд╣реА USER_ID рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдиреАрдЪреЗ рд▓реЙрдЧрд┐рдВрдЧ рдЯреВрд▓ рдЬреЛрдбрд╝реЗрдВ:
@function_tool
def log_workout(
exercise: str,
sets: int,
reps: int,
weight: float,
notes: str = "",
) -> str:
"""Log a completed workout to the user's memory.
Args:
exercise: Name of the exercise.
sets: Number of sets performed.
reps: Number of reps per set.
weight: Weight in pounds. Pass 0 for bodyweight or cardio.
notes: Optional notes about the session.
"""
print(f"[log_workout] {exercise=} {sets=} {reps=} {weight=} {notes=}")
content = f"Performed {exercise}: {sets} sets of {reps} reps at {weight} lbs."
if notes:
content += f" Notes: {notes}"
response = client.add(content=content, container_tag=USER_ID)
print(f"[log_workout] -> id={response.id} status={response.status}")
return f"Logged {exercise} ({sets}x{reps} @ {weight} lb)."
@function_tool рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╣ рд╣реИ рдЬреЛ LLM рдЯреВрд▓ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдлрд╝реИрд╕рд▓рд╛ рдХрд░рддреЗ рд╕рдордп рджреЗрдЦрддрд╛ рд╣реИред Args: рдмреНрд▓реЙрдХ рдкреНрд░рддрд┐-рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд┐рд╡рд░рдгреЛрдВ рд╕реЗ рдореИрдк рд╣реЛрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдЬреЗрдВрдЯ рдХреЗ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред
рдЯреВрд▓ client.add() рдХреЛ JSON рдирд╣реАрдВ, рдПрдХ рд╕рд╛рджрд╛ рд╡рд╛рдХреНрдп рднреЗрдЬрддрд╛ рд╣реИред Supermemory рдХрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рд╕реЗ рддрдереНрдп рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ JSON рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдЯреНрд░реИрдХреНрд╢рди рдХреНрд╡реЙрд▓рд┐рдЯреА рдЧрд┐рд░рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбрд▓ рдХреЗ рдкрд╛рд╕ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдХрд░рдиреЗ рдХреЛ рдХреЛрдИ рдиреИрд░реЗрдЯрд┐рд╡ рдирд╣реАрдВ рд░рд╣рддрд╛ред "Performed bench press: 4 sets of 5 reps at 185.0 lbs" рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдлрд╝ рд╡рд╛рдХреНрдп рджреЗрддрд╛ рд╣реИред
рджреЛрдиреЛрдВ print() рдХреЙрд▓реНрд╕ рд╣рд░ рдЯреВрд▓ рдЗрдирд╡реЛрдХреЗрд╢рди рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд▓рд┐рдЦрддреА рд╣реИрдВ: рдкрд╣рд▓реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕, рдлрд┐рд░ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ред
[log_workout] exercise='bench press' sets=4 reps=5 weight=185.0 notes=''
[log_workout] -> id=xY7AK3qLzBPx5Vd2HnRf1M status=queued
status="queued" рдорд╛рди рд╡рд╣реА рд╣реИ рдЬреЛ рд╡реЙрд░реНрдо-рдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдиреЗ рд▓реМрдЯрд╛рдпрд╛ рдерд╛ред рдХрдЪреНрдЪрд╛ рд▓реЙрдЧ рд╕реНрдЯреЛрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди client.profile() рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдЗрд╕реЗ рд╕рд░реНрдЪ рд░рд┐рдЬрд╝рд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЖрдк рдЖрдЧреЗ рдПрдХ рд╡реЗрд░рд┐рдлрд╝рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдк рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдЬреЛ рдЗрд╕рдХреЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд░реНрдХрдЖрдЙрдЯ-рд╕реБрдЭрд╛рд╡ рдЯреВрд▓ рд▓рд┐рдЦрдирд╛
suggest_next_session рд░реАрдб рдкрдХреНрд╖ рд╣реИ, рдФрд░ рдпрд╣реАрдВ рд╕реНрдерд┐рд░-рдФрд░-рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рд▓рд╛рдн рдорд┐рд▓рддрд╛ рд╣реИред рдПрдХ client.profile(container_tag=USER_ID, q=focus) рдХреЙрд▓ рдПрдХ рд╣реА рд░рд╛рдЙрдВрдб рдЯреНрд░рд┐рдк рдореЗрдВ рдпреВрдЬрд╝рд░ рдХреЗ рддреАрди рд╡реНрдпреВ рд▓реМрдЯрд╛рддреА рд╣реИред┬а
рд╕реНрдерд┐рд░ рдкрд╕рдВрджреЗрдВ profile.static рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ profile.dynamic рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рд╕рдмрд╕реЗ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рдкрд┐рдЫрд▓реЗ рдореЗрдореЛрд░реА search_results.results рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИрдВред рдЯреВрд▓ рдХрд╛ рдХрд╛рдо рдЗрди рддреАрди рд╡реНрдпреВрдЬрд╝ рдХреЛ рдПрдХ рдРрд╕реЗ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдорддрд▓ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдЬреЗрдВрдЯ рдЙрджреНрдзреГрдд рдХрд░ рд╕рдХреЗред
рдХреБрдЫ рд╡рд░реНрдХрдЖрдЙрдЯреНрд╕ рдХреЗ рдмрд╛рдж, рдЯреВрд▓ рдРрд╕рд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рддрд╛ рд╣реИ:
Recent activity:
- Trains at home instead of a gym
- Performed deadlift: 3 sets of 5 reps at 225.0 lbs
- Performed 5k run in 26 minutes
- Reports no knee pain during bench press
- Performed bench press: 4 sets of 5 reps at 185.0 lbs
Closest matching past entries:
- Trains at home instead of a gym
- Performed deadlift: 3 sets of 5 reps at 225.0 lbs
- Performed bench press: 4 sets of 5 reps at 185.0 lbs
- Performed 5k run in 26 minutes
- Reports no knee pain during bench press
рдПрдЬреЗрдВрдЯ рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдпреВрдЬрд╝рд░ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрддрд┐рд╣рд╛рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдлрд╛рд░рд┐рд╢ рд▓рд┐рдЦрддрд╛ рд╣реИред Supermemory рдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛, рдЖрдкрдХреЛ рд╡рд╣реА рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдЦреБрдж рдмрдирд╛рдирд╛ рдкрдбрд╝рддрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЕрд▓рдЧ рд╕реЗ рд╕реЗрдорд╛рдВрдЯрд┐рдХ рд╕рд░реНрдЪ, рдЕрдкрдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕реНрдЯреЛрд░, рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдорд░реНрдЬ рдХрд░рдирд╛ рд╣реЛрддрд╛ред рдПрдХ client.profile() рдХреЙрд▓ рдЗрди рддреАрдиреЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдЗрд╕реЗ tools.py рдореЗрдВ log_workout рдХреЗ рдиреАрдЪреЗ рдЬреЛрдбрд╝реЗрдВ:
@function_tool
def suggest_next_session(focus: str) -> str:
"""Fetch the user's training history and preferences for a given focus.
Returns a context string the agent can use to recommend the next session.
The agent is responsible for the actual recommendation. This tool only
surfaces what Supermemory knows about the user.
Args:
focus: What the user wants to train next (e.g. "upper body", "legs",
"cardio", "today"). Drives semantic search against past logs.
"""
print(f"[suggest_next_session] focus={focus!r}")
profile = client.profile(container_tag=USER_ID, q=focus)
static_facts = profile.profile.static
dynamic_facts = profile.profile.dynamic
matches = profile.search_results.results
print(
f"[suggest_next_session] static={len(static_facts)} "
f"dynamic={len(dynamic_facts)} matches={len(matches)}"
)
sections = []
if static_facts:
sections.append("Stable preferences and constraints:")
sections.extend(f"- {fact}" for fact in static_facts)
if dynamic_facts:
sections.append("Recent activity:")
sections.extend(f"- {fact}" for fact in dynamic_facts)
if matches:
sections.append("Closest matching past entries:")
for r in matches[:5]:
sections.append(f"- {r['memory']}")
if not sections:
return (
"No prior training history found for this user. "
"Ask the user about their goals, equipment, and recent training."
)
return "\n".join(sections)
client.profile(container_tag=USER_ID, q=focus) рдПрдХ ProfileResponse рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рддреА рд╣реИред 5 рдЫреЛрдЯреЗ рд▓реЙрдЧреНрд╕ рдХреЗ рдмрд╛рдж, рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддреАрди рдлрд╝реАрд▓реНрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
profile.profile.static # [] (list[str])
profile.profile.dynamic # ["Performed bench press: 4 sets of 5 reps at 185.0 lbs", ...]
profile.search_results.results # [{"memory": "...", "similarity": 0.631, ...}, ...] (list[dict])
рд╣рд░ рд╕рд░реНрдЪ рд░рд┐рдЬрд╝рд▓реНрдЯ рдПрдХ Python dict рд╣реИ, Pydantic рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВред рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП r["memory"] рдФрд░ рд╕реНрдХреЛрд░ рдХреЗ рд▓рд┐рдП r["similarity"] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдкреВрд░рд╛ dict рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдВрдЬрд┐рдпрд╛рдБ рд░рдЦрддрд╛ рд╣реИ:
-
id -
memory -
rootMemoryId -
metadata -
updatedAt -
version -
similarity -
filepath -
documents
Supermemory рдХреЗ OpenAI Agents SDK рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдкреЗрдЬ рдХрд╛ r.memory or r.chunk рд╕реНрдирд┐рдкреЗрдЯ supermemory==3.37.0 рдкрд░ AttributeError рдЙрдард╛рддрд╛ рд╣реИред рдмреНрд░реИрдХреЗрдЯ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
static рдпрд╣рд╛рдБ рдЦрд╛рд▓реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯреВрд▓ if static_facts: рдкрд░ рдмреНрд░рд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рджрд░реНрдЬрди рд▓реЙрдЧреНрд╕ рдХреЗ рд▓рд┐рдП dynamic рдФрд░ search_results рдмреНрд░рд╛рдВрдЪ рд╣реА рдЕрд╕рд▓реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
Supermemory рдПрдХ рдбрд┐рдлреЙрд▓реНрдЯ рд╕рд┐рдорд┐рд▓реИрд░рд┐рдЯреА рдереНрд░реЗрд╢рд╣реЛрд▓реНрдб рднреА рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред рдХреЛрдИ рддрдереНрдп рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛ рд╣реЛ, рд╣рд░ рдХреНрд╡реЗрд░реА рдкрд░ рд╡рд╛рдкрд╕ рди рднреА рдЖрдПред рдКрдкрд░ рдХреЗ 5 рд▓реЙрдЧреНрд╕ q="today" рдкрд░ рд╕рднреА рд▓реМрдЯреЗ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдо рд╡рд╛рдкрд╕ рд▓рд╛ рд╕рдХрддреА рд╣реИред if matches: рдЧрд╛рд░реНрдб рдЗрд╕реЗ рдмрд┐рдирд╛ рдлрд╝реЗрд▓ рд╣реБрдП рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рд╕рддреНрд░ 1 рдЪрд▓рд╛рдирд╛: рд╡рд░реНрдХрдЖрдЙрдЯреНрд╕ рд▓реЙрдЧ рдХрд░рдирд╛
рд╕рддреНрд░ 1 рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдХреБрдЫ рд╡рд░реНрдХрдЖрдЙрдЯ рд▓реЙрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ Supermemory рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╣реЛред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:
uv run python main.py
рдмреЗрдВрдЪ рдкреНрд░реЗрд╕, рдлрд┐рд░ 5k рд░рди, рдлрд┐рд░ рдбреЗрдбрд▓рд┐рдлреНрдЯ рд▓реЙрдЧ рдХрд░реЗрдВ, рд╕рд╛рде рдореЗрдВ рдПрдХ рдкрд╕рдВрдж рдХрдерди: "I only train at home, no gym." рдПрдЬреЗрдВрдЯ рд╣рд░ рд╡рд░реНрдХрдЖрдЙрдЯ рдкрд░ рдПрдХ рдмрд╛рд░ log_workout рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЯреВрд▓ рдХреА print() рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣рд░ рдХреЙрд▓ рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рджреГрд╢реНрдпрдорд╛рди рдмрдирд╛рддреА рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдЖрдЙрдЯрдкреБрдЯред рдЖрдкрдХреЗ рдПрдЬреЗрдВрдЯ рдХреА рд╕рдЯреАрдХ рд╢рдмреНрджрд╛рд╡рд▓реА рдЕрд▓рдЧ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбрд▓ рдиреЙрди-рдбрд┐рдЯрд░реНрдорд┐рдирд┐рд╕реНрдЯрд┐рдХ рд╣реИред
рддреАрди status=queued рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╡рд╣ рдХреНрд╖рдг рд╣реИрдВ рдЬрдм Supermemory рдХрд╛рд░реНрдпрднрд╛рд░ рд╕рдВрднрд╛рд▓рддреА рд╣реИред рд╣рд░ рдПрдХ Supermemory рдХреА рдУрд░ рдПрдореНрдмреЗрдб-рдПрдВрдб-рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд░рддреЗ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдРрд╕реЗ рдЫреЛрдЯреЗ рдЯреЗрдХреНрд╕реНрдЯ рд▓реЙрдЧреНрд╕ рдХреЗ рд▓рд┐рдП, рдбреЙрдХреНрдпреВрдореЗрдВрдЯ ~12 рд╕реЗрдХрдВрдб рдореЗрдВ client.profile() рдХреЗ рдЬрд╝рд░рд┐рдП рд╕рд░реНрдЪреЗрдмрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЯреНрд░реЗрдирд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рднреА рдЗрд╕рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ред рдПрдЬреЗрдВрдЯ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ, рдФрд░ Supermemory рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рддреА рд╣реИред
рд╣рд░ рд▓реЙрдЧ рдареАрдХ рдПрдХ log_workout рдХреЙрд▓ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдЬреЗрдВрдЯ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдкреНрд░реИрдХреНрдЯрд┐рд╡ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ, рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреВрд▓ рдХреЙрд▓ рдирд╣реАрдВ, рдХреЛрдИ рдлреЙрд▓реЛ-рдЕрдк рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВред рдкрд╣рд▓рд╛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдирд┐рдпрдо рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдо рдХреЗ рдмрд┐рдирд╛, рдПрдЬреЗрдВрдЯ рд╣рд░ рд▓реЙрдЧ рдХреЗ рдмрд╛рдж рдЕрдЧрд▓рд╛ рд╕рддреНрд░ рд╕реБрдЭрд╛рддрд╛, рдЬрд┐рд╕рд╕реЗ рдЯреВрд▓ рдХреЙрд▓реНрд╕ рджреЛрдЧреБрдиреА рд╣реЛ рдЬрд╛рддреАрдВред
рд╕рддреНрд░ 1 рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП exit рдЯрд╛рдЗрдк рдХрд░реЗрдВред Python рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ SQLiteSession рдЙрд╕рдХреЗ рд╕рд╛рде рдЪрд▓реА рдЬрд╛рддреА рд╣реИред рд╡рд░реНрдХрдЖрдЙрдЯ рд▓реЙрдЧреНрд╕ рдФрд░ рдкрд╕рдВрдж рдХрдерди рдЕрдм Supermemory рдореЗрдВ container_tag="demo_user" рдХреЗ рддрд╣рдд рд░рд╣рддреЗ рд╣реИрдВ, рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЕрд▓рдЧ рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред
рд░реАрдХреЙрд▓ рд╡реЗрд░рд┐рдлрд╝рд╛рдИ рдХрд░рдирд╛ рдФрд░ рд╕рддреНрд░ 2 рдЪрд▓рд╛рдирд╛
рд╕рддреНрд░ 2 рд╕реЗ рдкрд╣рд▓реЗ, рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ рдХрд┐ рд╕рддреНрд░ 1 рдХреЗ рддрдереНрдп рдХреНрд╡реЗрд░реА рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдирдпрд╛ Python REPL рдЦреЛрд▓реЗрдВ рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡ рдХрд░реЗрдВ:
from dotenv import load_dotenv
from supermemory import Supermemory
load_dotenv()
client = Supermemory()
prof = client.profile(container_tag="demo_user", q="training")
print(f"static ({len(prof.profile.static)}): {prof.profile.static}")
print(f"dynamic ({len(prof.profile.dynamic)}):")
for fact in prof.profile.dynamic:
print(f" - {fact}")
print(f"matches ({len(prof.search_results.results)}):")
for r in prof.search_results.results[:5]:
print(f" - {r['memory']} (similarity={r['similarity']:.3f})")
рджреЛ рд╕рддреНрд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдЙрдЯрдкреБрдЯ:
static (0): []
dynamic (5):
- Trains at home instead of a gym
- Performed deadlift: 3 sets of 5 reps at 225.0 lbs
- Performed 5k run in 26 minutes
- Reports no knee pain during bench press
- Performed bench press: 4 sets of 5 reps at 185.0 lbs
matches (5):
- Trains at home instead of a gym (similarity=0.682)
- Performed deadlift: 3 sets of 5 reps at 225.0 lbs (similarity=0.643)
- Performed bench press: 4 sets of 5 reps at 185.0 lbs (similarity=0.631)
- Performed 5k run in 26 minutes (similarity=0.585)
- Reports no knee pain during bench press (similarity=0.585)
рджреЗрдЦреЗрдВ рдХрд┐ Supermemory рдХреЗ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдиреЗ рдХреНрдпрд╛ рдмрдирд╛рдпрд╛ред рдпреВрдЬрд╝рд░ рдиреЗ рдПрдХ рдмрд╛рд░ рдХрд╣рд╛, "I only train at home, no gym." рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдиреЗ рдЙрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп "Trains at home instead of a gym" рдореЗрдВ рдмрджрд▓рд╛ред
рдмреЗрдВрдЪ рдкреНрд░реЗрд╕ рд▓реЙрдЧ рдореЗрдВ рдШреБрдЯрдиреЗ рдореЗрдВ рджрд░реНрдж рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреЛрдЯреНрд╕ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рдереАред рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдиреЗ рдЙрд╕ рдПрдХ рд▓реЙрдЧ рдХреЛ рджреЛ рдЧрддрд┐рд╢реАрд▓ рддрдереНрдпреЛрдВ рдореЗрдВ рдмрд╛рдБрдЯ рджрд┐рдпрд╛: рдПрдХ рд╡рд░реНрдХрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд░реНрдж рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдПред
рдЪрд╛рд░ рд▓реЙрдЧ рдкрд╛рдБрдЪ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЧрддрд┐рд╢реАрд▓ рддрдереНрдпреЛрдВ рдореЗрдВ рдмрджрд▓реЗ, рд╕рд╛рде рд╣реА рдкрд╛рдБрдЪ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рдореЗрдореЛрд░реА chunks, рдЬрд┐рдирдХреЗ рд╕рд┐рдорд┐рд▓реИрд░рд┐рдЯреА рд╕реНрдХреЛрд░ 0.585 рдФрд░ 0.682 рдХреЗ рдмреАрдЪ рдереЗред рдпрд╣ рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ, рдиреЙрд░реНрдорд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рдпрд╛ рдореИрдЪрд┐рдВрдЧ рдЯреНрд░реЗрдирд░ рдХреЗ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рдирд╣реАрдВ рдЪрд▓реАред рдпрджрд┐ dynamic рдЖрдкрдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рд╣реИ, 10 рд╕реЗрдХрдВрдб рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рд╕реНрдирд┐рдкреЗрдЯ рджреЛрдмрд╛рд░рд╛ рдЪрд▓рд╛рдПрдБред рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрддрд╛рд░ рдХрднреА-рдХрднреА рд╕реНрдкрд╛рдЗрдХ рдХрд░рддреА рд╣реИред
рдЕрдм рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рддреНрд░ 2 рд╢реБрд░реВ рдХрд░реЗрдВ:
uv run python main.py
рдпрд╣ рдПрдХ рдлреНрд░реЗрд╢ Python рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рд╣реИред рд╕рддреНрд░ 1 рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдирд╣реАрдВред рдХреЛрдИ рд╡реЙрд░реНрдо рдХреИрд╢ рдирд╣реАрдВред рдПрдЬреЗрдВрдЯ рдЬреЛ рднреА рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ, рд╡рд╣ Supermemory рд╕реЗ рдЖрддрд╛ рд╣реИред
рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗрдВ: "рдЖрдЬ рдореЗрд░реЗ рд╡рд░реНрдХрдЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?"

рдЙрджрд╛рд╣рд░рдг рдЖрдЙрдЯрдкреБрдЯред рд╡рд╣реА рдореЗрдореЛрд░реА рд╕реНрдЯреЛрд░, рдлреНрд░реЗрд╢ Python рдкреНрд░рдХреНрд░рд┐рдпрд╛ред
рдПрдЬреЗрдВрдЯ suggest_next_session("today") рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЯреВрд▓ static=0 dynamic=5 matches=5 рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд░рди рдиреЗ рдШрд░ рдкрд░ рд▓реЛрдЕрд░-рдмреЙрдбреА рд╕рддреНрд░ (рд╕реНрдХреНрд╡реИрдЯреНрд╕, рд▓рдВрдЬреЗрд╕, рд╕реНрдЯреЗрдк-рдЕрдкреНрд╕) рд╕реЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ред
рд╕рд┐рдлрд╛рд░рд┐рд╢ рдкрд┐рдЫрд▓реЗ рд▓реЙрдЧреНрд╕ рдХреЗ рдЕрдиреБрд░реВрдк рдереА рдХреНрдпреЛрдВрдХрд┐ Supermemory рдХреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдиреЗ рдПрдЬреЗрдВрдЯ рдХреЛ рдмрддрд╛рдпрд╛ рдХрд┐ рд╡реЗ рдХреНрдпрд╛ рдереЗред рдмреЗрдВрдЪ, рдбреЗрдбрд▓рд┐рдлреНрдЯ, рдФрд░ 5k рдЕрдкрд░-рдмреЙрдбреА рдпрд╛ рдХрд╛рд░реНрдбрд┐рдпреЛ рдереЗ, рдФрд░ рдпреВрдЬрд╝рд░ рдХреЗрд╡рд▓ рдШрд░ рдкрд░ рдЯреНрд░реЗрди рдХрд░рддрд╛/рдХрд░рддреА рдерд╛/рдереАред рджреЛрдиреЛрдВ рддрдереНрдп рдЙрд╕реА client.profile() рдХреЙрд▓ рд╕реЗ рд▓реМрдЯреЗред рдЖрдкрдХрд╛ рд░рди рд╢рдмреНрджреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд░рдЦреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбрд▓ рдиреЙрди-рдбрд┐рдЯрд░реНрдорд┐рдирд┐рд╕реНрдЯрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рд░реАрдХреЙрд▓ рдкрд╛рде рд╡рд╣реА рд░рд╣реЗрдЧрд╛ред
рдЕрдкрдиреЗ Supermemory рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдХрджрдо
рдбреЗрдореЛ рдПрдХ рдпреВрдЬрд╝рд░, рджреЛ рдЯреВрд▓реНрд╕, рдФрд░ рдПрдХ CLI рд╣реИред рдЯреНрд░реЗрдирд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрдЬрд╝рди рдПрдЬреЗрдВрдЯ рд▓реВрдк рдХреЛ рдЫреБрдП рдмрд┐рдирд╛ рддреАрди Supermemory-рдЖрдХрд╛рд░ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЬрд╝рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореЗрдореЛрд░реА рд╕реНрдХреЛрдк рдХрд░реЗрдВред USER_ID = "demo_user" рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдбрдХреНрд╢рди рдРрдкреНрд╕ рдкреНрд░рдорд╛рдгрд┐рдд рдпреВрдЬрд╝рд░ рдХреА ID рд╕реЗ рдЯреИрдЧ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ container_tag="user_sarah" рдпрд╛ container_tag=customer_idред рдпреВрдЬрд╝рд░реНрд╕ рдХреЗ рдмреАрдЪ рдореЗрдореЛрд░реА рдЕрд▓рдЧ рд░рд╣рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рд░реАрдб рдЯреИрдЧ рд╡рд╛рдкрд╕ рдкрд╛рд╕ рдХрд░рддреА рд╣реИред tools.py рдореЗрдВ рдПрдХ рдмрджрд▓рд╛рд╡, рдФрд░ рдХреЛрдИ рдХреЛрдб рдирд╣реАрдВ рд╣рд┐рд▓рддрд╛ред
рдФрд░ рдореЗрдореЛрд░реА-рд╕рдорд░реНрдерд┐рдд рдЯреВрд▓реНрд╕ рдЬреЛрдбрд╝реЗрдВред рдбреАрд▓реЛрдб рд╡реАрдХ, PR рдЯреНрд░реИрдХрд┐рдВрдЧ, рдФрд░ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдореЛрдмрд┐рд▓рд┐рдЯреА рдкреНрд░реЙрдореНрдкреНрдЯреНрд╕ред рд╣рд░ рдПрдХ рдФрд░ @function_tool рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ writes рдХреЗ рд▓рд┐рдП client.add() рдФрд░ reads рдХреЗ рд▓рд┐рдП client.profile() рдХреЛ рдЙрд╕реА container_tag рдХреЗ рд╡рд┐рд░реБрджреНрдз рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдЯреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдЬреЗрдВрдЯ рдХреНрдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдкреВрдЫрддрд╛ рд╣реИ, рд╡рд╣ рдмрджрд▓рддрд╛ рд╣реИред
Supermemory рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓реЗрдВред client.add() рдФрд░ client.profile() рдХреЛ try/except supermemory.APIError рдореЗрдВ рд░реИрдк рдХрд░реЗрдВ рддрд╛рдХрд┐ Supermemory рдХреА рдЕрд╕реНрдерд╛рдпреА рд╡рд┐рдлрд▓рддрд╛рдПрдБ рдПрдЬреЗрдВрдЯ рдХреЛ рдХреНрд░реИрд╢ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рдПрдЬреЗрдВрдЯ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐-рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░реЗрдВред
рдПрдЬреЗрдВрдЯ-рд▓реВрдк рдкрдХреНрд╖ рдХрд╛ рдХрд╛рдо Supermemory рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред CLI рдХреЗ рд╕рд╛рдордиреЗ Telegram, Discord, рдпрд╛ Slack рд░рдЦреЗрдВ, рддрд╛рдХрд┐ рдпреВрдЬрд╝рд░ рд╡рд░реНрдХрдЖрдЙрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдХрд░реЗ рдФрд░ рдмреЙрдЯ Runner.run() рдХреЙрд▓ рдХрд░реЗред рдпрд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрджрд▓реЗрдВред рдпрджрд┐ рдЖрдкрдХрд╛ рд╕реНрдЯреИрдХ рдкрд╣рд▓реЗ рд╕реЗ LangChain рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдкрд░ рд╣реИ рддреЛ Supermemory рдХрд╛ LangChain рдПрдЬреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╣реИ, рдФрд░ рдореЗрдореЛрд░реА рдХреЛрдб рдирд╣реАрдВ рдмрджрд▓рддрд╛ред
рд╕реНрдерд┐рд░-рдФрд░-рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рднрд╛рдЬрди рдЕрдиреНрдп рдбреЛрдореЗрдиреНрд╕ рдореЗрдВ рднреА рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред┬а
- рдХрд╕реНрдЯрдорд░ рд╕рдкреЛрд░реНрдЯ рдПрдЬреЗрдВрдЯ: рд╕реНрдерд┐рд░ = рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдБ рдФрд░ рдЕрдХрд╛рдЙрдВрдЯ рдкрд╕рдВрдж, рдЧрддрд┐рд╢реАрд▓ = рдЦреБрд▓реЗ рдЯрд┐рдХрдЯ рдФрд░ рд╣рд╛рд▓ рдХреЗ рд╕рдВрдкрд░реНрдХред┬а
- рдХреЛрдбрд┐рдВрдЧ рдПрдЬреЗрдВрдЯ: рд╕реНрдерд┐рд░ = рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛рдПрдБ рдФрд░ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХреНрд╕, рдЧрддрд┐рд╢реАрд▓ = рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдФрд░ рд╣рд╛рд▓ рдореЗрдВ рдЫреБрдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВред┬а
рдЬрдм рднреА рдпреВрдЬрд╝рд░ рд╕реНрд░реЛрдд-рдП-рдЯреНрд░реБрде рд╣реЛ, рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдкрдиреЗ рдЕрднреА Python рдореЗрдВ рджреЛ рдЯреВрд▓реНрд╕ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд╛рд░ рд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдЯреНрд░реЗрдирд░ рдмрдирд╛рдпрд╛ред client.add() рд╡рд░реНрдХрдЖрдЙрдЯреНрд╕ рд▓рд┐рдЦрддрд╛ рд╣реИред client.profile() рдпреВрдЬрд╝рд░ рдХреЛ рдПрдХ рдХреЙрд▓ рдореЗрдВ рд╕реНрдерд┐рд░ рддрдереНрдп, рдЧрддрд┐рд╢реАрд▓ рддрдереНрдп, рдФрд░ рд╕реЗрдорд╛рдВрдЯрд┐рдХ рдореИрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИтАФрд╕рдм container_tag рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреЛрдк рдХрд┐рдпрд╛ рд╣реБрдЖред Supermemory рд╡рд╣ chunking, embedding, search, рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрд╢рди рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрдореЛ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рдкрдбрд╝реАред
рдЗрд╕реЗ RAG рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВ, рдФрд░ рд╡рд╣реА рдПрдЬреЗрдВрдЯ рдпреВрдЬрд╝рд░ рдФрд░ рдкреНрд░реЛрдбрдХреНрдЯтАФрджреЛрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИред LLM рдПрдЬреЗрдВрдЯреНрд╕ рдПрдХреНрд╕рдкреНрд▓реЗрдВрдб рд╡реНрдпрд╛рдкрдХ рдПрдЬреЗрдВрдЯ рдкреИрдЯрд░реНрди рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Associate AI Engineer for Developers рдЯреНрд░реИрдХ рдореЗрдореЛрд░реА-рд╕рдорд░реНрдерд┐рдд рдПрдЬреЗрдВрдЯреНрд╕ рдореЗрдВ рдФрд░ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред
Supermemory FAQs
Supermemory рдХреНрдпрд╛ рд╣реИ?
Supermemory рдПрдХ рд╣реЛрд╕реНрдЯреЗрдб рдореЗрдореЛрд░реА API рд╣реИ рдЬреЛ AI рдПрдЬреЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреА рдЕрд╡рдзрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн рд╕реНрдЯреЛрд░, рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рд░рд┐рдЯреНрд░реАрд╡ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд╕рддреНрд░реЛрдВ рдХреЗ рдкрд╛рд░ рдпреВрдЬрд╝рд░реНрд╕ рдХреЛ рдпрд╛рдж рд░рдЦ рд╕рдХреЗрдВред
Supermemory рд╕рд╛рдзрд╛рд░рдг рд╡реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реИ?
Supermemory рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рдКрдкрд░ рдПрдореНрдмреЗрдбрд┐рдВрдЧреНрд╕, рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ, рд╕реЗрдорд╛рдВрдЯрд┐рдХ рд╕рд░реНрдЪ, рдФрд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓-рд╕реНрдЯрд╛рдЗрд▓ рдлрд╝реИрдХреНрдЯ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрд╢рди рдЬреЛрдбрд╝рддреА рд╣реИ, рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА API рдХреЙрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдореЗрдореЛрд░реАрдЬрд╝ рдорд┐рд▓реЗрдВред
рдХреНрдпрд╛ Supermemory RAG рдФрд░ рдпреВрдЬрд╝рд░ рдореЗрдореЛрд░реАтАФрджреЛрдиреЛрдВ рд╕рдВрднрд╛рд▓ рд╕рдХрддреА рд╣реИ?
рд╣рд╛рдБ, рдпрд╣ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ URLs рдкрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ-рд╕реНрдЯрд╛рдЗрд▓ RAG рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпреВрдЬрд╝рд░-рд╕реЗрдВрдЯреНрд░рд┐рдХ рдореЗрдореЛрд░реАрдЬрд╝ рдХреЛ рднреА рд╕рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд╣реА API рдкреНрд░реЛрдбрдХреНрдЯ рдиреЙрд▓реЗрдЬ рдФрд░ рдкрд░реНрд╕рдирд▓ рд╣рд┐рд╕реНрдЯреНрд░реАтАФрджреЛрдиреЛрдВ рдХреЛ рдкрд╛рд╡рд░ рдХрд░ рд╕рдХреЗред
рдХреНрдпрд╛ рдореБрдЭреЗ Supermemory рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдореЙрдбрд▓реНрд╕ рдореИрдиреЗрдЬ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?
рдирд╣реАрдВ, Supermemory рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдФрд░ рд░рд┐рдЯреНрд░реАрд╡рд▓ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЪрд▓рд╛рддреА рд╣реИ; рдЖрдк рдХрдЪреНрдЪрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдпрд╛ рдХрдВрдЯреЗрдВрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрд┐рдирд╛ рдореЙрдбрд▓ рдпрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╕рдВрднрд╛рд▓реЗ рдЙрд╕реЗ рдХреНрд╡реЗрд░реА рдХрд░рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ Supermemory рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлреНрд░реА рдЯрд┐рдпрд░ рд╣реИ?
рд╣рд╛рдБ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдЫреЛрдЯреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реА рдкреНрд▓рд╛рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рд╕рд┐рдХ рдЯреЛрдХрди рдФрд░ рдХреНрд╡реЗрд░реА рд▓рд┐рдорд┐рдЯреНрд╕ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдЧреНрд░реЗрдб рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдФрд░ рдПрдХреНрд╕рдкреЗрд░рд┐рдореЗрдВрдЯ рдХрд░ рд╕рдХреЗрдВред
рдЕрдзрд┐рдХрд╛рдВрд╢ LLM рдПрдЬреЗрдВрдЯ рд╣рд░ рд░рди рдкрд░ рд╢реВрдиреНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ рдпреВрдЬрд╝рд░ рдХрд╛ рдирд╛рдо, рдкрд┐рдЫрд▓реА рдмрд╛рддрдЪреАрдд, рдФрд░ рдЬрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╡реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдереЗ рдЙрд╕реЗ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВред рдпреВрдЬрд╝рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рд╣рд░ рдЯрд░реНрди рдкрд░ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд┐рд╕реА рдПрдЬреЗрдВрдЯ рдореЗрдВ рд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдЧрд▓рд╛ рд░рди рд╡рд╣реАрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╣рд╛рдБ рдкрд┐рдЫрд▓рд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдЖ рдерд╛ред рдореЗрдореЛрд░реА рдкрд░рдд рд╣реИ Supermemory, рдПрдХ рд╣реЛрд╕реНрдЯреЗрдб API рдЬреЛ рдкреНрд░рддрд┐-рдпреВрдЬрд╝рд░ рддрдереНрдп рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдХреЙрд▓ рдореЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИред рдЖрдк Python рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдПрдХреНрд╕рд░рд╕рд╛рдЗрдЬрд╝ рдЯреНрд░реЗрдирд░ рдмрдирд╛рдПрдВрдЧреЗред рдПрдЬреЗрдВрдЯ рд╡рд░реНрдХрдЖрдЙрдЯ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд▓рд╛ рд╕рддреНрд░ рд╕реБрдЭрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рди рдХреЗ рдмреАрдЪ рдкрд╕рдВрдж рдФрд░ рд╣рд╛рд▓ рдХреА рд▓рд┐рдлреНрдЯреНрд╕ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИред
рд╕реНрдЯреИрдХ рдЫреЛрдЯрд╛ рд╣реИред Supermemory рдореЗрдореЛрд░реА рд╣реЛрд▓реНрдб рдХрд░рддреА рд╣реИред OpenAI Agents SDK рдПрдЬреЗрдВрдЯ рд▓реВрдк рдЪрд▓рд╛рддрд╛ рд╣реИред рдЯреНрд░реЗрдирд░ рджреЛ Python рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдПрдХ
pyproject.tomlрдлрд╝рд╛рдЗрд▓ рд╕реЗ рдмрдирд╛ рд╣реИредрдЖрдкрдХреЛ Python 3.10 рдпрд╛ рдирдпрд╛ рд╡рд░реНрдЬрд╝рди, рдПрдХ OpenAI рдЦрд╛рддрд╛, рдПрдХ Supermemory рдЦрд╛рддрд╛, рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред