diff --git a/src/chat/heart_flow/observation/hfcloop_observation.py b/src/chat/heart_flow/observation/hfcloop_observation.py index f12ec989c..48bf33ede 100644 --- a/src/chat/heart_flow/observation/hfcloop_observation.py +++ b/src/chat/heart_flow/observation/hfcloop_observation.py @@ -38,6 +38,8 @@ class HFCloopObservation: consecutive_text_replies = 0 responses_for_prompt = [] + cycle_last_reason = "" + # 检查这最近的活动循环中有多少是连续的文本回复 (从最近的开始看) for cycle in recent_active_cycles: action_type = cycle.loop_plan_info["action_result"]["action_type"] @@ -50,22 +52,28 @@ class HFCloopObservation: # print(is_taken) # print(action_taken_time_str) # print("--------------------------------") + if action_reasoning != cycle_last_reason: + cycle_last_reason = action_reasoning + action_reasoning_str = f"你选择这个action的原因是:{action_reasoning}" + else: + action_reasoning_str = "" + if action_type == "reply": consecutive_text_replies += 1 response_text = cycle.loop_plan_info["action_result"]["action_data"].get("text", "[空回复]") responses_for_prompt.append(response_text) if is_taken: - action_detailed_str += f"{action_taken_time_str}时,你选择回复(action:{action_type},内容是:'{response_text}')。你选择这个action的原因是:{action_reasoning}\n" + action_detailed_str += f"{action_taken_time_str}时,你选择回复(action:{action_type},内容是:'{response_text}')。{action_reasoning_str}\n" else: - action_detailed_str += f"{action_taken_time_str}时,你选择回复(action:{action_type},内容是:'{response_text}'),但是动作失败了。你选择这个action的原因是:{action_reasoning}\n" + action_detailed_str += f"{action_taken_time_str}时,你选择回复(action:{action_type},内容是:'{response_text}'),但是动作失败了。{action_reasoning_str}\n" elif action_type == "no_reply": - action_detailed_str += f"{action_taken_time_str}时,你选择不回复(action:{action_type}),你选择了沉默,原因是:{action_reasoning}\n" + action_detailed_str += f"{action_taken_time_str}时,你选择不回复(action:{action_type}),{action_reasoning_str}\n" else: if is_taken: - action_detailed_str += f"{action_taken_time_str}时,你选择执行了(action:{action_type}),你选择这个action的原因是:{action_reasoning}\n" + action_detailed_str += f"{action_taken_time_str}时,你选择执行了(action:{action_type}),{action_reasoning_str}\n" else: - action_detailed_str += f"{action_taken_time_str}时,你选择执行了(action:{action_type}),但是动作失败了。你选择这个action的原因是:{action_reasoning}\n" + action_detailed_str += f"{action_taken_time_str}时,你选择执行了(action:{action_type}),但是动作失败了。{action_reasoning_str}\n" if action_detailed_str: cycle_info_block = f"\n你最近做的事:\n{action_detailed_str}\n"