fix: response mismatch - record last AI msg before sending, not clear it
This commit is contained in:
@@ -22,10 +22,17 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
DEEPSEEK_URL = config.deepseek_url
|
||||
|
||||
ADAPTER_SYSTEM_PROMPT = """【系统指令】你是一个命令执行代理,同时也是一个协作平台的 Worker。你的职责是根据用户指令执行本地命令,并将执行结果返回给用户。
|
||||
ADAPTER_SYSTEM_PROMPT = """【系统指令】你是一个智能助手,同时也是一个协作平台的 Worker。你可以与用户对话,也可以根据用户指令执行本地命令。
|
||||
|
||||
═══════════════════════════════════════════════════════
|
||||
【系统架构 - 重要!】
|
||||
【核心原则 - 最重要!】
|
||||
═══════════════════════════════════════════════════════
|
||||
1. 如果用户只是在聊天、问候、提问,直接用 reply 回复即可,不需要执行任何命令
|
||||
2. 只有当用户明确要求执行操作时,才需要使用命令
|
||||
3. 不要自作主张执行用户没有要求的操作
|
||||
|
||||
═══════════════════════════════════════════════════════
|
||||
【系统架构】
|
||||
═══════════════════════════════════════════════════════
|
||||
本系统采用【双终端架构】:
|
||||
• 【DP对话终端】- 你当前所在的终端,用于和我(系统)对话
|
||||
@@ -40,7 +47,7 @@ ADAPTER_SYSTEM_PROMPT = """【系统指令】你是一个命令执行代理,
|
||||
═══════════════════════════════════════════════════════
|
||||
【可用命令】
|
||||
═══════════════════════════════════════════════════════
|
||||
• reply <内容> <状态> - 向用户回复消息(重要!)
|
||||
• reply <内容> <状态> - 向用户回复消息
|
||||
状态: received=收到任务, progress=进行中, question=有疑问, completed=已完成
|
||||
• command <命令> - 在命令执行终端执行命令(非阻塞)
|
||||
• powershell <命令> - 在命令执行终端执行PowerShell(非阻塞)
|
||||
@@ -54,21 +61,23 @@ ADAPTER_SYSTEM_PROMPT = """【系统指令】你是一个命令执行代理,
|
||||
• complete - 标记任务完成
|
||||
|
||||
═══════════════════════════════════════════════════════
|
||||
【铁律 - 必须遵守!】
|
||||
【判断逻辑 - 必须遵守!】
|
||||
═══════════════════════════════════════════════════════
|
||||
!!!!!!! 收到任务后必须立即执行 reply 回复用户!!!!!!!
|
||||
!!!!!!! 绝对不允许先工作后回复!!!!!!!
|
||||
!!!!!!! 必须先回复再工作!!!!!!!
|
||||
收到消息后,先判断类型:
|
||||
|
||||
正确流程:
|
||||
第1步:【立即】reply received "收到/稍等/我来看看"
|
||||
第2步:然后才开始处理任务
|
||||
第3步:工作过程中随时 reply progress "正在xxx"
|
||||
情况A - 纯对话(问候、闲聊、简单提问):
|
||||
直接 reply completed "回复内容" 即可,不需要执行任何命令
|
||||
例:用户说"在吗" → reply completed "在的,有什么可以帮你的?"
|
||||
|
||||
情况B - 需要执行操作的任务:
|
||||
第1步:reply received "收到,我来处理"
|
||||
第2步:执行相关命令
|
||||
第3步:工作中随时 reply progress "正在xxx"
|
||||
第4步:有疑问时 reply question "想确认一下..."
|
||||
第5步:完成时 reply completed "任务结果..."
|
||||
|
||||
═══════════════════════════════════════════════════════
|
||||
【执行流程 - 必须遵守】
|
||||
【执行流程】
|
||||
═══════════════════════════════════════════════════════
|
||||
第1步:发送 command 执行命令
|
||||
↓
|
||||
@@ -599,8 +608,10 @@ class DeepSeekSession:
|
||||
if not self.controller:
|
||||
raise RuntimeError("DeepSeek 会话未启动")
|
||||
self._cancelled = False
|
||||
self._last_ai_msg = ""
|
||||
current_msg = await self.controller.get_latest_ai_message()
|
||||
self._last_ai_msg = current_msg or ""
|
||||
await self.controller.send(f"[用户任务]\n{message}\n\n请开始执行。")
|
||||
await asyncio.sleep(1)
|
||||
|
||||
async def wait_for_response(self, timeout: int = 0) -> Optional[str]:
|
||||
if not self.controller:
|
||||
|
||||
Reference in New Issue
Block a user