Skip to content

feat: 工具调用前穿插逐步文字解说 + 后台唤醒调度 - #180

Merged
ZhouChaunge merged 5 commits into
mainfrom
feat/interactive-narration
May 30, 2026
Merged

ZhouChaunge merged 5 commits into
mainfrom
feat/interactive-narration

Conversation

@ZhouChaunge

Copy link
Copy Markdown
Member

背景

此前多步工具回合表现为「一堆工具先跑、最后才蹦出文字」。日志里每个 ITER_END 都是 assistant_chars:0 —— 模型把「我现在要做 X」的解说全部塞进了 DeepSeek 的 reasoning_content(隐藏的 THINK 通道),可见的 content 通道全程为空。这和 GitHub Copilot「先说一句话 → 再调工具」的穿插体验差距明显。

改动

系统提示(核心修复,src/prompts/system.js)

  • Tone 段:把原来禁止前导解说的 No preamble, no "I'll now…" 改成「禁空话(Great question/Sure)、但要求动作解说」—— 每次工具调用前用一句可见正文说明「要做什么 + 为什么」。
  • System 段:新增强约束,要求把面向用户的解说写进 content 而非 reasoning/thinking 通道;多步工具回合里每个工具调用前先写一句,而不是沉默到最后。

流式管道本身(src/api/openai-client.js)已支持 content 先于 tool_calls 穿插渲染,无需改动。

捆绑的在途功能

本分支同时包含此前在途的后台唤醒相关工作:

  • src/chat/wake-scheduler.js — watch + yield_turn 的后台条件唤醒调度。
  • src/chat/digest.js — 会话摘要。
  • src/tools/sleep.js — sleep 工具。
  • src/chat/agent-loop.js 等相应配套改动。

验证

  • node esbuild.config.js 构建通过(out/extension.js 666 KB,无错误)。
  • 已打包 release/deep-copilot-0.43.0.vsix。
  • 行为回归(待真实 UI):跑后台训练场景,确认每个 ITER_END 的 assistant_chars > 0、每个工具方块前有解说、yield_turn 前有总结。

风险

  • DeepSeek thinking 模型不保证 100% 听提示,偶尔仍可能把解说放进 reasoning。若不稳定,后续可补「把 THINK 块折叠保留可见」作为兜底。
  • 解说增多会让每轮多几十个输出 token,成本略增。

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants