autogen_ext.memory.mem0#
- class Mem0Memory(user_id: str | None = None, limit: int = 10, is_cloud: bool = True, api_key: str | None = None, config: Dict[str, Any] | None = None)[Quelle]#
Bases:
Memory,Component[Mem0MemoryConfig],ComponentBase[Mem0MemoryConfig]Mem0-Speicherimplementierung für AutoGen.
Diese Komponente integriert sich in das Mem0.ai-Speichersystem und bietet eine Implementierung der Memory-Schnittstelle von AutoGen. Sie unterstützt sowohl Cloud- als auch lokale Backends über das mem0ai Python-Paket.
Um diese Komponente zu verwenden, müssen Sie das mem0 (nur Cloud) oder mem0-local (lokal) Extra für das Paket autogen-ext installiert haben.
pip install -U "autogen-ext[mem0]" # For cloud-based Mem0 pip install -U "autogen-ext[mem0-local]" # For local Mem0
Die Speicherkomponente kann Informationen speichern und abrufen, an die sich Agenten über Konversationen hinweg erinnern müssen. Sie bietet auch Kontextaktualisierungen für Sprachmodelle mit relevanten Erinnerungen.
Examples
import asyncio from autogen_ext.memory.mem0 import Mem0Memory from autogen_core.memory import MemoryContent async def main() -> None: # Create a local Mem0Memory (no API key required) memory = Mem0Memory( is_cloud=False, config={"path": ":memory:"}, # Use in-memory storage for testing ) print("Memory initialized successfully!") # Add something to memory test_content = "User likes the color blue." await memory.add(MemoryContent(content=test_content, mime_type="text/plain")) print(f"Added content: {test_content}") # Retrieve memories with a search query results = await memory.query("What color does the user like?") print(f"Query results: {len(results.results)} found") for i, result in enumerate(results.results): print(f"Result {i+1}: {result}") asyncio.run(main())
Ausgabe
Memory initialized successfully! Added content: User likes the color blue. Query results: 1 found Result 1: content='User likes the color blue' mime_type='text/plain' metadata={'score': 0.6977155806281953, 'created_at': datetime.datetime(2025, 7, 6, 17, 25, 18, 754725, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=61200)))}Verwendung mit einem
AssistantAgentimport asyncio from autogen_agentchat.agents import AssistantAgent from autogen_core.memory import MemoryContent from autogen_ext.memory.mem0 import Mem0Memory from autogen_ext.models.openai import OpenAIChatCompletionClient async def main() -> None: # Create a model client model_client = OpenAIChatCompletionClient(model="gpt-4.1") # Create a Mem0 memory instance memory = Mem0Memory( user_id="user123", is_cloud=False, config={"path": ":memory:"}, # Use in-memory storage for testing ) # Add something to memory test_content = "User likes the color blue." await memory.add(MemoryContent(content=test_content, mime_type="text/plain")) # Create an assistant agent with Mem0 memory agent = AssistantAgent( name="assistant", model_client=model_client, memory=[memory], system_message="You are a helpful assistant that remembers user preferences.", ) # Run a sample task result = await agent.run(task="What color does the user like?") print(result.messages[-1].content) # type: ignore asyncio.run(main())
Ausgabe
User likes the color blue.
- Parameter:
user_id – Optionale Benutzer-ID für Speicheroperationen. Wenn nicht angegeben, wird eine UUID generiert.
limit – Maximale Anzahl von Ergebnissen, die bei Speicherabfragen zurückgegeben werden.
is_cloud – Ob der Cloud-Mem0-Client (True) oder der lokale Client (False) verwendet werden soll.
api_key – API-Schlüssel für den Cloud-Mem0-Client. Wenn nicht angegeben, wird er aus der Umgebungsvariable MEM0_API_KEY gelesen.
config – Konfigurationswörterbuch für den lokalen Mem0-Client. Erforderlich, wenn is_cloud=False.
- component_type: ClassVar[ComponentType] = 'memory'#
Der logische Typ der Komponente.
- component_provider_override: ClassVar[str | None] = 'autogen_ext.memory.mem0.Mem0Memory'#
Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.
- component_config_schema#
alias von
Mem0MemoryConfig
- property limit: int#
Ruft die maximale Anzahl von Ergebnissen ab, die bei Speicherabfragen zurückgegeben werden.
- async add(content: MemoryContent, cancellation_token: CancellationToken | None = None) None[Quelle]#
Inhalt zum Speicher hinzufügen.
- Parameter:
content – Der hinzuzufügende Speicherinhalt.
cancellation_token – Optionales Token zum Abbrechen des Vorgangs.
- Löst aus:
Exception – Wenn beim Hinzufügen von Inhalten zum Mem0-Speicher ein Fehler auftritt.
- async query(query: str | MemoryContent = '', cancellation_token: CancellationToken | None = None, **kwargs: Any) MemoryQueryResult[Quelle]#
Speicher nach relevantem Inhalt abfragen.
- Parameter:
query – Die Abfrage, nach der gesucht werden soll, entweder als Zeichenkette oder als MemoryContent.
cancellation_token – Optionales Token zum Abbrechen des Vorgangs.
**kwargs – Zusätzliche Abfrageparameter, die an mem0 übergeben werden sollen.
- Gibt zurück:
MemoryQueryResult, das Suchergebnisse enthält.
- async update_context(model_context: ChatCompletionContext) UpdateContextResult[Quelle]#
Aktualisiert den Modellkontext mit relevanten Erinnerungen.
Diese Methode ruft den Konversationsverlauf aus dem Modellkontext ab, verwendet die letzte Nachricht als Abfrage, um relevante Erinnerungen zu finden, und fügt diese Erinnerungen dann als Systemnachricht zum Kontext hinzu.
- Parameter:
model_context – Der zu aktualisierende Modellkontext.
- Gibt zurück:
UpdateContextResult, das dem Kontext hinzugefügte Erinnerungen enthält.
- pydantic model Mem0MemoryConfig[Quelle]#
Bases:
BaseModelKonfiguration für die Mem0Memory-Komponente.
JSON-Schema anzeigen
{ "title": "Mem0MemoryConfig", "description": "Configuration for Mem0Memory component.", "type": "object", "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "User ID for memory operations. If not provided, a UUID will be generated.", "title": "User Id" }, "limit": { "default": 10, "description": "Maximum number of results to return in memory queries.", "title": "Limit", "type": "integer" }, "is_cloud": { "default": true, "description": "Whether to use cloud Mem0 client (True) or local client (False).", "title": "Is Cloud", "type": "boolean" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "description": "API key for cloud Mem0 client. Required if is_cloud=True.", "title": "Api Key" }, "config": { "anyOf": [ { "type": "object" }, { "type": "null" } ], "default": null, "description": "Configuration dictionary for local Mem0 client. Required if is_cloud=False.", "title": "Config" } } }
- Felder:
api_key (str | None)config (Dict[str, Any] | None)is_cloud (bool)limit (int)user_id (str | None)
- field user_id: str | None = None#
Benutzer-ID für Speicheroperationen. Wenn nicht angegeben, wird eine UUID generiert.
- field limit: int = 10#
Maximale Anzahl von Ergebnissen, die bei Speicherabfragen zurückgegeben werden.
- field is_cloud: bool = True#
Ob der Cloud-Mem0-Client (True) oder der lokale Client (False) verwendet werden soll.