too much
This commit is contained in:
@@ -71,6 +71,33 @@ class CharacterAgent:
|
||||
|
||||
return response
|
||||
|
||||
async def chat_with(self, messages: List[LLMMessage]) -> LLMMessage:
|
||||
"""Generate reaction based on memory and character"""
|
||||
# Retrieve relevant memories
|
||||
relevant_memories = await self.memory_stream.retrieve_related_memories(situation, k=8)
|
||||
memory_context = "\n".join([f"- {m.description}" for m in relevant_memories])
|
||||
|
||||
context = {
|
||||
'character': self._get_character_prompt(),
|
||||
'character_name': self.character.name,
|
||||
'memory_context': memory_context,
|
||||
'situation': situation}
|
||||
prompt = PromptManager.get_prompt('react_to_situation', context)
|
||||
|
||||
response = await self.llm.chat([{"role": "user", "content": prompt}])
|
||||
|
||||
# create new memories from interaction
|
||||
interaction_context = {
|
||||
'situation': f'I reacted to: \n{situation}',
|
||||
'response': f'My response was: \n{response}',
|
||||
}
|
||||
prompt, schema = PromptManager.get_prompt_with_schema('extract_interaction_memories', interaction_context)
|
||||
memories_response = await self.llm.client.get_structured_response([{"role": "user", "content": prompt}], schema)
|
||||
for new_memory in memories_response['memories']:
|
||||
await self.perceive(new_memory)
|
||||
|
||||
return response
|
||||
|
||||
async def plan_day(self) -> List[str]:
|
||||
"""Generate high-level daily plan"""
|
||||
# Retrieve relevant memories about goals, habits, schedule
|
||||
@@ -255,5 +282,7 @@ Summary:"""
|
||||
memory.importance_score = await instance._score_memory_importance(memory)
|
||||
await instance._analyze_trait_impact(memory)
|
||||
|
||||
instance.character.template_file = template['yaml_file']
|
||||
|
||||
logger.info(f"Character {instance.character.name} created successfully")
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user