From 7e63b7e85210cbcb353fe55bde82eecd58558d62 Mon Sep 17 00:00:00 2001
From: 3030332422 <3030332422@qq.com>
Date: Tue, 26 May 2026 11:43:18 +0800
Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E6=A0=B9=E6=8D=AE=E6=95=B0?=
=?UTF-8?q?=E5=AD=97=E4=BA=BA=20emoji=20=E5=BC=80=E5=85=B3=E5=8A=A8?=
=?UTF-8?q?=E6=80=81=E6=B8=B2=E6=9F=93=E7=B3=BB=E7=BB=9F=E6=8F=90=E7=A4=BA?=
=?UTF-8?q?=E8=AF=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
main/xiaozhi-server/agent-base-prompt.txt | 10 +++++++---
main/xiaozhi-server/core/connection.py | 5 ++++-
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/main/xiaozhi-server/agent-base-prompt.txt b/main/xiaozhi-server/agent-base-prompt.txt
index a2239a25..b54ba08c 100644
--- a/main/xiaozhi-server/agent-base-prompt.txt
+++ b/main/xiaozhi-server/agent-base-prompt.txt
@@ -21,9 +21,13 @@ You are a playful, expressive, empathetic, and highly emotionally intelligent co
你的输出会被合成器(TTS)转为声音朗读,用户输入格式为 JSON,但你的常规回复必须严格遵循纯文本规范:
-1. 【单一表情前置】只允许在每段常规回复的**最开头**插入 1 个且仅 1 个 Emoji 表情(调用工具时不插入表情)。
-2. 【表情白名单】绝对只能使用以下列表中的 Emoji:{{emojiList}}。禁止使用列表外的符号及任何颜文字。
-3. 【排版绝对禁区】除非输出标准化 JSON 进行工具调用,常规文本绝对禁止输出 Markdown 排版。绝对不要使用 “**” 或 “__” 加粗(如”**重点**”),不要在行首使用 “-”、”•” 等列表标记,不要用 “```” 代码块。严禁使用括号输出心理活动和动作描写(如”[无奈地叹气]”、”(笑着说)”)。多项内容请用中文分号”;”或逗号”,”串联成自然口语段落。
+{%- if emoji_enabled %}
+- 【单一表情前置】只允许在每段常规回复的**最开头**插入 1 个且仅 1 个 Emoji 表情(调用工具时不插入表情)。
+- 【表情白名单】绝对只能使用以下列表中的 Emoji:{{emojiList}}。禁止使用列表外的符号及任何颜文字。
+{%- else %}
+- 【禁用表情】常规回复绝对不要插入任何 Emoji 表情,也不要使用任何颜文字。
+{%- endif %}
+- 【排版绝对禁区】除非输出标准化 JSON 进行工具调用,常规文本绝对禁止输出 Markdown 排版。绝对不要使用 “**” 或 “__” 加粗(如”**重点**”),不要在行首使用 “-”、”•” 等列表标记,不要用 “```” 代码块。严禁使用括号输出心理活动和动作描写(如”[无奈地叹气]”、”(笑着说)”)。多项内容请用中文分号”;”或逗号”,”串联成自然口语段落。
diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py
index 2ae64316..4bd50ade 100644
--- a/main/xiaozhi-server/core/connection.py
+++ b/main/xiaozhi-server/core/connection.py
@@ -534,7 +534,10 @@ class ConnectionHandler:
# 更新上下文信息
self.prompt_manager.update_context_info(self, self.client_ip)
enhanced_prompt = self.prompt_manager.build_enhanced_prompt(
- self.config["prompt"], self.device_id, self.client_ip
+ self.config["prompt"],
+ self.device_id,
+ self.client_ip,
+ emoji_enabled=(self.features or {}).get("emoji", True),
)
if enhanced_prompt:
self.change_system_prompt(enhanced_prompt)