diff --git a/src/heart_flow/sub_mind.py b/src/heart_flow/sub_mind.py
index 56086233..f5e99460 100644
--- a/src/heart_flow/sub_mind.py
+++ b/src/heart_flow/sub_mind.py
@@ -63,7 +63,7 @@ def init_prompt():
5. 如果你刚发言,并且没有人回复你,请谨慎考虑要不要继续发消息
6. 不要把注意力放在别人发的表情包上,它们只是一种辅助表达方式
7. 注意分辨群里谁在跟谁说话,你不一定是当前聊天的主角,消息中的“你”不一定指的是你({bot_name}),也可能是别人
-8. 思考要不要回复或发言,如果要,必须思考一下具体说什么,怎么说
+8. 思考要不要回复或发言,如果要,必须思考一下**具体说什么**,怎么说
9. 默认使用中文
@@ -476,13 +476,11 @@ class SubMind:
# 思考指导选项和权重
hf_options = [
- (
- "可以参考之前的想法,在原来想法的基础上继续思考,但是也要注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要",
- 0.3,
- ),
- ("可以参考之前的想法,在原来的想法上尝试新的话题", 0.3),
- ("不要太深入,注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要", 0.2),
- ("进行深入思考,但是注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要", 0.2),
+ ("可以参考之前的想法,在原来想法的基础上继续思考,但是也要注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**",0.3,),
+ ("可以参考之前的想法,在原来的想法上**尝试新的话题**", 0.3),
+ ("不要太深入,注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**", 0.2),
+ ("进行深入思考,但是注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**", 0.2),
+ ("可以参考之前的想法继续思考,并结合你自身的人设,知识,信息,回忆等等", 0.08),
]
last_cycle = history_cycle[-1] if history_cycle else None
diff --git a/src/plugins/heartFC_chat/heartflow_prompt_builder.py b/src/plugins/heartFC_chat/heartflow_prompt_builder.py
index f6391386..e4d8037c 100644
--- a/src/plugins/heartFC_chat/heartflow_prompt_builder.py
+++ b/src/plugins/heartFC_chat/heartflow_prompt_builder.py
@@ -35,7 +35,7 @@ def init_prompt():
{current_mind_info}
因为上述想法,你决定发言。
-现在请你读读之前的聊天记录,把你的想法组织成合适语言,然后发一条消息,可以自然随意一些,简短一些,就像群聊里的真人一样,注意把握聊天内容,整体风格可以平和、简短,范围避免超出你的内心想法
+现在请你读读之前的聊天记录,把你的想法组织成合适的语言,然后发一条消息,可以自然随意一些,简短一些,就像群聊里的真人一样,注意把握聊天内容,整体风格可以平和、简短,避免超出你内心想法的范围
这条消息可以尽量简短一些。{reply_style2}。请一次只回复一个话题,不要同时回复多个人。{prompt_ger}
{reply_style1},说中文,不要刻意突出自身学科背景,注意只输出消息内容,不要去主动讨论或评价别人发的表情包,它们只是一种辅助表达方式。
{moderation_prompt}。注意:回复不要输出多余内容(包括前后缀,冒号和引号,括号,表情包,at或 @等 )。""",
@@ -46,60 +46,97 @@ def init_prompt():
"""
你有以下信息可供参考:
{structured_info}
-以上的消息是你获取到的消息,或许可以帮助你更好地回复。
+以上的信息是你获取到的消息,或许可以帮助你更好地回复。
""",
"info_from_tools",
)
# Planner提示词 - 修改为要求 JSON 输出
Prompt(
- """现在{bot_name}开始在一个qq群聊中专注聊天。你需要操控{bot_name},并且根据以下消息决定是否,如何参与对话:
-{nickname_info}
-{chat_content_block}
-{current_mind_block}
-{cycle_info_block}
+ """
+
+现在{bot_name}开始在一个qq群聊中专注聊天。你需要操控{bot_name},并且根据以下信息决定是否,如何参与对话。
+
-请综合分析聊天内容和你看到的新消息,参考{bot_name}的内心想法,并根据以下原则和可用动作灵活谨慎的做出决策,需要符合正常的群聊社交节奏。
+
+
+ {bot_name}
+ {nickname_info}
+
+
+ {chat_content_block}
+
+
+ {current_mind_block}
+ {cycle_info_block}
+
+
-【决策指导】
-1. 以下情况可以不发送新消息(no_reply):
-- {bot_name}的内心想法表达不想发言
-- 话题似乎对{bot_name}来说无关/无聊/不感兴趣
-- 现在说话不太合适了
-- 最后一条消息是{bot_name}自己发的且无人回应{bot_name}
-- 讨论不了解的专业话题,或你不知道的梗,且对{bot_name}来说似乎没那么重要。
-- {bot_name}发送了太多消息,且无人回复
+
+
+ 请综合分析聊天内容和你看到的新消息,参考{bot_name}的内心想法,并根据以下原则和可用动作灵活谨慎的做出决策,需要符合正常的群聊社交节奏。
+
-2. 以下情况可以发送文字消息(text_reply):
-- 确认内心想法显示{bot_name}想要发言,且有实质内容想表达
-- 同时确认现在适合发言
-- 可以追加emoji_query表达情绪(emoji_query填写表情包的适用场合,也就是当前场合)
-- 不要追加太多表情
+
+
+ 1. 以下情况可以不发送新消息(no_reply):
+ - {bot_name}的内心想法表达不想发言
+ - 话题似乎对{bot_name}来说无关/无聊/不感兴趣
+ - 现在说话不太合适了
+ - 最后一条消息是{bot_name}自己发的且无人回应{bot_name}
+ - 讨论不了解的专业话题,或你不知道的梗,且对{bot_name}来说似乎没那么重要
+ - {bot_name}发送了太多消息,且无人回复
+ - (特殊情况){bot_name}的内心想法返回错误/无返回
+
-3. 发送纯表情(emoji_reply)适用:
-- {bot_name}似乎想加入话题或继续讨论,但是似乎又没什么实质表达内容
-- 适合用表情回应的场景
-- 需提供明确的emoji_query
-- 群聊里的大家都在发表情包
+
+ 2. 以下情况可以发送文字消息(text_reply):
+ - 确认内心想法显示{bot_name}想要发言,且有实质内容想表达
+ - 同时确认现在适合发言
+ - 可以追加emoji_query表达情绪(emoji_query填写表情包的适用场合,也就是当前场合)
+ - 不要追加太多表情
+
-4. 对话处理:
-- 如果最后一条消息是{bot_name}发的,而你还想操控{bot_name}继续发消息,请确保这是合适的
-- 注意话题的推进,如果没有必要,不要揪着一个话题不放。
-- 不要让{bot_name}自己和自己聊天
+
+ 3. 发送纯表情(emoji_reply)适用:
+ - {bot_name}似乎想加入话题或继续讨论,但是似乎又没什么实质表达内容
+ - 适合用表情回应的场景
+ - 需提供明确的emoji_query
+ - 群聊里除了{bot_name}以外的大家都在发表情包
+
-决策任务
-{action_options_text}
+
+ 4. 对话处理:
+ - 如果最后一条消息是{bot_name}发的,而你还想操控{bot_name}继续发消息,请确保这是合适的
+ - 注意话题的推进,如果没有必要,不要揪着一个话题不放。
+ - 不要让{bot_name}自己和自己聊天
+
+
-你必须从上面列出的可用行动中选择一个,并说明原因。
-你的决策必须以严格的 JSON 格式输出,且仅包含 JSON 内容,不要有任何其他文字或解释。
-JSON 结构如下,包含三个字段 "action", "reasoning", "emoji_query":
-{{
- "action": "string", // 必须是上面提供的可用行动之一 (例如: '{example_action}')
- "reasoning": "string", // 做出此决定的详细理由和思考过程,说明你如何应用了回复原则
- "emoji_query": "string" // 可选。如果行动是 'emoji_reply',必须提供表情主题(填写表情包的适用场合);如果行动是 'text_reply' 且你想附带表情,也在此提供表情主题,否则留空字符串 ""。遵循回复原则,不要滥用。
-}}
-请输出你的决策 JSON:
+
+ 决策任务
+ {action_options_text}
+
+
+
+
+
+ 你必须从available_actions列出的可用行动中选择一个,并说明原因。
+ 你的决策必须以严格的 JSON 格式输出,且仅包含 JSON 内容,不要有任何其他文字或解释。
+ JSON 结构如下,包含三个字段 "action", "reasoning", "emoji_query":
+
+
+ {{
+ "action": "string", // 必须是上面提供的可用行动之一 (例如: '{example_action}')
+ "reasoning": "string", // 做出此决定的详细理由和思考过程,说明你如何应用了decision_principles。
+ "emoji_query": "string" // 可选。如果行动是 'emoji_reply',必须提供表情主题(填写表情包的适用场合);如果行动是 'text_reply' 且你想附带表情,也在此提供表情主题,否则留空字符串 ""。遵循回复原则,不要滥用。
+ }}
+
+
+ 请输出你的决策 JSON:
+
+
""",
"planner_prompt",
)