Install
openclaw skills install @thcjp/can-bus-toolkit-freeopenclaw skills install @thcjp/can-bus-toolkit-free一款轻量级数据溯源协议工具,通过"时间-地址-命名"三列模型为数据流打戳,实现本地验证与防篡改审计。
在Agent与多个工具、API、其他Agent交互的过程中,数据来源的可信度是一个被忽视的痛点。你信任一个文件是因为它在某个路径下,但路径可以被移动;你按文件名搜索数据,但文件名是别人起的;你依赖时间戳判断数据新旧,但时间戳是文件系统控制的。这些信任基础都不在你手中。
CAN协议用最简单的三列模型解决这个问题:每条数据记录三个信息——它发生的时间(WHEN)、它内容的哈希(WHERE)、你给它起的名字(WHAT)。这三列完全由你控制,append-only追加写入,任何篡改都会导致哈希不匹配。
免费版聚焦于本地日志与基础验证能力,适合个人开发者与独立Agent在本地环境中建立数据溯源机制。
| 列名 | 含义 | 数据类型 | 作用 |
|---|---|---|---|
| WHEN | 发生时间 | Unix毫秒时间戳 | 线性可排序,由你的时钟控制 |
| WHERE | 内容地址 | SHA-256哈希片段 | 可验证,不依赖文件系统 |
| WHAT | 可读名称 | 任意非空字符串 | 可搜索,由你命名 |
每条事件追加一行记录,这就是协议的全部。
输入: 用户提供三列协议所需的指令和必要参数。 处理: 解析三列协议的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回三列协议的响应数据,包含状态码、结果和日志。
输入: 用户提供本地追加日志所需的指令和必要参数。 处理: 解析本地追加日志的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回本地追加日志的响应数据,包含状态码、结果和日志。
输入: 用户提供内容哈希验证所需的指令和必要参数。 处理: 解析内容哈希验证的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回内容哈希验证的响应数据,包含状态码、结果和日志。
输入: 用户提供自评估模式所需的指令和必要参数。 处理: 解析自评估模式的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回自评估模式的响应数据,包含状态码、结果和日志。
输入: 用户提供传输无关设计所需的指令和必要参数。 处理: 解析传输无关设计的输入参数,完成核心逻辑,返回结构化响应。 输出: 返回传输无关设计的响应数据,包含状态码、结果和日志。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:轻量级数据溯源协、议工具、通过时间戳、内容哈希与可读名、称三元组为数据流、支持本地验证与日、总线工具包免费版、是一款面向独立开、发者的数据溯源协、三列模型、为流经任意管道的、数据打上可验证的、内容哈希与人类可、解决数据来源不可、查找效率低、时间戳被他人控制、三大痛点、核心能力、天然防篡改、不依赖文件系统路等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
Agent从多个API获取数据后存储到本地。在存储时为每条数据打上CAN戳(时间、哈希、名称)。后续使用时重新计算哈希,与日志中的哈希比对,确认数据未被篡改。
自动化脚本处理多个步骤的数据流转。每个步骤的输入输出都打上CAN戳,形成完整的审计链条。事后可通过日志追溯任意一步的数据状态。
同一份数据经过多次修改,你需要找到某个特定版本。按内容哈希在日志中查找,命中即找到,无需遍历目录或依赖文件名。
以下场景CAN总线工具包免费版不适合处理:
需要AI模型调用、智能对话、Agent编排、LLM应用时使用。不适用于非本工具能力范围的需求。
预计上手时间:约60秒。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | CAN总线工具包免费版处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
WHEN 1742428800000 (Unix毫秒时间戳)
WHERE a7f3b2c1d4e5 (SHA-256哈希片段)
WHAT 客户名单-2024Q1 (你给的可读名称)
# 计算内容哈希
echo -n "your-data-content" | sha256sum
# 输出: a7f3b2c1d4e5...
# ...
# 记录三列
echo "1742428800000 a7f3b2c1d4e5 客户名单-2024Q1" >> can.log
# 重新计算当前内容的哈希
current_hash=$(echo -n "your-data-content" | sha256sum | cut -c1-12)
# ...
# 在日志中查找
grep "$current_hash" can.log
# 命中即表示内容与打戳时一致
检查一条记录是否具备完整的三列:
有Unix时间戳? → WHEN ✓
有内容哈希? → WHERE ✓
有可读名称? → WHAT ✓
三列齐全? → CAN
缺失任何一列? → NOT
每行一条记录,三列以空格或制表符分隔:
# WHEN WHERE WHAT
1742428800000 a7f3b2c1d4e5 客户名单-2024Q1
1742428900000 b8e4c3d2e5f6 订单数据-2024Q1
1742429000000 c9f5d4e3f6a7 产品目录-2024Q1
| 列 | 合法值 | 非法值 |
|---|---|---|
| WHEN | Unix毫秒,非未来时间,非零 | 未来时间、零、负数 |
| WHERE | 十六进制字符串(哈希片段或完整SHA-256) | 非十六进制字符、空字符串 |
| WHAT | 任意非空字符串 | 空字符串 |
# 文件内容哈希
sha256sum data.json
# ...
# 字符串哈希
echo -n "content" | sha256sum
# ...
# 哈希片段(取前12位)
echo -n "content" | sha256sum | cut -c1-12
12位十六进制哈希片段有约2^48种可能,日常使用规模下冲突概率可忽略。若数据量超过百万级,建议使用完整SHA-256。
NOT表示某条记录缺失了一列或多列。保留NOT记录比只记录成功更诚实——审计时能看出哪些数据打戳不完整,便于追溯问题。
日志采用append-only设计。若被篡改,重新计算所有条目的哈希,与日志中的WHERE列比对,不匹配的即为被篡改的条目。建议日志文件设置只读权限并纳入版本控制。
免费版仅支持本地时钟。如需与OTS(OpenTimestamps)等外部时间戳服务同步,提升时间戳的可信度,请使用专业版。
对大文件使用流式哈希计算,避免一次性读入内存。sha256sum命令本身支持流式处理,直接对文件路径执行即可。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:can-bus-toolkit-pro
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| sha256sum | 系统命令 | 必需 | 大部分操作系统内置 |
| LLM API | API | 必需 | 由Agent内置LLM提供 |
本工具零外部依赖,仅使用操作系统内置命令。
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "CAN总线工具包免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "can buskit"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}