fix(agent): восстановить NVIDIA GLM-5.1 после пустого stream#677
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: xlabtg#676
Working session summaryГотово. В PR #677 реализовал восстановление для случая, когда NVIDIA GLM-5.1 возвращает пустой streaming response с нулевым usage: runtime теперь после обычных retry делает одну дополнительную попытку с recovery-инструкцией в system prompt, не отключая native tools. Добавлены регрессионные тесты для самого сценария и unit-тесты helper-логики. PR: #677 Проверки прошли:
This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (458.8K + 8.2M cached) input tokens, 30.3K output tokens, $14.148240 cost 🤖 Models used:
📎 Log file uploaded as Repository (39658KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Fixes #676
Что изменено
Почему так
NVIDIA для
z-ai/glm-5.1документирует streaming и tool calling в API, поэтому исправление не отключает native tools, а обрабатывает пустой stream как recoverable provider edge case.Ссылки:
Как воспроизведено
Добавлен тест, где NVIDIA GLM-5.1 возвращает четыре пустых zero-token stream responses подряд. Раньше runtime падал на диагностике после стандартных retry; теперь пятая попытка получает recovery prompt и может вернуть нормальный ответ.
Проверка
npm cinpx vitest run src/agent/__tests__/runtime-retry.test.ts src/agent/__tests__/runtime-utils.test.ts src/providers/__tests__/nvidia-glm-tools.test.tsnpm run format:checknpm run lintnpm run build:sdknpm run typechecknpm test