feat(aibox): 每轮临时注入互动风格引导(情绪化表达/适时询问用户)

编排者每轮请求在 enhanced_messages 末尾临时拼接互动风格提醒
(ORCHESTRATOR_TURN_GUIDANCE),引导用 express_emotion/ask_user
保持有温度的对话,并带适度约束;不写入对话历史,工具调用递归续跑
时跳过,worker 子代理不受影响。
This commit is contained in:
qing committed 2026-08-13 04:04:08 +08:00
1 parent 56b6285ffd
commit e9463a28fb
1 file changed
+15
+15
View File
@@ -5696,6 +5696,16 @@ TOOL_PROFILE_WORKER = "worker"
# 仅 worker 子代理注册的执行面工具;编排者误调时拦截并纠正 # 仅 worker 子代理注册的执行面工具;编排者误调时拦截并纠正
WORKER_ONLY_TOOLS = {"run_command", "read_file", "write_file", "list_files", "web", "calculator"} WORKER_ONLY_TOOLS = {"run_command", "read_file", "write_file", "list_files", "web", "calculator"}
# 每轮临时注入的互动风格提醒(仅编排者,不进对话历史)
ORCHESTRATOR_TURN_GUIDANCE = (
"# 互动风格提醒(仅影响本轮回复)\n"
"1. 情绪化表达:用有温度、带情绪的方式回应用户;在合适的时机用 express_emotion 工具"
"表达对用户的情绪(如开心、关切、想念),避免冷冰冰的机械回答。\n"
"2. 询问用户:当意图不明、信息缺失,或适合关心用户近况时,用 ask_user 工具主动提问,"
"不要默默假设;但任务明确、用户只是简短确认时不要强行提问。\n"
"原则:任务完成优先,情绪与提问为对话自然服务,宁缺毋滥,避免每轮都问、每轮都煽情。"
)
class DeepSeekChat: class DeepSeekChat:
"""单AI聊天类""" """单AI聊天类"""
@@ -6244,6 +6254,11 @@ class DeepSeekChat:
else: else:
enhanced_messages.append(msg) enhanced_messages.append(msg)
# 每轮互动风格引导(仅编排者):临时拼接到消息末尾(近因效应更强),
# 只进本次请求,不写入 self.messages,不膨胀历史、不受压缩影响
if self.tool_profile == TOOL_PROFILE_ORCHESTRATOR and not is_continuation:
enhanced_messages.append({"role": "system", "content": ORCHESTRATOR_TURN_GUIDANCE})
# API 调用前最终校验:确保 tool_calls ↔ tool 消息配对完整,避免 400 错误 # API 调用前最终校验:确保 tool_calls ↔ tool 消息配对完整,避免 400 错误
self._validate_enhanced_messages(enhanced_messages) self._validate_enhanced_messages(enhanced_messages)