当前会话行为分析
用于统计当前会话的工具调用次数、查询指定时间范围内的失败原因,以及总结带记录来源的主要操作。
适用环境
适用于已安装并运行的 Endless Context / Bub 项目,需由配套插件注册 behavior.query 工具,并配置 SQLAlchemy Tape 存储及当前会话的固定查询快照。
仅加载本 Skill 不会自动安装工具或建立数据库连接;若工具不可用或缺少绑定快照,应说明缺少运行依赖,不得编造分析结果。
使用示例
$session-behavior 统计当前会话各工具的调用次数,列出成功、失败、未知状态及记录来源。
$session-behavior 查询 2026-10-26T09:00:00+08:00 至 2026-10-26T10:00:00+08:00 的失败调用和原因。
$session-behavior 总结当前会话的主要操作,并列出可核对的记录号。
时间示例仅在结束时间不晚于当前快照截止点时适用。按用户请求选择以下查询:
- 工具调用统计:
behavior.query(operation="counts")。 - 时间范围内的失败调用:
behavior.query(operation="failures", start="2026-10-26T09:00:00+08:00", end="2026-10-26T10:00:00+08:00")。 - 主要操作与来源:
behavior.query(operation="summary", limit=20)。
以上为参数示意,实际调用使用运行环境提供的工具接口。
分析规则
- 必须调用 behavior.query 查询数据库,不得用记忆、聊天内容或日志文本推测统计。
- 工具自动绑定当前会话和本轮开始前固定的截止快照;不可查询其他会话。多次查询保持同一快照。
- 统计调用 operation=counts;失败查询用 operation=failures 并传入用户指定的 start/end;总结用 operation=summary。 时间必须包含时区。区间是 [start, end),end 不可超过 snapshot.cutoff。用户只给本地时间时先明确时区。
- 每个 run_id + call_id 计一次,无 ID 时按记录号与数组位置计一次,重复事件去重;不同 run 的重试各算一次。 command 事件每条算一次。run、loop.step 和 tool_result 事件不重复计数。
- success 仅指正常返回,failure 为结构化 Republic 错误或命令 error;缺失结果为 unknown。 未采集工具内部重试、精确执行开始时间及普通工具耗时,必须如实说明,不可填零或猜测。
- 时间为 Tape 记账时间。仅包含截止点前已提交记录,本轮执行中的记录尚未合并入数据库。
- 输出格式:
- 范围:snapshot.tape、cutoff、max_entry_id、[start,end)。
- 结论:调用数/成功/失败/未知,或逐项失败原因,或主要操作。
- 来源:tape#entry_id、call_index、result_entry_id;不得引用不存在的记录。
- 局限:无数据、unknown、warnings、truncated、未采集指标,均按查询结果如实说明。
- 总结仅概括查询返回的消息、工具和锚点;如已截断,明确只覆盖返回的记录。
Scan to join WeChat group