[![](https://img.shields.io/badge/OpenWebUI%20%E7%A4%BE%E5%8C%BA-%E8%8E%B7%E5%8F%96%E6%8F%92%E4%BB%B6-blue?style=for-the-badge)](https://openwebui.com/posts/async_context_compression_b1655bc8)

本次发布重点优化了在使用工具调用（Function Calling）模型时对话历史的结构完整性，并通过并发任务管理增强了系统的可靠性。新版本引入了“原子消息组”逻辑以防止上下文损坏，并增加了会话级锁定机制以确保后台任务的稳定运行。

## 新功能

- **原子消息组 (Atomic Grouping)**: 引入结构感知的消息处理逻辑，能够识别并成组处理 `assistant-tool-tool-assistant` 调用序列。这确保了在压缩过程中，工具结果永远不会与其调用指令分离。
- **尾部边界自动对齐**: 自动修正截断索引，确保保留的“尾部”上下文从合法的消息边界开始，防止将残缺的工具调用序列发送给大模型。
- **会话级异步锁**: 为每个 `chat_id` 实现异步锁，防止同一会话并发触发多个总结任务，减少冗余的 LLM 调用并消除竞态条件。
- **元数据溯源增强**: 总结输入现在包含消息 ID、参与者名称和关键元数据标签，使总结模型能够在其输出中保持更好的可追踪性。

## 问题修复

- **彻底解决 "No tool call found" 错误**: 通过强制执行原子分组，过滤器不再会以分离工具调用及其结果的方式截断上下文。
- **优化进度计算**: 修复了总结消息后由于列表索引偏移导致进度跟踪漂移的问题。
- **防止重复总结任务**: 新的锁定机制确保每个会话在同一时间只有一个后台总结进程在运行。

## 相关 Issue

- **[#56](https://github.com/Fu-Jie/openwebui-extensions/issues/56)**: 修复工具调用上下文损坏及并发总结任务冲突问题。
