Skip to content

feat(agentcore): 增加请求预检与可恢复的 Session 压缩 - #129

Merged
Fodesu merged 4 commits into
felinics:mainfrom
Fodesu:feat/compaction-protocol
Oct 16, 2026
Merged

Fodesu merged 4 commits into
felinics:mainfrom
Fodesu:feat/compaction-protocol

Conversation

@Fodesu

@Fodesu Fodesu commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

概述

为 Core 增加完整请求预检与可恢复的 Session Compaction,并明确 Open 时先完成已有压缩恢复,再恢复普通 Run。

改动

  • 固定压缩计划:生成摘要前记录 Context digest、覆盖边界和保留后缀;提交时在同一 Writer 事务内校验,拒绝将旧摘要应用到变化后的 Context。保留工具调用/结果配对及未完成调用。
  • 完整请求预检:在 Build 后、Prepare 前检查完整候选请求,支持 Ready / Rebuild / Maintenance;预算考虑输出预留、安全余量与请求显式输出限制,并限制连续重建。
  • 持久化压缩执行:保存计划、冻结摘要请求和稳定 Effect 身份;复用 Executor / Watcher,原子提交摘要、Context 替换与操作结果,再 ACK。支持恢复、Stale/Failed 处置、ACK 重试及压缩次数限制。
  • 顺序恢复:Open 同步处理已有压缩,再接入普通 Run 恢复,避免后台恢复更新 Context 后旧候选仍被发送。失败直接返回;取消保留已接受操作。
  • 关闭生命周期:Owner.Close 取消并等待尚未完成的 Open,避免同步摘要恢复阻塞退出。

提交

  1. 65826fb3 固定摘要生成前的压缩计划
  2. 4102b99a 完整模型请求候选预检
  3. c6a33b33 通过持久化 Effect 执行与恢复 Session 压缩
  4. 582544c8 Open 按顺序恢复压缩并完善关闭处理

验证

最终提交树已验证:

  • Go 1.25.7 / 1.27.1:根模块与 internal/sdkdiff 的 race tests、build、vet
  • 根模块 integration-tag vet
  • Go 1.25.7:两模块 golangci-lint、go mod tidy -diff
  • Open、取消、Owner 关闭、owner handoff、ACK 回调关闭及工具结果恢复后的压缩:重复 race 测试
  • 回归测试确认旧实现会提前返回 Open;同步恢复后,普通请求读取已采用的摘要

@Fodesu
Fodesu force-pushed the feat/compaction-protocol branch from 5217982 to 75459f7 Compare October 16, 2026 10:08
@Fodesu
Fodesu force-pushed the feat/compaction-protocol branch from 75459f7 to 582544c Compare October 16, 2026 10:11
@Fodesu
Fodesu merged commit b94cf0e into felinics:main Oct 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant