opencode-subagent-log-triage
Installation
SKILL.md
OpenCode 子代理日志排查
概述
本 skill 覆盖两类取证,共用同一套本地数据源(SQLite DB / 日志 / 进程树):
- 卡住排查:把模糊的「子代理卡住」报告转化为证据,判断工具是否仍在运行还是仅存储陈旧,推荐最小安全干预。
- 执行审计:把「这次开发费时费钱」的感受转化为总账——按会话树汇总成本/token/时长,找出烧钱贡献最大的会话,支撑 prompt 与流程改进讨论。
核心原则:在从独立证据关联起卡住的 session、工具调用、进程树和用户可见结果之前,绝不杀进程或编辑任何东西。
存储事实(先读)
- SQLite DB 是唯一权威:
%USERPROFILE%\.local\share\opencode\opencode.db。会话表含成本与 token 列(见下)。 - session JSON 已陈旧:
storage\session\下的 JSON 文件自存储迁移后不再更新,只用于考古,发现其 mtime 陈旧时直接转向 DB,不要在 JSON 里反复 grep。 - DB 可能数十 GB:一律 readOnly 打开(脚本已内置),禁止 VACUUM/写入;WAL(
opencode.db-wal)随主库一并可读,无需单独处理。 - cost 列语义:仅按量计费模型有值;订阅/免费模型
cost=0但 token 计数真实。审计时$0 ≠ 零消耗,tokens_cache_read才是体量主力(常比 input 大 10 倍量级)。 - 日志:
%USERPROFILE%\.local\share\opencode\log;工具输出:%USERPROFILE%\.local\share\opencode\tool-output。