Ver código fonte

Merge pull request #161 from moyu026/main

fix issue #156 and update chapeter7.4.2
jjyaoao 7 meses atrás
pai
commit
54f9223972

+ 6 - 4
code/chapter7/my_react_agent.py

@@ -6,8 +6,8 @@ MY_REACT_PROMPT = """你是一个具备推理和行动能力的AI助手。你可
 ## 工作流程
 请严格按照以下格式进行回应,每次只能执行一个步骤:
 
-**Thought:** 分析当前问题,思考需要什么信息或采取什么行动。
-**Action:** 选择一个行动,格式必须是以下之一:
+Thought: 你的思考过程,用于分析问题、拆解任务和规划下一步行动。
+Action: 你决定采取的行动,必须是以下格式之一:
 - `{{tool_name}}[{{tool_input}}]` - 调用指定工具
 - `Finish[最终答案]` - 当你有足够信息给出最终答案时
 
@@ -82,7 +82,8 @@ class MyReActAgent(ReActAgent):
             # 4. 检查完成条件
             if action and action.startswith("Finish"):
                 final_answer = self._parse_action_input(action)
-                self._save_to_history(input_text, final_answer)
+                self.add_message(Message(input_text, "user"))
+                self.add_message(Message(final_answer, "assistant"))
                 return final_answer
 
             # 5. 执行工具调用
@@ -94,5 +95,6 @@ class MyReActAgent(ReActAgent):
 
         # 达到最大步数
         final_answer = "抱歉,我无法在限定步数内完成这个任务。"
-        self._save_to_history(input_text, final_answer)
+        self.add_message(Message(input_text, "user"))
+        self.add_message(Message(final_answer, "assistant"))
         return final_answer

+ 4 - 4
code/chapter7/test_react_agent.py

@@ -48,7 +48,7 @@ def test_react_agent():
     
     # 测试1:数学计算问题
     print("\n📊 测试1:数学计算问题")
-    math_question = "请帮我计算:(25 + 15) × 3 - 8 的结果是多少?"
+    math_question = "请帮我计算:(25 + 15) * 3 - 8 的结果是多少?"
     
     try:
         result1 = agent.run(math_question)
@@ -80,9 +80,9 @@ def test_react_agent():
     print(f"\n📝 对话历史记录: {len(agent.get_history())} 条消息")
     
     # 显示工具使用统计
-    print(f"\n🛠️ 可用工具数量: {len(tool_registry.tools)}")
+    print(f"\n🛠️ 可用工具数量: {len(tool_registry._tools)}")
     print("已注册的工具:")
-    for tool_name in tool_registry.tools.keys():
+    for tool_name in tool_registry._tools.keys():
         print(f"  - {tool_name}")
     
     print("\n🎉 测试完成!")
@@ -101,7 +101,7 @@ def test_custom_prompt():
     # 注册计算器工具
     try:
         from hello_agents import calculate
-        tool_registry.register_tool("calculate", calculate, "数学计算工具")
+        tool_registry.register_function("calculate", calculate, "数学计算工具")
     except ImportError:
         pass
     

+ 4 - 2
docs/chapter7/Chapter7-Building-Your-Agent-Framework.md

@@ -1068,7 +1068,8 @@ def run(self, input_text: str, **kwargs) -> str:
         # 4. Check completion condition
         if action and action.startswith("Finish"):
             final_answer = self._parse_action_input(action)
-            self._save_to_history(input_text, final_answer)
+            self.add_message(Message(input_text, "user"))
+            self.add_message(Message(final_answer, "assistant"))
             return final_answer
 
         # 5. Execute tool call
@@ -1080,7 +1081,8 @@ def run(self, input_text: str, **kwargs) -> str:
 
     # Reached maximum steps
     final_answer = "Sorry, I cannot complete this task within the limited number of steps."
-    self._save_to_history(input_text, final_answer)
+    self.add_message(Message(input_text, "user"))
+    self.add_message(Message(final_answer, "assistant"))
     return final_answer
 ```
 

+ 4 - 2
docs/chapter7/第七章 构建你的Agent框架.md

@@ -1068,7 +1068,8 @@ def run(self, input_text: str, **kwargs) -> str:
         # 4. 检查完成条件
         if action and action.startswith("Finish"):
             final_answer = self._parse_action_input(action)
-            self._save_to_history(input_text, final_answer)
+            self.add_message(Message(input_text, "user"))
+            self.add_message(Message(final_answer, "assistant"))
             return final_answer
 
         # 5. 执行工具调用
@@ -1080,7 +1081,8 @@ def run(self, input_text: str, **kwargs) -> str:
 
     # 达到最大步数
     final_answer = "抱歉,我无法在限定步数内完成这个任务。"
-    self._save_to_history(input_text, final_answer)
+    self.add_message(Message(input_text, "user"))
+    self.add_message(Message(final_answer, "assistant"))
     return final_answer
 ```