Spaces:
Sleeping
Sleeping
File size: 2,037 Bytes
dc80564 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import re
from memory import MemoryManager
from context_graph import ContextGraph
from telemetry import Telemetry
from identity_core import create_agent_identity
class AgentCore:
def __init__(self, model="gpt-4o-mini"):
self.agent_id = create_agent_identity()
self.telemetry = Telemetry(self.agent_id)
self.memory = MemoryManager(self.agent_id)
self.context = ContextGraph()
self.model = model
print(f"[INIT] Agent {self.agent_id} initialized with model {self.model}")
def categorize(self, prompt):
prompt_l = prompt.lower()
if "goal" in prompt_l or "want" in prompt_l or "plan" in prompt_l:
return "goals"
elif "friend" in prompt_l or "person" in prompt_l or "met" in prompt_l:
return "people"
elif "favorite" in prompt_l or "like" in prompt_l:
return "preferences"
elif "city" in prompt_l or "food" in prompt_l or "color" in prompt_l:
return "personal"
return "general"
def run(self, prompt):
self.telemetry.log("run_start", "in_progress", {"prompt": prompt})
try:
category = self.categorize(prompt)
# Store new fact
if re.match(r"my |i |i'm |i am |i like", prompt.lower()):
response = f"Got it — I'll remember that about your {category}."
self.context.link_context(self.agent_id, category, prompt, response)
self.memory.save({"prompt": prompt, "response": response})
else:
recall = self.context.query_context(self.agent_id, category)
recall_text = "; ".join(recall)
response = f"Here’s what I know from your {category}: {recall_text}"
self.telemetry.log("run_complete", "success", {"response": response})
print(f"[RUN] {response}")
return response
except Exception as e:
self.telemetry.log("run_failed", "error", {"error": str(e)})
raise e |