# my_simple_agent.py from typing import Optional from hello_agents import SimpleAgent, HelloAgentsLLM, Config, Message class MySimpleAgent(SimpleAgent): """ 重写的简单对话Agent 展示如何基于框架基类构建自定义Agent """ def __init__( self, name: str, llm: HelloAgentsLLM, system_prompt: Optional[str] = None, config: Optional[Config] = None ): super().__init__(name, llm, system_prompt, config) print(f"✅ {name} 初始化完成,基于框架基类构建") def run(self, input_text: str, **kwargs) -> str: """ 重写的运行方法 - 实现简单对话逻辑 """ print(f"🤖 {self.name} 正在处理: {input_text}") # 构建消息列表 messages = [] # 添加系统消息 if self.system_prompt: messages.append({"role": "system", "content": self.system_prompt}) # 添加历史消息 for msg in self._history: messages.append({"role": msg.role, "content": msg.content}) # 添加当前用户消息 messages.append({"role": "user", "content": input_text}) # 调用LLM response = self.llm.invoke(messages, **kwargs) # 保存到历史记录 self.add_message(Message(input_text, "user")) self.add_message(Message(response, "assistant")) print(f"✅ {self.name} 响应完成") return response def stream_run(self, input_text: str, **kwargs): """ 自定义的流式运行方法 """ print(f"🌊 {self.name} 开始流式处理: {input_text}") messages = [] if self.system_prompt: messages.append({"role": "system", "content": self.system_prompt}) for msg in self._history: messages.append({"role": msg.role, "content": msg.content}) messages.append({"role": "user", "content": input_text}) # 流式调用LLM full_response = "" print("📝 实时响应: ", end="") for chunk in self.llm.stream_invoke(messages, **kwargs): full_response += chunk print(chunk, end="", flush=True) yield chunk print() # 换行 # 保存完整对话到历史记录 self.add_message(Message(input_text, "user")) self.add_message(Message(full_response, "assistant")) print(f"✅ {self.name} 流式响应完成")