最近在搭一个多步骤推理的Agent,每个step要调用好几次LLM和工具,中间状态都放GPU上。我发现只要跑超过30轮,显存就稳定上涨,最后直接OOM。我已经试过torch.cuda.empty_cache(),也确认过每个step的tensor都del了,梯度也关掉了。但显存曲线还是像楼梯一样一步一步往上走。有人说是PyTorch的缓存分配器不会主动释放,也有人说是CUDA graph或者autograd的hook没清干净。想问问大家:这种长循环场景下,有没有什么官方的best practice?还是说我应该干脆每轮把推理放到子进程里隔离?有点迷茫,求指条明路。