节点赞助商

wxjback
0D

记一次 DeepSeek harness 吞对话的解决过程 [dsh 压缩机制问题]

  •  
  •   wxjback · 3 days ago · 338 views

    环境: OS: MacOs m1pro 32G Agent:DeepSeek harness 0.1.1-rc.2 LLM server:unsloth desktop mlx Model:Ornith-1.5-9B-MLX-4bit · 35,328 ctx

    现象: dsh 上下文长度达到 80%以上 ,用户发送的 promote 会消失,agent 没有返回任何信息

    排查: 1 、dsh 观察日志,未收到有效响应 2 、排查 unsloth api 响应,发现有响应,但是 stop 了,reason 是 length 3 、初步怀疑 dsh 没有压缩上下文 超长了,ui 中看到的也反映这一点,32k 左右的上下文,显示已经接近 30K 了,也没有压缩 4 、手动 compact 一下,dsh 没反应,unsloth api 响应还是 stop reason length 5 、随后请 codex 排查,发现官方有讨论,dsh 压缩时机太晚,导致上下文超长,并且还有个问题是 dsh 接收响应:STOP REASON=length 并不会走 compact 路径,只有 provider 明确报出 context overflow ,dsh 才会进入 overflow-compaction recovery ;官方讨论支持了这个观点: https://github.com/deepseek-ai/deepseek-harness/discussions/5123

    结论: 真相大白 1 、dsh 压缩时机太晚 2 、dsh 不支持 unsloth api 返回的 stop 参数 进行 compact ,只有 context overflow 才会 compact recovery

    解决 1 、手动调整 compact 时机:compaction-basic: thresholdRatio: 0.70 降低到 70% 上下文开始压缩 2 、等 dsh 完善兼容性,当然 unsloth 的 api 不见得在后期支持计划中。

    1 replies    2026-09-03 08:02:28 +08:00
    tylerrrrrr
        1
    tylerrrrrr  
       1 day ago
    这个现象看起来更像是上下文压缩时机和 stop reason 的组合,不一定是 prompt 身。建议把 compact 前后的 token 、stop_reason 、实际发送的 messages 长度记下来,并对 unsloth 回做兼容兜底;如果是固定模型,先阈值触发也比等 overflow 稳。Caravel 这类本工 agent 的状态和 diff 隔离开,排查时更容易对照。GitHub: https://github.com/yy36295238/caravel-releases
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2848 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:38 · PVG 21:38 · LAX 06:38 · JFK 09:38
    ♥ Do have faith in what you're doing.