diff options
| author | batsumaru <> | 2026-09-16 17:33:42 +0900 |
|---|---|---|
| committer | batsumaru <> | 2026-09-16 17:33:42 +0900 |
| commit | 71879695b951dd30bbd6cbd25261e22ac7f8e5d1 (patch) | |
| tree | 62f30ca6d9be8ed89a796bd0ab91826cd32d9cce /personal_agent/context.py | |
| parent | d164005eb54dfc97a5827524948e804a37779f7c (diff) | |
Added more memory management and fixed system prompt bug
Diffstat (limited to 'personal_agent/context.py')
| -rw-r--r-- | personal_agent/context.py | 28 |
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:"] |
