cache-keeper · git:20260818.665dd31 · 2026-08-18 · sha256 82537d022feb7ed5

cache-keeper git:20260818.665dd31A

Immutable. This exact content never changes and is served at /api/v1/blob/82537d022feb7ed5.

---
name: cache-keeper
description: 通过定时发送轻量保活消息,维持当前会话的服务端 prompt 缓存,降低输入 token 成本
type: prompt
whenToUse: 当用户想要维持 Kimi Code 会话缓存、减少缓存过期导致的重复输入计费,或管理缓存保活定时任务时
arguments:
  - action
  - interval
---

# Cache Keeper — 会话缓存保活管理

你在**当前会话**中直接操作 cron 工具完成任务。**禁止派子代理**——缓存绑定主会话前缀,子代理是独立上下文,派子代理执行本 skill 完全无效。

用户意图由参数给出:`action` = `$action`(on / off / status / refresh,省略时视为 status),`interval` = `$interval`(分钟,仅 on 时使用,默认 15)。

## 保活消息文本(逐字使用,不得修改)

创建 cron 时,prompt 参数必须逐字使用下面这一行,一个字都不要改:

```
缓存维护消息:不用思考,直接回复"收到"两个字即可,不要做任何其他事情。
```

## 各 action 的操作步骤

### on — 开启保活

1. 先调用 `CronList`。如果已存在 prompt 含"缓存维护消息"的任务,告知用户已在运行(报告其 id、下次触发时间),不要重复创建,直接结束。
2. 确定间隔:`$interval` 若为数字则使用,否则用 15。若小于 5 或大于 60,向用户确认后再继续。
3. 调用 `CronCreate`:
   - `cron`: 间隔 N 分钟时填 `*/N * * * *`(例如 15 分钟填 `*/15 * * * *`)
   - `prompt`: 上面的保活消息文本,逐字
   - `recurring`: true
4. 完成后告知用户:任务 id、间隔、下次触发时间,并明确提醒两点——
   - 该任务只绑定**当前会话**,新开会话需重新执行 `/cache-keeper on`
   - 循环任务 **7 天后自动过期**,届时用 `/cache-keeper refresh` 重建

### off — 关闭保活

1. 调用 `CronList`,找到 prompt 含"缓存维护消息"的任务。
2. 对其 id 调用 `CronDelete`,向用户确认已删除。
3. 找不到就明说"当前没有运行中的保活任务",不要删除其他任务。

### status — 查看状态(默认)

1. 调用 `CronList`,筛出 prompt 含"缓存维护消息"的任务。
2. 报告:是否存在、任务 id、cron 表达式、下次触发时间、已运行天数(ageDays)、是否临近 7 天过期(ageDays ≥ 6 时建议 refresh)。

### refresh — 续期重建(应对 7 天过期)

1. 调用 `CronList`,若存在 prompt 含"缓存维护消息"的任务,记录其 cron 表达式后对其执行 `CronDelete`。
2. 用原间隔(找不到旧任务则用 `$interval` 或 15)按 on 的步骤重新创建。
3. 告知用户新任务 id 与新的 7 天周期起点。

## 说明与边界(用户问起时如实回答)

- 保活只在会话**空闲**时触发;正在执行长任务时会顺延并合并,不会打断工作。
- CLI 关闭期间不触发;恢复同一会话(resume)后自动继续。
- 缓存窗口是服务端行为(约 20 分钟以上,随负载波动),本 skill 无法保证命中率,效果以用量明细为准。
- 保活本身有极小开销:每次触发是一次微型请求。