Šioje mokymo programoje tyrinėjame, kaip sukurti išmanųjį agentą, kuris laikui bėgant įsimintų, mokytųsi ir prie mūsų prisitaikytų. Įgyvendiname a Nuolatinė atmintis ir personalizavimas sistema naudojant paprastą taisyklėmis pagrįstą logiką, kad būtų galima imituoti, kaip šiuolaikinės „Agentic AI“ sistemos saugo ir primena kontekstinę informaciją. Tobulėdami matome, kaip agento atsakymai kinta atsižvelgiant į patirtį, kaip atminties nykimas padeda išvengti perkrovos ir kaip personalizavimas pagerina našumą. Mes siekiame žingsnis po žingsnio suprasti, kaip atkaklumas statinį pokalbių robotą paverčia kontekstą suvokiančiu, besivystančiu skaitmeniniu kompanionu. Patikrinkite VISI KODAI čia.
import math, time, random
from typing import List
class MemoryItem:
def __init__(self, kind:str, content:str, score:float=1.0):
self.kind = kind
self.content = content
self.score = score
self.t = time.time()
class MemoryStore:
def __init__(self, decay_half_life=1800):
self.items: List(MemoryItem) = ()
self.decay_half_life = decay_half_life
def _decay_factor(self, item:MemoryItem):
dt = time.time() - item.t
return 0.5 ** (dt / self.decay_half_life)Sukūrėme pagrindą mūsų agento ilgalaikei atminčiai. Mes apibrėžiame „MemoryItem“ klasę, kad būtų galima laikyti kiekvieną informacijos dalį, ir sukurti „MemoryStore“ su eksponentinės skilimo mechanizmu. Mes pradedame dėti pagrindą informacijos saugojimui ir senėjimui, kaip žmogaus atminčiai. Patikrinkite VISI KODAI čia.
def add(self, kind:str, content:str, score:float=1.0):
self.items.append(MemoryItem(kind, content, score))
def search(self, query:str, topk=3):
scored = ()
for it in self.items:
decay = self._decay_factor(it)
sim = len(set(query.lower().split()) & set(it.content.lower().split()))
final = (it.score * decay) + sim
scored.append((final, it))
scored.sort(key=lambda x: x(0), reverse=True)
return (it for _, it in scored(:topk) if _ > 0)
def cleanup(self, min_score=0.1):
new = ()
for it in self.items:
if it.score * self._decay_factor(it) > min_score:
new.append(it)
self.items = newIšplečiame atminties sistemą pridėdami metodus, kaip įterpti, ieškoti ir išvalyti senus prisiminimus. Įdiegiame paprastą panašumo funkciją ir suirimu pagrįstą valymo tvarką, leidžiančią agentui prisiminti svarbius faktus, o tuo pačiu automatiškai pamiršti silpnus ar pasenusius. Patikrinkite VISI KODAI čia.
class Agent:
def __init__(self, memory:MemoryStore, name="PersonalAgent"):
self.memory = memory
self.name = name
def _llm_sim(self, prompt:str, context:List(str)):
base = "OK. "
if any("prefers short" in c for c in context):
base = ""
reply = base + f"I considered {len(context)} past notes. "
if "summarize" in prompt.lower():
return reply + "Summary: " + " | ".join(context(:2))
if "recommend" in prompt.lower():
if any("cybersecurity" in c for c in context):
return reply + "Recommended: write more cybersecurity articles."
if any("rag" in c for c in context):
return reply + "Recommended: build an agentic RAG demo next."
return reply + "Recommended: continue with your last topic."
return reply + "Here's my response to: " + prompt
def perceive(self, user_input:str):
ui = user_input.lower()
if "i like" in ui or "i prefer" in ui:
self.memory.add("preference", user_input, 1.5)
if "topic:" in ui:
self.memory.add("topic", user_input, 1.2)
if "project" in ui:
self.memory.add("project", user_input, 1.0)
def act(self, user_input:str):
mems = self.memory.search(user_input, topk=4)
ctx = (m.content for m in mems)
answer = self._llm_sim(user_input, ctx)
self.memory.add("dialog", f"user said: {user_input}", 0.6)
self.memory.cleanup()
return answer, ctxKuriame išmanųjį agentą, kuris naudoja atmintį, kad informuotų savo atsakymus. Sukuriame imitacinį kalbos modelio treniruoklį, kuris pritaiko atsakymus pagal išsaugotas nuostatas ir temas. Tuo pačiu metu suvokimo funkcija leidžia agentui dinamiškai užfiksuoti naujas įžvalgas apie vartotoją. Patikrinkite VISI KODAI čia.
def evaluate_personalisation(agent:Agent):
agent.memory.add("preference", "User likes cybersecurity articles", 1.6)
q = "Recommend what to write next"
ans_personal, _ = agent.act(q)
empty_mem = MemoryStore()
cold_agent = Agent(empty_mem)
ans_cold, _ = cold_agent.act(q)
gain = len(ans_personal) - len(ans_cold)
return ans_personal, ans_cold, gainDabar savo agentui suteikiame galimybę veikti ir įvertinti save. Leidžiame jai prisiminti prisiminimus, kad būtų suformuoti kontekstiniai atsakymai, ir pridėti nedidelę vertinimo kilpą, kad būtų galima palyginti suasmenintus atsakymus su atmintimi be atminties, kiekybiškai įvertinant, kiek padeda atmintis. Patikrinkite VISI KODAI čia.
mem = MemoryStore(decay_half_life=60)
agent = Agent(mem)
print("=== Demo: teaching the agent about yourself ===")
inputs = (
"I prefer short answers.",
"I like writing about RAG and agentic AI.",
"Topic: cybersecurity, phishing, APTs.",
"My current project is to build an agentic RAG Q&A system."
)
for inp in inputs:
agent.perceive(inp)
print("\n=== Now ask the agent something ===")
user_q = "Recommend what to write next in my blog"
ans, ctx = agent.act(user_q)
print("USER:", user_q)
print("AGENT:", ans)
print("USED MEMORY:", ctx)
print("\n=== Evaluate personalisation benefit ===")
p, c, g = evaluate_personalisation(agent)
print("With memory :", p)
print("Cold start :", c)
print("Personalisation gain (chars):", g)
print("\n=== Current memory snapshot ===")
for it in agent.memory.items:
print(f"- {it.kind} | {it.content(:60)}... | score~{round(it.score,2)}")Galiausiai paleidžiame visą demonstracinę versiją, kad pamatytume, kaip veikia mūsų agentas. Pateikiame naudotojo įvestis, stebime, kaip jis rekomenduoja suasmenintus veiksmus, ir patikriname atminties momentinę nuotrauką. Mes matome adaptyvaus elgesio atsiradimą, įrodymą, kad nuolatinė atmintis statinį scenarijų paverčia mokymosi palydovu.
Pabaigoje parodome, kaip pridėjus atmintį ir personalizavimą mūsų agentas tampa panašesnis į žmogų, gebantis atsiminti nuostatas, pritaikyti planus ir natūraliai pamiršti pasenusias detales. Pastebime, kad net tokie paprasti mechanizmai, kaip nykimas ir atkūrimas, žymiai pagerina agento tinkamumą ir atsako kokybę. Pabaigoje suprantame, kad nuolatinė atmintis yra naujos kartos Agentinio AI pagrindas, kuris nuolat mokosi, sumaniai pritaiko patirtį ir dinamiškai palaiko kontekstą visiškai vietinėje, neprisijungus veikiančioje sąrankoje.
Patikrinkite VISI KODAI čia. Nedvejodami peržiūrėkite mūsų „GitHub“ puslapis, skirtas mokymo priemonėms, kodams ir užrašų knygelėms. Be to, nedvejodami sekite mus Twitter ir nepamirškite prisijungti prie mūsų 100 000+ ML SubReddit ir Prenumeruoti mūsų naujienlaiškis. Palauk! ar tu telegramoje? dabar galite prisijungti prie mūsų ir per telegramą.
Asif Razzaq yra „Marktechpost Media Inc.“ generalinis direktorius. Kaip verslininkas ir inžinierius, Asif yra įsipareigojęs panaudoti dirbtinio intelekto potencialą socialinei gerovei. Naujausias jo siekis yra dirbtinio intelekto medijos platformos „Marktechpost“ paleidimas, kuri išsiskiria išsamia mašininio mokymosi ir gilaus mokymosi naujienomis, kurios yra techniškai pagrįstos ir lengvai suprantamos plačiajai auditorijai. Platforma gali pasigirti daugiau nei 2 milijonais peržiūrų per mėnesį, o tai rodo jos populiarumą tarp auditorijos.
🙌 Sekite MARKTECHPOST: pridėkite mus kaip pageidaujamą „Google“ šaltinį.


