Memoria unificată CrewAI (clasa Memory) în CrewAI & Sisteme Multi-Agent

CrewAI are acum o singură clasă Memory, care înlocuiește memoriile separate short-term, long-term, entity și external.

Sintaxă & invocare Python
from crewai import Crew, Memory

echipa = Crew(agents=[...], tasks=[...], memory=True)
# sau, configurată:
memorie = Memory(recency_weight=0.4, semantic_weight=0.4, importance_weight=0.2)
echipa = Crew(agents=[...], tasks=[...], memory=memorie)

Ce face Memoria unificată CrewAI (clasa Memory)

CrewAI folosește un sistem de memorie unificat: clasa Memory înlocuiește memoriile separate pe termen scurt, pe termen lung, de entități și externe. La salvare, un LLM analizează conținutul și deduce scopul, categoriile și importanța. La căutare, rezultatele sunt ordonate după un scor compus din similaritate semantică, recență și importanță.

Cu memory=True pe Crew, echipa creează un Memory() implicit și îi transmite configurația embedder a echipei. După fiecare task, echipa extrage fapte din rezultat și le salvează; înainte de fiecare task, agentul caută contextul relevant și îl adaugă în prompt. Toți agenții folosesc memoria echipei, dacă nu au una proprie (de exemplu memory=memorie.scope("/agent/researcher")).

Memoriile sunt organizate într-un arbore de scopuri, ca un sistem de fișiere: /, /project/alpha, /agent/researcher. Fără scop explicit, LLM-ul alege unde pune informația. Memoria se folosește și singură, în scripturi, și în Flows, cu self.remember() și self.recall().

Implicit, embedding-urile vin de la OpenAI text-embedding-3-large (3072 de dimensiuni), iar analiza folosește gpt-4o-mini. Stocarea implicită este LanceDB, în ./.crewai/memory; o schimbi cu storage="./cale" sau cu variabila CREWAI_STORAGE_DIR.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
memory=True Pe Crew: memorie implicită, comună tuturor agenților.
Memory(...) Instanță configurată, dată ca memory= pe Crew sau Agent.
remember(text, scope=...) Salvează o informație.
recall(întrebare, limit=..., depth=...) Caută. depth="shallow" face doar căutare vectorială, fără apeluri LLM; depth="deep" (implicit) analizează întrebările lungi cu un LLM.
forget(scope=...) Șterge un subarbore de scopuri.
semantic_weight / recency_weight / importance_weight Ponderile scorului compus: implicit 0.5 / 0.3 / 0.2.
recency_half_life_days Zilele după care scorul de recență se înjumătățește (implicit 30).
embedder Configurația de embedding, de exemplu {"provider": "ollama", "config": {"model_name": "mxbai-embed-large"}}.
llm Modelul pentru analiză (implicit gpt-4o-mini).

Exemple practice

Exemplul 1: Memorie folosită direct, fără echipă

from crewai import Memory

memory = Memory()
memory.remember("We decided to use PostgreSQL for the user database.")
matches = memory.recall("What database did we choose?")
for m in matches:
    print(f"[{m.score:.2f}] {m.record.content}")

Exemplul 2: Embedding-uri locale cu Ollama

memory = Memory(embedder={
    "provider": "ollama",
    "config": {
        "model_name": "mxbai-embed-large",
        "url": "http://localhost:11434/api/embeddings",
    },
})

Exemplul 3: Resetare și inspectare din terminal

crewai reset-memories -m
crewai memory

Greșeli frecvente și bune practici

  • Cauți parametrii vechi pentru short-term, long-term și entity memory. Au fost înlocuiți de clasa Memory; în CLI, -l, -s și -e sunt învechite în favoarea lui -m.
  • Activezi memoria fără cheie OpenAI și fără alt embedder. Configurația implicită folosește OpenAI atât pentru embedding, cât și pentru analiză.
  • Primești o eroare de dimensiune a embedding-urilor pe o memorie veche. Stocările create cu modele de 1536 de dimensiuni nu se potrivesc cu text-embedding-3-large: rulează crewai reset-memories -m, șterge directorul memoriei sau configurează explicit modelul vechi.

Comenzi înrudite

Învață AI • Comunitate & Q&A

Întrebări & Exemple practice: Memoria unificată CrewAI (clasa Memory)

Ai o întrebare despre Memoria unificată CrewAI (clasa Memory) sau ai descoperit un truc, prompt sau fragment de cod util? Distribuie-l cu ceilalți membri ai comunității!

🤖

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.

Comunitate AI Adaugă o întrebare sau distribuie un cod / prompt

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.