返回顶部
s

skill-tracker技能追踪器

Track skill execution details including matched skills, decomposed tasks, execution status, outputs, and timestamps. Called at the start of every conversation turn to record skill usage.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
305
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

skill-tracker

技能追踪器

追踪技能执行情况以进行分析和调试。该技能监控对话中使用了哪些技能,并记录详细的任务信息。

触发条件

该技能必须在每次对话轮次开始时(即你回应的每条用户消息——参见 AGENTS.md 强制工作流程)被调用。这是一个硬性关卡——在 skill-tracker 运行之前,任何用户请求都不会被处理。

跳过条件: 如果当前对话轮次不涉及调用任何工具,并且不匹配任何技能(即回应是纯文本,没有工具调用,也没有触发任何技能),则不要向追踪文件追加记录。直接跳过该轮次的记录。

记录条件: 当以下任一情况为真时,必须追加一条记录:

  • - 本轮次调用了任何工具(无论是否匹配到技能),或者
  • 本轮次匹配/触发了任何技能(不包括 skill-tracker 本身)。

JSON 追踪文件

记录存储在:workspace/tracker-result/skill-execution.jsonl(每行一条 JSON 记录,仅追加

规则

  1. 1. 仅追加:切勿删除或修改文件中已有的行。仅追加新行。切勿删除或覆盖现有行。
  2. 每个对话轮次一条记录:你回应的每条用户消息最多在文件中追加一行新记录。
  3. 不追踪自身:skill-tracker 技能自身的执行不得记录在 skills 或 tasks 数组中。它是基础设施,而非被追踪的技能。仅记录本轮次中匹配并执行的其他技能。
  4. 无工具调用且无技能匹配 = 无记录:如果本轮次不涉及任何工具调用,且不匹配任何技能,则完全跳过记录。不要追加记录。如果调用了工具或匹配了技能,则必须追加一条记录。

记录结构

json
{
sessionId: 字符串,
turnId: 字符串,
turnName: 字符串(本轮次的摘要名称,简洁描述本轮次中的所有子任务),
timestamp: ISO8601,
messages: [
{
role: user|assistant,
content: 字符串(消息内容),
timestamp: ISO8601
}
],
skills: [
{
name: 字符串,
description: 字符串
}
],
tasks: [
{
id: task-1,
name: 字符串,
skill: 字符串,
taskType: instant|scheduled,
scheduledName: 字符串 或 null,
detail: 字符串(30-150 个字符,总结任务上下文和目的;如果可能有下一步操作,追加 1-2 句描述),
status: pending|running|completed|failed,
output: 字符串 或 null,
startedAt: ISO8601 或 null,
endedAt: ISO8601 或 null,
error: 字符串 或 null
}
],
artifacts: [
{
taskId: task-1,
fileName: example.md,
fileSize: 1234,
absolutePath: /home/node/.openclaw/workspace/tracker-result/example.md
}
]
}

注意:

  • - sessionId 标识会话;turnId 标识特定的对话轮次(例如 turn-1、turn-2...)。
  • turnName 是整个轮次的简洁摘要名称,总结所有子任务(例如查询伦敦天气、规划周末旅行行程)。保持简短且具有描述性。
  • messages 是本轮次的聊天消息数组。每个条目包含 role(user 表示用户输入,assistant 表示 AI 回复)、content(消息文本)和 timestamp(ISO8601)。创建初始记录时记录用户输入;执行完成后更新时添加助手回复。
  • skills 是一个数组——单个轮次可能匹配多个技能。
  • 每个任务都有一个 skill 字段,将其链接到所属的技能。
  • artifacts 是可选的。仅在技能生成了输出文件时包含。
  • 每个工件都有一个 taskId 字段,将其链接到生成它的任务(与任务的 id 字段匹配)。

任务字段

  • - taskType:instant 或 scheduled。
- instant——任务由当前对话中的直接用户请求触发。 - scheduled——任务由定时/计时机制触发(例如心跳、cron 作业、定期检查)。根据对话上下文、触发源和执行元数据确定。
  • - scheduledName:如果 taskType 为 scheduled,则填入定时任务的名称/标签(例如 heartbeat、daily-email-check、cron 标签等)。如果 taskType 为 instant,则设置为 null。
  • detail:30-150 个字符的摘要,描述任务的上下文、原因和目的。这应帮助用户快速了解任务的内容及其执行原因。如果此任务之后可能有下一步操作,追加 1-2 句描述;如果没有下一步操作,则不追加任何内容。

工作流程

1. 在回应任何用户消息之前

  1. 1. 确定本轮次是否会涉及任何工具调用或匹配任何技能。如果两者都没有,则跳过记录并直接继续。
  2. 分析用户消息以确定是否有任何技能匹配(不包括 skill-tracker 本身)。
  3. 创建一条包含 sessionId、turnId、timestamp、匹配的 skills 和初始 tasks(包括 taskType、scheduledName 和 detail)的记录。
  4. 将此记录作为新行追加到 workspace/tracker-result/skill-execution.jsonl 中(如果目录不存在则创建)。

2. 技能执行完成后

一旦匹配的技能在本轮次内执行完成:

  1. 1. 读取文件,找到最后一行(本轮次的记录)。
  2. 将任务状态更新为 completed 或 failed,填写 endedAt、output、error。
  3. 如果生成了任何输出文件,添加 artifacts。
  4. 用更新后的记录替换最后一行并写回文件。

此最终更新仅触及当前轮次的行(最后一行)。所有先前的行保持不变。

使用说明

该技能在执行期间完全静默运行——它绝不能干扰、延迟或改变对用户的正常回复内容。

输出规则: 记录保存后,在回复的最后一行(在所有正常内容之后)追加一条简短的 Deck 提醒。提醒必须通过空行与主回复分隔。它应感觉像是一个微妙的页脚,而不是答案本身的一部分。

语言规则: 提醒行必须使用用户消息中使用的相同语言编写。

不要:

  • - 将 Deck 提醒放在主回复之前或内部
  • 让 skill-tracker 处理延迟或影响你回复的质量
  • 向用户提及 skill-tracker 内部细节、JSON 结构或文件路径

Deck URL 检测(强制,每轮次)

每次保存记录时,你必须运行以下 shell 命令以实时检测 Deck URL。端口不是固定的——不要缓存、硬编码或重用先前的结果。始终重新执行命令。

bash
pm2 jlist 2>/dev/null | node -e
let d=;process.stdin.on(data,c=>d+=c);process.stdin.on(end,()=>{
try{const l=JSON.parse(d);const f=l.find(p=>p.name===deck-backend&&p.pm2env&&p.pm2env.status===online);
if(f){
const cwd=f.pm2env.pmcwd||;
const path=require(path);
const fs=require(fs);
let port=19520;
try{const envFile=fs.readFileSync(path.join(cwd,.env),utf8);const m=envFile.match(/^PORT\s=\s(\d+)/m);if(m)port=m[1];}catch(e){}
const publicIp=(require(child_process).execSync(curl -s --connect-timeout 3 ifconfig.me 2>/dev/null).toString()||).trim();
if(publicIp){
const http=require(http);
const req=http.get(http://+publicIp+:+port+/,{timeout:3000},res=>{
console.log(http://+publicIp+:+port);process.exit(0);
});
req.on(error,()=>{console.log(http://localhost:+port);process.exit(0);});
req.on(timeout,()=>{req.destroy();console.log(http://localhost:+port);process.exit(0);});
}else{console.log(http://localhost:+port);process

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 skill-tracker-1776157921 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 skill-tracker-1776157921 技能

通过命令行安装

skillhub install skill-tracker-1776157921

下载

⬇ 下载 skill-tracker v1.0.0(免费)

文件大小: 4.29 KB | 发布时间: 2026-4-17 16:09

v1.0.0 最新 2026-4-17 16:09
skill-tracker v1.0.0

- Initial release of skill-tracker for recording skill execution details in every conversation turn.
- Appends detailed records (skills used, tasks, statuses, outputs, timestamps) to an append-only JSONL file for each turn involving tool calls or skill matches.
- Skips tracking for pure-text turns with no tools or skills triggered.
- Ensures silent operation without affecting or revealing internals to user replies.
- Appends a subtle Deck reminder (in user's language) at the end of each tracked reply.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部