Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Figyelmeztetés
A szemantikus kernelügynök memóriafunkciója kísérleti jellegű, változhat, és csak visszajelzés és értékelés alapján lesz véglegesítve.
Gyakran fontos, hogy egy ügynök megjegyezze a fontos információkat. Ezek az információk egy beszélgetés időtartamára vagy hosszabb időre is megőrizhetők, hogy több beszélgetésre is kiterjedjenek. Előfordulhat, hogy az információk a felhasználóval való interakcióból tanulhatók meg, és az adott felhasználóra jellemzőek lehetnek.
Ezeket az információs emlékeket nevezzük.
Az emlékek rögzítéséhez és megőrzéséhez támogatjuk azokat az összetevőket, amelyek felhasználhatók az AgentThread emlékek kinyerésére a szálhoz hozzáadott üzenetekből, és szükség szerint biztosítjuk ezeket az emlékeket az ügynöknek.
A Mem0 használata ügynökmemóriaként
A Mem0 az LLM-alkalmazások önfejlesztő memóriarétege, amely személyre szabott AI-élményeket tesz lehetővé.
Az Microsoft.SemanticKernel.Memory.Mem0Provider integrálás a Mem0 szolgáltatással lehetővé teszi az ügynökök számára, hogy több szálon jegyezzenek meg felhasználói beállításokat és kontextust, így zökkenőmentes felhasználói élményt biztosítva.
A szálhoz hozzáadott üzeneteket a Rendszer elküldi a Mem0 szolgáltatásnak, hogy memóriát nyerjen ki. A Mem0 minden egyes ügynök-hívásnál lekérdezi a megadott felhasználói kérésnek megfelelő emlékeket, és a rendszer minden emléket hozzáad az adott meghívás ügynökkörnyezetéhez.
A Mem0 memóriaszolgáltatója egy felhasználói azonosítóval konfigurálható, hogy több szálon is tárolhassa a felhasználó memóriáját hosszú távon. Konfigurálható szálazonosítóval vagy az ügynökszál szálazonosítójával is, hogy lehetővé tegye a rövid távú memóriákat, amelyek csak egyetlen szálhoz vannak csatolva.
Íme egy példa az összetevő használatára.
// Create an HttpClient for the Mem0 service.
using var httpClient = new HttpClient()
{
BaseAddress = new Uri("https://api.mem0.ai")
};
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "<Your_Mem0_API_Key>");
// Create a Mem0 provider for the current user.
var mem0Provider = new Mem0Provider(httpClient, options: new()
{
UserId = "U1"
});
// Clear any previous memories (optional).
await mem0Provider.ClearStoredMemoriesAsync();
// Add the mem0 provider to the agent thread.
ChatHistoryAgentThread agentThread = new();
agentThread.AIContextProviders.Add(mem0Provider);
// Use the agent with mem0 memory.
ChatMessageContent response = await agent.InvokeAsync("Please retrieve my company report", agentThread).FirstAsync();
Console.WriteLine(response.Content);
A Mem0Provider beállításai
A Mem0Provider különböző beállításokkal konfigurálható a viselkedés testreszabásához.
A beállításokat az Mem0ProviderOptions osztály használatával adták meg a Mem0Provider konstruktornak.
Hatókörkezelési beállítások
A Mem0 lehetővé teszi az emlékek hatókörének meghatározását alkalmazás, ügynök, szál és felhasználó szerint.
A lehetőségek lehetővé teszik az azonosítók megadását ezekhez a hatókörökhöz, így az emlékek az azonosítók alatt mem0-ben tárolhatók.
Tekintse meg a ApplicationId, AgentId, ThreadId és UserId tulajdonságokat a következőn Mem0ProviderOptions.
Bizonyos esetekben érdemes lehet a kiszolgálóoldali ügynökszál szálazonosítóját használni egy szolgáltatásalapú ügynök használatakor.
Előfordulhat azonban, hogy a szál még nem lett létrehozva az Mem0Provider objektum létrehozásakor.
Ebben az esetben beállíthatja a ScopeToPerOperationThreadId opciót true, és a Mem0Provider a AgentThread azonosítóját fogja használni, amikor az elérhető.
Kontekstus felszólítás
Ezzel ContextPrompt a beállítással módosíthatja a memóriák előtagjaként megadott alapértelmezett kérést.
A parancssor az AI-modellnek biztosított emlékek kontextusba iktatására szolgál, így az AI-modell tudja, mik ezek, és hogyan használhatja őket.
A Whiteboard Memóriát a Short-Term környezet számára használva
A rajztábla memóriafunkciója lehetővé teszi az ügynökök számára, hogy a beszélgetés legrelevánsabb információit rögzítsék és megőrizzék, még akkor is, ha a csevegési előzmények csonkoltak.
A beszélgetéshez hozzáadott összes üzenetet a rendszer feldolgozza a Microsoft.SemanticKernel.Memory.WhiteboardProvider követelmények, javaslatok, döntések, műveletek kinyeréséhez.
Ezek egy rajztáblán vannak tárolva, és az ügynök számára további kontextusként jelennek meg az egyes meghívások során.
Íme egy példa a Whiteboard Memória beállítására:
// Create a whiteboard provider.
var whiteboardProvider = new WhiteboardProvider(chatClient);
// Add the whiteboard provider to the agent thread.
ChatHistoryAgentThread agentThread = new();
agentThread.AIContextProviders.Add(whiteboardProvider);
// Simulate a conversation with the agent.
await agent.InvokeAsync("I would like to book a trip to Paris.", agentThread);
// Whiteboard should now contain a requirement that the user wants to book a trip to Paris.
A Whiteboard Memória előnyei
- Short-Term környezet: Megőrzi a folyamatban lévő beszélgetések céljaival kapcsolatos legfontosabb információkat.
- Engedélyezi a csevegési előzmények csonkolását: Támogatja a kritikus kontextus fenntartását a csevegési előzmények csonkolásakor.
A WhiteboardProvider beállításai
A WhiteboardProvider különböző beállításokkal konfigurálható a viselkedés testreszabásához.
A beállításokat az WhiteboardProviderOptions osztály használatával adták meg a WhiteboardProvider konstruktornak.
MaxWhiteboardMessages
A rajztáblán megőrzendő üzenetek maximális számát adja meg. A maximális érték elérésekor a rendszer eltávolítja a kevésbé értékes üzeneteket.
ContextPrompt
Amikor megadja a rajztábla tartalmát az AI-modellnek, fontos leírni, hogy mire szolgálnak az üzenetek.
Ez a beállítás lehetővé teszi a WhiteboardProvider beépített alapértelmezett üzenetkezelés felülírását.
WhiteboardEmptyPrompt
Ha a rajztábla üres, a WhiteboardProvider kimenet egy üzenetben jelzi, hogy üres.
Ez a beállítás lehetővé teszi az alapértelmezett üzenet felülírását, amely be van építve a WhiteboardProvider.
Karbantartási Felszólítási Sablon
A WhiteboardProvider AI-modellt használ arra, hogy üzeneteket adjon hozzá, frissítsen vagy távolítson el a rajztáblán.
Beépített kéréssel rendelkezik a frissítések elvégzésére.
Ez a beállítás lehetővé teszi ennek a beépített kérésnek a felülírását.
A sablonban a következő paraméterek használhatók:
-
{{$maxWhiteboardMessages}}: A rajztáblán engedélyezett üzenetek maximális száma. -
{{$inputMessages}}: A rajztáblához hozzáadandó bemeneti üzenetek. -
{{$currentWhiteboard}}: A rajztábla aktuális állapota.
A Mem0 és a Whiteboard Memória kombinálása
A Mem0 és a rajztábla memóriáját is használhatja ugyanabban az ügynökben, hogy egyensúlyt teremtsen a hosszú és a rövid távú memóriaképességek között.
// Add both Mem0 and whiteboard providers to the agent thread.
agentThread.AIContextProviders.Add(mem0Provider);
agentThread.AIContextProviders.Add(whiteboardProvider);
// Use the agent with combined memory capabilities.
ChatMessageContent response = await agent.InvokeAsync("Please retrieve my company report", agentThread).FirstAsync();
Console.WriteLine(response.Content);
A memóriafunkciók kombinálásával az ügynökök személyre szabottabb és környezettudatosabb felhasználói élményt nyújthatnak.
Következő lépések
Hamarosan elérhető
Hamarosan további információk is érkeznek.
Hamarosan elérhető
Hamarosan további információk is érkeznek.