| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # 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} 流式响应完成")
|