| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- # test_react_agent.py
- from dotenv import load_dotenv
- from hello_agents import HelloAgentsLLM, ToolRegistry
- from my_react_agent import MyReActAgent
- # 加载环境变量
- load_dotenv()
- def test_react_agent():
- """测试MyReActAgent的功能"""
-
- # 创建LLM实例
- llm = HelloAgentsLLM()
-
- # 创建工具注册表
- tool_registry = ToolRegistry()
-
- # 注册一些基础工具用于测试
- print("🔧 注册测试工具...")
-
- # 注册计算器工具
- try:
- from hello_agents import calculate
- tool_registry.register_tool("calculate", calculate, "执行数学计算,支持基本的四则运算")
- print("✅ 计算器工具注册成功")
- except ImportError:
- print("⚠️ 计算器工具未找到,跳过注册")
-
- # 注册搜索工具(如果可用)
- try:
- from hello_agents import search
- tool_registry.register_tool("search", search, "搜索互联网信息")
- print("✅ 搜索工具注册成功")
- except ImportError:
- print("⚠️ 搜索工具未找到,跳过注册")
-
- # 创建自定义ReActAgent
- agent = MyReActAgent(
- name="我的推理行动助手",
- llm=llm,
- tool_registry=tool_registry,
- max_steps=5
- )
-
- print("\n" + "="*60)
- print("开始测试 MyReActAgent")
- print("="*60)
-
- # 测试1:数学计算问题
- print("\n📊 测试1:数学计算问题")
- math_question = "请帮我计算:(25 + 15) × 3 - 8 的结果是多少?"
-
- try:
- result1 = agent.run(math_question)
- print(f"\n🎯 测试1结果: {result1}")
- except Exception as e:
- print(f"❌ 测试1失败: {e}")
-
- # 测试2:需要搜索的问题
- print("\n🔍 测试2:信息搜索问题")
- search_question = "Python编程语言是什么时候发布的?请告诉我具体的年份。"
-
- try:
- result2 = agent.run(search_question)
- print(f"\n🎯 测试2结果: {result2}")
- except Exception as e:
- print(f"❌ 测试2失败: {e}")
-
- # 测试3:复合问题(需要多步推理)
- print("\n🧠 测试3:复合推理问题")
- complex_question = "如果一个班级有30个学生,其中60%是女生,那么男生有多少人?请先计算女生人数,再计算男生人数。"
-
- try:
- result3 = agent.run(complex_question)
- print(f"\n🎯 测试3结果: {result3}")
- except Exception as e:
- print(f"❌ 测试3失败: {e}")
-
- # 查看对话历史
- print(f"\n📝 对话历史记录: {len(agent.get_history())} 条消息")
-
- # 显示工具使用统计
- print(f"\n🛠️ 可用工具数量: {len(tool_registry.tools)}")
- print("已注册的工具:")
- for tool_name in tool_registry.tools.keys():
- print(f" - {tool_name}")
-
- print("\n🎉 测试完成!")
- def test_custom_prompt():
- """测试自定义提示词的ReActAgent"""
-
- print("\n" + "="*60)
- print("测试自定义提示词的 MyReActAgent")
- print("="*60)
-
- # 创建LLM和工具注册表
- llm = HelloAgentsLLM()
- tool_registry = ToolRegistry()
-
- # 注册计算器工具
- try:
- from hello_agents import calculate
- tool_registry.register_tool("calculate", calculate, "数学计算工具")
- except ImportError:
- pass
-
- # 自定义提示词(更简洁的版本)
- custom_prompt = """你是一个数学专家AI助手。
- 可用工具:{tools}
- 请按以下格式回应:
- Thought: [你的思考]
- Action: [tool_name[input] 或 Finish[答案]]
- 问题:{question}
- 历史:{history}
- 开始:"""
-
- # 创建使用自定义提示词的Agent
- custom_agent = MyReActAgent(
- name="数学专家助手",
- llm=llm,
- tool_registry=tool_registry,
- max_steps=3,
- custom_prompt=custom_prompt
- )
-
- # 测试数学问题
- math_question = "计算 15 × 8 + 32 ÷ 4 的结果"
-
- try:
- result = custom_agent.run(math_question)
- print(f"\n🎯 自定义提示词测试结果: {result}")
- except Exception as e:
- print(f"❌ 自定义提示词测试失败: {e}")
- if __name__ == "__main__":
- # 运行基础测试
- test_react_agent()
-
- # 运行自定义提示词测试
- test_custom_prompt()
-
- print("\n✨ 所有测试完成!")
|