Spaces:
Sleeping
Sleeping
# Add the project root to Python path | |
from pathlib import Path | |
import sys | |
project_root = Path(__file__).parent.parent | |
sys.path.insert(0, str(project_root)) | |
from aworld.core.task import Task | |
from aworld.core.agent.base import AgentFactory | |
from aworld.core.agent.swarm import Swarm | |
from aworld.runner import Runners | |
from aworld.agents.llm_agent import Agent | |
from aworld.config.conf import AgentConfig, ContextRuleConfig, ModelConfig, OptimizationConfig, LlmCompressionConfig | |
from aworld.core.context.base import Context | |
from aworld.core.event.base import Message | |
from aworld.runners.hook.hooks import PreLLMCallHook, PostLLMCallHook | |
from aworld.runners.hook.hook_factory import HookFactory | |
from aworld.utils.common import convert_to_snake | |
from tests.base_test import BaseTest | |
class TestPreLLMHook(PreLLMCallHook): | |
def name(self): | |
return convert_to_snake("TestPreLLMHook") | |
async def exec(self, message: Message, context: Context = None) -> Message: | |
agent = AgentFactory.agent_instance(message.sender) | |
agent_context = agent.agent_context | |
if agent_context is not None: | |
agent_context.step = 1 | |
assert agent_context.step == 1 or agent_context.step == 2 | |
return message | |
class TestPostLLMHook(PostLLMCallHook): | |
def name(self): | |
return convert_to_snake("TestPostLLMHook") | |
async def exec(self, message: Message, context: Context = None) -> Message: | |
agent = AgentFactory.agent_instance(message.sender) | |
agent_context = agent.agent_context | |
if agent_context is not None and agent_context.llm_output is not None: | |
# Test dynamic prompt adjustment based on LLM output | |
if hasattr(agent_context.llm_output, 'content'): | |
content = agent_context.llm_output.content.lower() | |
if content is not None: | |
agent_context.agent_prompt = "Success mode activated" | |
assert agent_context.agent_prompt == "Success mode activated" | |
return message | |