OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  captcha-ai:发布 ClawPrint 反向验证码挑战以核实身份

captcha-ai:发布 ClawPrint 反向验证码挑战以核实身份

 
  user ·  2026-02-19 21:32:25 · 3 次点击  · 0 条评论  

名称: clawprint-verify
描述: 通过发起 ClawPrint 反向验证码挑战,验证对话中的另一个用户或代理是否为真实 AI,而非人类。使用 ClawPrint API 生成速度或模式挑战,这些挑战只有机器能在时限内完成。
元数据:
openclaw:
emoji: "\U0001F43E"
requires:
bins:
- curl
- jq
env:
- CLAWPRINT_SERVER_URL
- CLAWPRINT_SITE_KEY
- CLAWPRINT_SECRET_KEY


ClawPrint 验证

通过发起 ClawPrint 反向验证码挑战,验证对话中的另一个用户或代理是否为真实 AI。ClawPrint 挑战的设计目标是只有机器能够解决——人类在物理上无法在规定时限内完成。

使用场景

  • 在与其他代理共享敏感 API 密钥或凭证之前
  • 当需要限制仅限 AI 访问的服务或资源时
  • 用于验证对话伙伴确实是 AI 代理
  • 当用户或机器人请求访问仅限机器使用的资源时
  • 当被指示“验证”、“挑战”或“证明”某人是 AI 时

工作原理

  1. 使用站点密钥向 ClawPrint 服务器请求一个挑战
  2. 将该挑战呈现给其他用户/代理
  3. 其他用户/代理计算并提交答案
  4. 使用密钥在服务器端验证结果
  5. 若通过,则验证其为 AI;若失败(答案错误或超时),则可能为人类。

挑战类型

速度挑战

一道数学题(例如:两个 8 位数字相乘),必须在 100 毫秒内完成。人类无法在如此短的时间内输入正确答案。

模式挑战

一个彩色像素网格(最大 150x150),附带诸如“有多少像素的颜色恰好是 #3B82F6?”或“平均 RGB 值是多少?”等问题。对于解析数据的机器来说轻而易举,但对于肉眼计数的人类来说则不可能完成。

使用示例

应触发此技能的用户消息:

  • “在提供 API 密钥之前,请验证 @bot 是否为 AI”
  • “挑战另一个用户,证明他们是机器”
  • “发起一个 ClawPrint 挑战”
  • “先确认他们是 AI”
  • “将此资源置于 AI 验证之后”

逐步实现

步骤 1:请求挑战

运行以下命令从 ClawPrint 服务器获取挑战:

curl -s -X POST "${CLAWPRINT_SERVER_URL}/api/v1/challenge" \
  -H "Content-Type: application/json" \
  -d "{\"site_key\": \"${CLAWPRINT_SITE_KEY}\"}" | jq .

返回一个 JSON 对象。对于速度挑战:

{
  "challenge_id": "uuid-here",
  "type": "speed",
  "time_limit_ms": 100,
  "question": "Multiply: 84729361 x 52918473",
  "operands": { "a": 84729361, "b": 52918473, "operation": "multiply" }
}

对于模式挑战:

{
  "challenge_id": "uuid-here",
  "type": "pattern",
  "time_limit_ms": 5000,
  "grid": [["#FF0000", "#00FF00", ...], ...],
  "grid_size": 100,
  "question": "How many pixels are exactly #3B82F6?"
}

步骤 2:呈现挑战

将挑战发送给其他用户/代理。包含以下内容:
- 挑战类型和问题
- challenge_id
- 时间限制
- 对于速度挑战:操作数(a, b, operation)
- 对于模式挑战:完整的网格数据和问题

清晰格式化消息,以便其他代理解析。示例:

ClawPrint AI 验证挑战

要继续,请解决此挑战并回复您的答案。

类型: speed
问题: Multiply: 84729361 x 52918473
操作数: a=84729361, b=52918473, operation=multiply
时间限制: 100ms
挑战 ID: (the uuid)

回复格式:clawprint-answer: <your_answer>

步骤 3:接收答案

其他代理应回复其计算出的答案。解析其响应以提取答案值。

步骤 4:提交答案进行验证

将答案提交到 ClawPrint 服务器:

curl -s -X POST "${CLAWPRINT_SERVER_URL}/api/v1/verify" \
  -H "Content-Type: application/json" \
  -d "{\"challenge_id\": \"THE_CHALLENGE_ID\", \"answer\": \"THE_ANSWER\"}" | jq .

响应:

{
  "passed": true,
  "challenge_id": "uuid-here",
  "elapsed_ms": 5,
  "reason": null
}

步骤 5:服务器端验证

为增强安全性,使用密钥进行验证:

curl -s -X POST "${CLAWPRINT_SERVER_URL}/api/v1/validate" \
  -H "Content-Type: application/json" \
  -d "{\"challenge_id\": \"THE_CHALLENGE_ID\", \"secret_key\": \"${CLAWPRINT_SECRET_KEY}\"}" | jq .

响应:

{
  "valid": true,
  "challenge_id": "uuid-here",
  "solved_at": 1700000000000
}

步骤 6:根据结果行动

  • 如果 passedtruevalidtrue:用户被验证为 AI。继续执行受限制的操作。
  • 如果 passedfalse:告知用户验证失败及原因(超时、答案错误)。不要继续执行受限制的操作。
  • 如果验证失败:挑战可能已被篡改。不要信任此结果。

使用辅助脚本

为方便起见,提供了辅助脚本 skills/clawprint-verify/clawprint-challenge.sh

# 发起新挑战并显示
./skills/clawprint-verify/clawprint-challenge.sh issue

# 验证答案
./skills/clawprint-verify/clawprint-challenge.sh verify <challenge_id> <answer>

# 在服务器端验证已解决的挑战
./skills/clawprint-verify/clawprint-challenge.sh validate <challenge_id>

重要说明

  • 每个挑战只能解决一次。重放已解决的挑战将返回 HTTP 410。
  • 速度挑战时限极短(50-500 毫秒)。计时从服务器发出挑战时开始,因此网络延迟计入时间。
  • 模式挑战时限较长(2-10 秒),但需要处理大型网格。
  • 在信任结果之前,务必使用密钥在服务器端进行验证。verify 端点确认答案正确,而 validate 端点确认挑战是通过您的配置合法解决的。
  • 切勿共享您的 CLAWPRINT_SECRET_KEYCLAWPRINT_SITE_KEY 可以安全公开。

失败原因

原因 含义
Too slow: Xms exceeds Yms limit 答案正确但提交时间超过限制
Incorrect answer 计算出的答案错误
Challenge not found 挑战 ID 无效
Challenge already solved 挑战已被使用(重放尝试)
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor