summaryrefslogtreecommitdiff
path: root/personal_agent/context.py
diff options
context:
space:
mode:
authorbatsumaru <>2026-09-16 17:33:42 +0900
committerbatsumaru <>2026-09-16 17:33:42 +0900
commit71879695b951dd30bbd6cbd25261e22ac7f8e5d1 (patch)
tree62f30ca6d9be8ed89a796bd0ab91826cd32d9cce /personal_agent/context.py
parentd164005eb54dfc97a5827524948e804a37779f7c (diff)
Added more memory management and fixed system prompt bug
Diffstat (limited to 'personal_agent/context.py')
-rw-r--r--personal_agent/context.py28
1 files changed, 26 insertions, 2 deletions
diff --git a/personal_agent/context.py b/personal_agent/context.py
index 74cc254..defc835 100644
--- a/personal_agent/context.py
+++ b/personal_agent/context.py
@@ -1,6 +1,10 @@
+import logging
+
from personal_agent.identity import AgentIdentity, UserProfile
from personal_agent.memory.models import WorkingMemory
+logger = logging.getLogger(__name__)
+
class ContextBuilder:
def __init__(
@@ -18,21 +22,41 @@ class ContextBuilder:
agent = self.agent_identity
user = self.user_profile
- return (
+ prompt = (
f"You are {agent.name}, a personal AI assistant.\n"
f"Personality: {agent.personality['style']}.\n"
f"Honesty: {agent.values['honesty']}.\n"
f"Directness: {agent.values['directness']}.\n"
f"Favorite color: {agent.quirks['favorite_color']}.\n"
f"\n"
+ f"===BEHAVIOR==="
f"Task management:\n"
- f"{agent.behavior['task_management']}"
+ f"{agent.behavior['task_management']}\n"
+ f"\n"
+ f"Working memory:\n"
+ f"{agent.behavior['working_memory']}"
+ f"\n"
+ f"Long term memory:\n"
+ f"{agent.behavior['long_term_memory']}"
+ f"===BEHAVIOR===\n"
f"\n"
f"The user's name is {user.name}"
f"\n"
f"{self.build_working_memory(memory)}"
)
+ logger.debug("Built system prompt: %d characters", len(prompt))
+
+ logger.debug(
+ "Behavior section present: task_management=%s, working working_memory=%s, "
+ "long_term_memory=%s",
+ bool(agent.behavior.get("task_management")),
+ bool(agent.behavior.get("working_memory")),
+ bool(agent.behavior.get("long_term_memory")),
+ )
+
+ return prompt
+
def build_working_memory(self, memory: WorkingMemory) -> str:
lines = ["Current working memory:"]