Resources
1Install
npx skillscat add valkryhx/google-adk-agent/skills-compactor Install via the SkillsCat registry.
SKILL.md
Execution Instructions
核心策略:Rolling Summary(滚动摘要)
与传统 compactor 的区别:
- ❌ 传统方式:直接清空所有历史 → 信息全部丢失
- ✅ Rolling Summary:先总结关键信息 → 清空历史 → 摘要作为新起点
执行步骤
原子化压缩操作(Atomic Compression)
现在,压缩操作必须在一个步骤中完成,不再分步进行。
执行逻辑:
- Thought (思考): 回顾当前对话,在内心生成一份结构化的摘要(包含任务目标、进展、关键数据等)。
- Action (行动): 直接调用
smart_compact(summary="..."),将生成的摘要作为参数传入。
摘要模板(供参考):
## 任务目标
[用户原始请求]
## 进展
- [已完成步骤]
## 关键数据
- [文件路径/配置值]
## 待办
- [下一步计划]注入摘要
smart_compact 执行成功后,会返回包含摘要的确认信息。请将此信息作为新对话的起点。
可用工具
smart_compact
智能压缩:接收摘要,清空历史,卸载工具。
参数: summary (必填) - 当前对话的完整摘要。
get_compression_status
获取当前状态和压缩建议。
主动调用时机
Agent 应在以下情况主动建议调用 compactor:
| 触发条件 | 说明 |
|---|---|
| 对话轮次 > 100 轮 | 上下文过长,影响性能 |
| 已加载工具 > 50 个 | 工具列表膨胀 |
| 任务阶段切换 | 完成一个大任务,开始新任务 |
| 用户明确要求 | "清理历史" / "重置状态" |
示例流程
用户: "继续之前的代码分析任务"
Agent 思考: "对话已经很长了,我应该压缩一下"
Step 1 - 生成摘要:
"## 任务目标
分析项目中的内存泄漏问题
## 已完成
- 使用 codebase_search 定位了 3 个可疑文件
- 使用 bash 检查了进程内存
## 关键发现
- memory_pool.py 第 45 行存在未释放的资源
- 问题出现在 process_data() 函数中
## 待处理
- 需要修复 memory_pool.py 的问题"
Step 2 - 执行压缩:
Action: smart_compact()
Result: [OK] 已清空历史,已卸载 5 个工具
Step 3 - 继续任务:
"根据之前的分析,memory_pool.py 第 45 行存在问题,
现在让我加载 codebase_search 继续处理..."重要提醒
- 压缩前必须生成摘要 - 否则关键信息会丢失
- 摘要要简洁但完整 - 保留任务目标、结论、进展
- 压缩后主动告知用户 - 让用户知道之前做了什么