关于 toil-mining
toil-mining 是一项技能,用于从明确提供的会话、Shell、RTK 或 CASS 历史中找出重复摩擦,并按实测频率、成本和错误倾向排序。它只读取来源并输出证据报告,不创建任务、安排自动化或修改跟踪系统。
主要功能
- 01只读分析指定历史来源
- 02归一化并聚类重复操作
- 03按频率、成本和错误率评分
- 04保留可追溯的来源证据
- 05提取 Codex JSONL 中的人类消息
- 06区分观察结果与建议
适用场景
- 01盘点指定时间窗口中的重复操作
- 02依据耗时与失败情况排序摩擦
- 03从 Codex JSONL 提取近期人类请求
- 04为后续自动化决策提供证据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ boshu2/ agentops --skill toil-mining安装后在 Claude Code 中输入/toil-mining确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/recent_human.pyvalidate.shtests/test_recent_human.py详细介绍
Toil Mining — 对重复摩擦进行排序
挖掘明确提供的会话、Shell、RTK 或 CASS 历史记录,不修改来源。结果是供调用方参考的证据;此技能不会创建工作、安排自动化或修改跟踪器。
约束
- 对提供的来源只读,因为此技能用于收集证据,绝不能成为修改通道。
- 不创建工作:绝不提交跟踪器条目、安排自动化或指定负责人,因为这些是调用方根据证据作出的决定。
- 依据测量,而非记忆:每个计数、成本和错误率都从提供的历史记录中读取,因此近期性和显著性不会伪装成频率。
- 将观察结果与建议分开,以便调用方重新权衡排序,而不受未明说的结论影响。
流程
- 记录输入来源、时间范围、筛选条件和查询。
- 规范化重复的人类操作,同时排除有文档记录的机器回显和自动生成的重复内容。对于调用方提供的 Codex JSONL,使用以下确定性辅助工具,而不是临时扫描转录记录。
- 对等效操作进行聚类,并保留具有代表性的证据引用。
- 根据测得的频率和观察到的痛点(例如耗时、失败次数、中断或 token 成本)为每个聚类评分。
- 输出排名报告并停止。
每个候选项都必须包含测得的计数、来源引用、聚类置信度、痛点证据,以及最小可行的自动化形式。将观察结果与建议分开。
重复阈值:依据测量,而非记忆
只有超过测得的下限,聚类才能算作苦差事:在提供的时间范围内至少发生三次,且每次都能关联到来源引用。两次只是巧合;如果只有一个实例能关联到来源引用,那么即使对“老是做这件事”记忆犹新,也只是轶事。这里所说的失败模式是显著性挖掘——按最近一次发生时有多恼人来排序,而不是按次数排序,结果让昨天的烦躁压过每周悄然累积的负担。如果提供的历史记录无法确定计数,就按实际测得的计数将候选项报告为低于阈值;绝不把印象向上取整成频率。
加权优先级:频率 × 成本 × 易出错程度
按三个测得因素的乘积为聚类排序,而不是只看其中任意一个:
- 频率——每个时间范围内发生的次数,取自聚类计数;
- 成本——每次发生的耗时中位数或 token 成本,取自证据,而非回忆;
- 易出错程度——来源中显示失败、重试或修正的次数占比。
根据引用的证据为每个因素评分,并在每个综合评分旁显示这三个输入,以便调用方重新权衡。历史记录无法支持的因素应报告为未测量——按最低值计分,绝不猜测中间值。这里所说的失败模式是仅按频率排序:由于只测量了一个维度,导致每日发生、只耗时两秒的麻烦事排在每周一次、耗时半小时且容易出错的惯例之前。采用乘积形式,正是为了让高频率、几乎零成本且从不出错的聚类排在恰当的低位。
确定性提取近期人工消息(Codex JSONL)
该辅助工具仅接受明确指定的会话路径,并要求提供明确且带时区的时间窗口:
python3 skills/toil-mining/scripts/recent_human.py --since 2026-07-12T00:00:00Z \
--until 2026-07-16T00:00:00Z /path/to/session-a.jsonl /path/to/session-b.jsonl \
> /tmp/recent-human.json
它会提取 event_msg / user_message 记录,并提供 source_path、从 1 开始的 line、标准化后的 UTC timestamp 和请求 text。Codex 附件和 IDE 包装内容会通过保留 # My request for Codex: 之后的文本进行标准化。恢复或分叉的副本会按 client_id 去重,并保留最早出现的记录。
提取器将非空 client_id 视为高置信度的 UI 来源边界。没有该字段的记录会标记为 missing_client_id,而不会猜测其是否来自人工。它还会排除以下几类范围有限的生成式封装,并报告其数量:内部上下文标签(codex_internal_context、环境、权限、技能/应用/插件指令)、新上下文跨类别反驳提示词,以及 Agent 的 Message Type: 封装。这种处理有意采取保守策略:如果客户端省略了 client_id,则直接输入的消息仍会标记为未经核验。
JSON 结果包含输入数、解析数、候选数、输出数、按原因分类的排除数、已核验事实和未核验事实。格式错误的记录会计数,不会被静默丢弃。该辅助工具只读取提供的 JSONL,并且只向 stdout 写入;它不会读取附件内容、发现更多会话、聚类语义、评估繁琐程度、创建文件工作项或安排自动化。它仅负责检索和报告。
输出
仅当调用方要求生成本地文件时,才写入 .agents/scratch/toil-mining/YYYY-MM-DD-candidates.md;否则直接返回报告。请包含已核验和未核验的来源。不要包含负责人、优先级、声明、队列或后续操作。
质量
- 每个已排名的候选项都要在综合评分旁列出其频率、成本和易出错程度的测量值。
- 引用的来源必须可解析;如果历史记录无法支持某个因素,则报告最低值,绝不猜测中间值。
- 观察结果和建议应分开,报告中应同时列出已核验和未核验的来源。