Source code for agentscope_runtime.engine.schemas.context

# -*- coding: utf-8 -*-
from typing import Optional, List, Dict

from pydantic import BaseModel, ConfigDict

from .agent_schemas import AgentRequest
from .agent_schemas import Message
from ..agents.base_agent import Agent
from ..services.context_manager import ContextManager

from ..services.session_history_service import (
    Session,
)
from ..services.environment_manager import EnvironmentManager


[docs] class Context(BaseModel): """ Holds all contextual information for a single agent invocation. This object is created by the Runner and passed through the agent execution flow, providing access to necessary services and data, including a live request queue for real-time interaction. """ model_config = ConfigDict( arbitrary_types_allowed=True, extra="forbid", ) # Core context user_id: str session: Session = Session(id="", user_id="") activate_tools: list = [] new_message: Optional[Message] = None current_messages: List[Message] = [] request: AgentRequest new_message_dict: Optional[Dict] = None messages_list: List[Dict] = [] # Services available to the agent environment_manager: Optional[EnvironmentManager] = None context_manager: Optional[ContextManager] = None # Agent specific config agent: Agent agent_config: Optional[dict] = None @property def messages(self): if self.new_message_dict: return self.messages_list + [self.new_message_dict] else: return self.messages_list