## 问题 `AgentLoop::maybe_compact()` 将摘要插入位置 0,然后从位置 1 开始删除 `replaced.size()` 条消息,假设被替换的消息恰好对应 `session_history_` 的前缀。但实际上 `comp_result.replaced` 是从 `compact_history()` 内部计算的区间,如果此前已做过其他 compact,索引会偏移。 ## 涉及文件 - `libs/loop/src/agent_loop.cpp`
问题
AgentLoop::maybe_compact()将摘要插入位置 0,然后从位置 1 开始删除replaced.size()条消息,假设被替换的消息恰好对应session_history_的前缀。但实际上comp_result.replaced是从compact_history()内部计算的区间,如果此前已做过其他 compact,索引会偏移。涉及文件
libs/loop/src/agent_loop.cpp