From e9463a28fbcfa96db67f4d885c6ec1ade9938a1d Mon Sep 17 00:00:00 2001 From: qing <1776177662@qq.com> Date: Thu, 13 Aug 2026 04:04:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(aibox):=20=E6=AF=8F=E8=BD=AE=E4=B8=B4?= =?UTF-8?q?=E6=97=B6=E6=B3=A8=E5=85=A5=E4=BA=92=E5=8A=A8=E9=A3=8E=E6=A0=BC?= =?UTF-8?q?=E5=BC=95=E5=AF=BC=EF=BC=88=E6=83=85=E7=BB=AA=E5=8C=96=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE/=E9=80=82=E6=97=B6=E8=AF=A2=E9=97=AE=E7=94=A8?= =?UTF-8?q?=E6=88=B7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 编排者每轮请求在 enhanced_messages 末尾临时拼接互动风格提醒 (ORCHESTRATOR_TURN_GUIDANCE),引导用 express_emotion/ask_user 保持有温度的对话,并带适度约束;不写入对话历史,工具调用递归续跑 时跳过,worker 子代理不受影响。 --- aibox/aibox.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/aibox/aibox.py b/aibox/aibox.py index de587a3..f94a283 100644 --- a/aibox/aibox.py +++ b/aibox/aibox.py @@ -5696,6 +5696,16 @@ TOOL_PROFILE_WORKER = "worker" # 仅 worker 子代理注册的执行面工具;编排者误调时拦截并纠正 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: """单AI聊天类""" @@ -6244,6 +6254,11 @@ class DeepSeekChat: else: 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 错误 self._validate_enhanced_messages(enhanced_messages)