skills-experimental/forked-agent-cache/SKILL.md
Forked Agent Cache Sharing - Share prompt cache between parent session and forked subagents. Reduces token usage for background tasks. Use when [forked agent cache] is needed.
npx skillsauth add bianhaifeng789-hue/openclaw-config forked-agent-cacheInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Forked Agent Cache 共享 - 减少后台任务的 token 消耗。
问题:
解决:
interface CacheSafeParams {
systemPrompt: string // 必须 match parent
userContext: Record<string, string> // 影响 cache
systemContext: Record<string, string> // 影响 cache
model: string // 影响 cache key
forkContextMessages: Message[] // 共享 prefix cache
thinkingConfig?: ThinkingConfig // 影响 cache key
}
Anthropic API cache key 由以下组成:
关键:Forked agent 必须使用相同参数才能命中 cache。
// 在采样后保存(post-sampling hook)
import { saveCacheSafeParams, createCacheSafeParams } from './forked-agent-cache'
// 从当前会话创建 params
const params = createCacheSafeParams({
systemPrompt: currentSystemPrompt,
userContext: currentUserContext,
model: currentModel,
messages: recentMessages
})
// 保存供后续 fork 使用
saveCacheSafeParams(params)
import { runForkedAgent, getLastCacheSafeParams } from './forked-agent-cache'
// 获取保存的 cache params
const cacheParams = getLastCacheSafeParams()
// 运行 forked agent(共享 cache)
const result = await runForkedAgent({
task: 'Update MEMORY.md...',
cacheSafeParams: cacheParams,
runtime: 'subagent',
mode: 'run'
})
// result 包含 usage metrics
console.log('Cache hit:', result.totalUsage.cacheReadTokens)
新会话:
- system prompt: 50,000 tokens
- user context: 5,000 tokens
- messages prefix: 10,000 tokens
总计: 65,000 tokens (全量计费)
Forked agent:
- cache_read_input_tokens: 60,000 tokens
- 新增内容: 5,000 tokens
总计: 5,000 tokens (新内容计费)
节省: 92%
| Claude Code | OpenClaw |
|-------------|----------|
| saveCacheSafeParams() | saveCacheSafeParams() |
| getLastCacheSafeParams() | getLastCacheSafeParams() |
| runForkedAgent() | runForkedAgent() |
| createSubagentContext() | createSubagentContext() |
| forkContextMessages | forkContextMessages |
Forked agent 使用隔离的上下文,防止污染父会话:
| 字段 | 处理方式 | |-----|---------| | readFileState | 克隆(独立缓存) | | abortController | 新建子控制器 | | getAppState | wrapped(避免 permission prompts) | | setAppState | no-op(不影响父状态) | | messages | 独立数组 |
forkedAgentCache:
enabled: true
maxCacheAge: 2h # cache 有效期
maxContextMessages: 10 # 共享的 prefix messages 数量
skipCacheWrite: false # 是否跳过 cache 写入(fire-and-forget)
当前实现需要 OpenClaw 的 sessions_spawn 支持传递 cache 参数:
// 当前 sessions_spawn
sessions_spawn({
task: '...',
runtime: 'subagent'
})
// 扩展后(支持 cache)
sessions_spawn({
task: '...',
runtime: 'subagent',
cacheSafeParams: {
systemPrompt: '...',
model: '...',
forkContextMessages: [...]
}
})
sessions_spawn API 支持传递 cache paramsimpl/utils/forked-agent-cache.ts - 核心实现impl/utils/background-task-utils.ts - 整合使用skills/heartbeat-task-visualizer/SKILL.md - 心跳整合src/utils/forkedAgent.tssessions_spawn tool definitionbusiness
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings