32 lines
893 B
Python
32 lines
893 B
Python
# -*- coding: utf-8 -*-
|
|
"""User Proxy Agent class for distributed usage"""
|
|
from typing import Sequence, Union
|
|
from typing import Optional
|
|
|
|
from agentscope.agents import UserAgent
|
|
from agentscope.message import Msg
|
|
|
|
|
|
class UserProxyAgent(UserAgent):
|
|
"""User proxy agent class"""
|
|
|
|
def reply( # type: ignore[override]
|
|
self,
|
|
x: Optional[Union[Msg, Sequence[Msg]]] = None,
|
|
required_keys: Optional[Union[list[str], str]] = None,
|
|
) -> Msg:
|
|
"""
|
|
Reply with `self.speak(x)`
|
|
"""
|
|
if x is not None:
|
|
self.speak(x)
|
|
return super().reply(x, required_keys)
|
|
|
|
def observe(self, x: Union[dict, Sequence[dict]]) -> None:
|
|
"""
|
|
Observe with `self.speak(x)`
|
|
"""
|
|
if x is not None:
|
|
self.speak(x) # type: ignore[arg-type]
|
|
self.memory.add(x)
|