agent.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """Agent基类"""
  2. from abc import ABC, abstractmethod
  3. from typing import Optional
  4. from .message import Message
  5. from .llm import HelloAgentsLLM
  6. from .config import Config
  7. class Agent(ABC):
  8. """Agent基类"""
  9. def __init__(
  10. self,
  11. name: str,
  12. llm: HelloAgentsLLM,
  13. system_prompt: Optional[str] = None,
  14. config: Optional[Config] = None
  15. ):
  16. self.name = name
  17. self.llm = llm
  18. self.system_prompt = system_prompt
  19. self.config = config or Config()
  20. self._history: list[Message] = []
  21. @abstractmethod
  22. def run(self, input_text: str, **kwargs) -> str:
  23. """运行Agent"""
  24. pass
  25. def add_message(self, message: Message):
  26. """添加消息到历史记录"""
  27. self._history.append(message)
  28. def clear_history(self):
  29. """清空历史记录"""
  30. self._history.clear()
  31. def get_history(self) -> list[Message]:
  32. """获取历史记录"""
  33. return self._history.copy()
  34. def __str__(self) -> str:
  35. return f"Agent(name={self.name}, provider={self.llm.provider})"
  36. def __repr__(self) -> str:
  37. return self.__str__()