OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  nervepay:NervePay 完整协议栈——集成身份认证与数据分析

nervepay:NervePay 完整协议栈——集成身份认证与数据分析

 
  transaction ·  2026-02-24 12:48:43 · 2 次点击  · 0 条评论  

名称: nervepay
描述: 完整的 NervePay 栈 - 身份 + 分析。注册 DID,使用 Ed25519 签名请求,追踪所有 API 使用情况,建立信誉。
元数据: {"openclaw":{"emoji":"🔐","requires":{"bins":["node","curl"],"env":["NERVEPAY_DID","NERVEPAY_PRIVATE_KEY"]},"primaryEnv":"NERVEPAY_PRIVATE_KEY"}}


NervePay — 智能体使用指南

你是一个拥有 NervePay 身份的 AI 智能体。此技能提供完整的 NervePay 栈:身份认证 + 分析。证明你是谁(通过加密方式)并追踪你做了什么(分析/信誉)。

功能概述

  • 注册你的身份:为你创建一个唯一的 DID(去中心化标识符)
  • 身份验证:使用 Ed25519 对请求签名,让 API 提供方确认是你本人
  • 追踪你的工作:上报每一次外部 API 调用以建立信誉
  • 建立信任:你经过验证的使用历史证明你的合法性

可用模块化技能

这是完整栈。你也可以使用独立技能:
- nervepay-identity - 仅身份功能(注册、认证,无分析)
- nervepay-analytics - 仅分析功能(追踪,需要已有身份)
- nervepay - 本技能(完整身份 + 分析)

更新此技能

要获取此技能的最新版本(包含新功能、错误修复、更新的端点):

# 更新技能文档
curl -o SKILL.md https://nervepay.xyz/skill.md

# 更新辅助脚本
curl -o nervepay-request.mjs https://nervepay.xyz/nervepay-request.mjs
curl -o nervepay-track.mjs https://nervepay.xyz/nervepay-track.mjs
curl -o nervepay-instrument.mjs https://nervepay.xyz/nervepay-instrument.mjs
chmod +x nervepay-request.mjs nervepay-track.mjs nervepay-instrument.mjs

何时更新:如果你遇到意外错误、提及了新端点,或者距离上次更新已有一段时间。

步骤 1:确保辅助脚本可用

NervePay 辅助脚本应已随此技能打包。如果缺失,请下载:

# 检查脚本是否存在,仅下载缺失的
for script in nervepay-request.mjs nervepay-track.mjs nervepay-instrument.mjs; do
  if [ ! -f "$script" ]; then
    echo "正在下载 $script..."
    curl -o "$script" "https://nervepay.xyz/$script"
    chmod +x "$script"
  fi
done

这些脚本为你处理 Ed25519 签名和分析追踪。它们位于与此 SKILL.md 文件相同的目录中。

步骤 2:获取你的身份

如果你没有 NERVEPAY_DIDNERVEPAY_PRIVATE_KEY 环境变量,请先注册:

curl -X POST https://api.nervepay.xyz/v1/agent-identity/register-pending \
  -H "Content-Type: application/json" \
  -d '{
    "name": "你的智能体名称",
    "description": "你的功能描述"
  }'

从响应中保存以下信息:
- did → 设置为 NERVEPAY_DID
- private_key → 设置为 NERVEPAY_PRIVATE_KEY
- mnemonic → 用于恢复的备份助记词(24 个单词)
- claim_url → 交给你的所有者以认领你

你可以立即开始身份验证。所有者认领(通过 claim_url)是可选的,但建议进行以获得更好的信任评分。

发起身份验证请求

使用辅助脚本签名并发送请求:

# 身份验证的 GET 请求
node ./nervepay-request.mjs GET /v1/agent-identity/whoami

# 身份验证的 POST 请求
node ./nervepay-request.mjs POST /v1/agent-identity/track-service '{"service_name":"openai","endpoint":"/v1/chat/completions","success":true}'

脚本会自动处理 Ed25519 签名。它会从环境中读取 NERVEPAY_DIDNERVEPAY_PRIVATE_KEYNERVEPAY_API_URL(默认:https://api.nervepay.xyz)。

⚠️ 强制要求:追踪外部 API 使用 ⚠️

你必须追踪每一次外部 API 调用。这不是可选项。

每次你调用 OpenAI、Stripe、GitHub、天气 API 或任何外部服务时,都必须立即向 NervePay 上报。这是此技能的核心目的。

快速追踪(最简单)

在每次外部调用后立即使用简化的追踪助手:

# 最简 - 仅服务、端点和成功/失败状态
node ./nervepay-track.mjs openai /v1/chat/completions success

# 包含响应时间
node ./nervepay-track.mjs openai /v1/chat/completions success 1250

# 包含成本
node ./nervepay-track.mjs stripe /v1/charges success 850 10.00

完整追踪(更多细节)

进行包含所有字段的完整追踪:

node ./nervepay-request.mjs POST /v1/agent-identity/track-service '{
  "service_name": "openai",
  "endpoint": "/v1/chat/completions",
  "method": "POST",
  "success": true,
  "response_time_ms": 1250,
  "amount": "0.05",
  "currency": "USD"
}'

示例工作流(请遵循)

# 1. 调用外部 API
response=$(curl https://api.openai.com/v1/chat/completions ...)

# 2. 立即追踪它(别忘了!)
node ./nervepay-track.mjs openai /v1/chat/completions success

# 3. 继续你的工作
echo "$response"

为什么追踪是强制的:
- 建立你的信誉评分(证明你的合法性)
- 向 API 提供方展示你经过验证的使用历史
- 跨所有服务追踪成本和成功率
- 这正是 NervePay 存在的意义——没有追踪,你就没有使用它

记住:在调用后立即追踪,不要等到以后。养成习惯。

🚀 自动追踪(推荐给“懒”智能体)

厌倦了要记住追踪? 使用自动插桩——它会自动拦截所有 HTTP 调用!

自动插桩如何工作

nervepay-instrument.mjs 脚本通过猴子补丁(monkey-patch)修改了 Node.js 的 fetch()http.request()https.request(),以自动追踪每一次外部 API 调用。无需更改任何代码!

设置:加载插桩

选项 1:命令行标志(推荐)

node --import ./nervepay-instrument.mjs your-agent.js

选项 2:环境变量(全局)

export NODE_OPTIONS="--import /path/to/nervepay-instrument.mjs"
node your-agent.js

选项 3:编程方式(在你的代码中)

// 在你的入口文件最顶部
import './nervepay-skill/nervepay-instrument.mjs';

// 现在所有 HTTP 调用都会被自动追踪!
await fetch('https://api.openai.com/...');  // 自动追踪

自动追踪的内容

✅ 所有到外部 API 的 fetch() 调用
✅ 所有 http.request()https.request() 调用
✅ 成功/失败状态
✅ 响应时间(毫秒)
✅ HTTP 状态码

追踪:对 NervePay 自身的调用(避免无限循环)
追踪:localhost / 内部 IP(192.168.x.x, 10.x.x.x)

禁用自动追踪

export NERVEPAY_AUTO_TRACK=false

示例

# 设置你的凭证
export NERVEPAY_DID="your-did"
export NERVEPAY_PRIVATE_KEY="your-key"

# 使用自动插桩运行你的智能体
node --import ./nervepay-instrument.mjs your-agent.js

# 现在 your-agent.js 中的所有 HTTP 调用都会被自动追踪!

结论:有了自动插桩,你不可能忘记追踪。它会自动发生。🎉

与 OpenClaw 网关配对(ClawBot 自动配置)

如果你是像 ClawBot 这样管理 OpenClaw 网关实例的智能体,你可以使用 NervePay 的配对流程自动配置网关。

前提条件

你必须先拥有一个 NervePay 身份! 在配对之前,请完成上面的“设置:获取你的身份”部分进行注册并获取你的 NERVEPAY_DIDNERVEPAY_PRIVATE_KEY

推荐:在配对网关之前,让你的所有者通过 claim_url 认领你,以获得更好的信任评分。

配对工作原理

  1. 首次:注册你的智能体身份,并可选地让所有者认领
  2. 用户在 NervePay 仪表板中生成配对码(10 分钟过期)
  3. 你使用智能体 DID(Ed25519 签名)进行身份验证并发送网关详情
  4. NervePay 存储加密的网关令牌并将其链接到你的 DID
  5. 只有你可以稍后刷新令牌(通过你的 DID 验证)

步骤 1:获取网关令牌

在配对之前,你需要网关的令牌。OpenClaw 网关通过其配置 API 暴露此令牌:

# 查询网关获取其令牌(使用任何能访问到网关的 URL)
GATEWAY_CONFIG=$(curl -s http://localhost:18789/v1/config)
GATEWAY_TOKEN=$(echo "$GATEWAY_CONFIG" | jq -r '.gateway_token')

步骤 2:确定公共网关 URL

关键:你发送给 NervePay 的 gateway_url 必须是 NervePay 服务器可公开访问的。不要使用 localhost127.0.0.1 或内部 IP。

询问你的所有者:“这个网关的公共 URL 是什么?”

常见选项:
- 反向代理https://gateway.yourdomain.com
- Tailscalehttps://hostname.tailnet-name.ts.net:18789
- 公共 IPhttps://your-public-ip:18789
- Ngrok/隧道https://abc123.ngrok.io

一旦你的所有者提供了公共 URL,将其存储为 GATEWAY_URL

步骤 3:完成配对

当你的所有者告诉你“连接到 nervepay [CODE]”时:

# 1. 根据用户输入设置
PAIRING_CODE="ABC123"  # 来自用户
GATEWAY_URL="https://gateway.example.com"  # 来自所有者(步骤 2)
GATEWAY_NAME="我的网关"  # 可选,默认为 "ClawBot Gateway (CODE)"
# GATEWAY_TOKEN 已在步骤 1 中提取

# 2. 发送配对请求(使用你的智能体 DID 进行身份验证)
node ./nervepay-request.mjs POST /v1/integrations/openclaw/pairing/complete "{
  \"pairing_code\": \"$PAIRING_CODE\",
  \"gateway_url\": \"$GATEWAY_URL\",
  \"gateway_token\": \"$GATEWAY_TOKEN\",
  \"gateway_name\": \"$GATEWAY_NAME\",
  \"max_concurrent_agents\": 8,
  \"default_timeout_seconds\": 3600
}"

成功响应:

{
  "gateway_id": "uuid-here",
  "gateway_name": "我的网关",
  "status": "completed",
  "message": "网关 '我的网关' 已成功与智能体 did:nervepay:agent:xyz 配对"
}

刷新网关令牌

当你的 OpenClaw 网关令牌轮换时,推送新令牌:

GATEWAY_ID="gateway-uuid-from-pairing"
NEW_TOKEN="new-gateway-bearer-token"

node ./nervepay-request.mjs POST /v1/integrations/openclaw/gateways/$GATEWAY_ID/refresh-token '{
  "new_token": "'$NEW_TOKEN'"
}'

安全性:NervePay 会验证你是最初配对网关的智能体(检查 linked_agent_did)。只有你可以刷新此网关的令牌。

为什么需要配对?

  • 零手动设置(用户只需提供一个代码)
  • 加密身份验证证明你控制着网关
  • 令牌加密保护网关凭证安全(AES-256-GCM)
  • 自动过期检测如果网关返回 401,NervePay 会将令牌标记为过期
  • 信任:你经过验证的 DID 证明网关由你管理

管理智能体密钥(安全保险库)

你的所有者可以在 NervePay 仪表板中为你配置密钥(如 API 密钥、凭证、令牌)。然后你可以在需要时安全地检索这些密钥——非常适合存储 OpenAI 密钥、数据库密码或任何敏感凭证。

保险库工作原理

  • 按智能体隔离:每个智能体只能看到自己的密钥(通过你的 DID 签名验证)
  • 信封加密:密钥在静态时使用 AES-256-GCM 加密
  • 审计日志:每次密钥访问都会被记录以确保安全
  • 环境支持:密钥可以限定在生产、开发或预发布环境

按名称检索密钥

最常见的操作——通过名称获取特定密钥:

# 获取你的 OpenAI API 密钥
node ./nervepay-request.mjs GET /v1/vault/secrets/OPENAI_API_KEY

# 获取你的数据库密码
node ./nervepay-request.mjs GET /v1/vault/secrets/DATABASE_PASSWORD

响应:

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "OPENAI_API_KEY",
  "value": "sk-abc123...",
  "description": "用于生产的 OpenAI API 密钥",
  "provider": "openai",
  "environment": "production",
  "created_at": "2026-02-05T12:00:00Z",
  "updated_at": "2026-02-05T12:00:00Z",
  "expires_at": null
}

在你的工作流中使用:

# 1. 检索你的 OpenAI 密钥
response=$(node ./nervepay-request.mjs GET /v1/vault/secrets/OPENAI_API_KEY)
OPENAI_KEY=$(echo "$response" | jq -r '.value')

# 2. 在你的 API 调用中使用它
curl https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_KEY" \
  -d '{"model":"gpt-4","messages":[...]}'

# 3. 追踪使用情况(强制!)
node ./nervepay-track.mjs openai /v1/chat/completions success

列出所有密钥

查看为你配置的所有密钥(出于安全考虑,列表视图中不包含值):

node ./nervepay-request.mjs GET /v1/vault/secrets

响应:

{
  "secrets": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "OPENAI_API_KEY",
      "description": "用于生产的 OpenAI API 密钥",
      "provider": "openai",
      "environment": "production",
      "created_at": "2026-02-05T12:00:00Z",
      "updated_at": "2026-02-05T12:00:00Z",
      "expires_at": null
    },
    {
      "id": "660e8400-e29b-41d4-a716-446655440001",
      "name": "STRIPE_SECRET_KEY",
      "description": "Stripe 密钥",
      "provider": "stripe",
      "environment": "production",
      "created_at": "2026-02-05T12:00:00Z",
      "updated_at": "2026-02-05T12:00:00Z",
      "expires_at": null
    }
  ]
}

按环境过滤

# 仅生产环境密钥
node ./nervepay-request.mjs GET '/v1/vault/secrets?environment=production'

# 仅开发环境密钥
node ./nervepay-request.mjs GET '/v1/vault/secrets?environment=development'

按提供方过滤

# 仅 OpenAI 密钥
node ./nervepay-request.mjs GET '/v1/vault/secrets?provider=openai'

# 仅 Stripe 密钥
node ./nervepay-request.mjs GET '/v1/vault/secrets?provider=stripe'

当密钥不存在时

如果你尝试访问一个不存在的密钥:

node ./nervepay-request.mjs GET /v1/vault/secrets/NONEXISTENT_KEY

响应(404):

{
  "error": "未找到密钥",
  "message": "未找到智能体 did:nervepay:agent:abc123xyz 的密钥 'NONEXISTENT_KEY'"
}

该怎么做:请你的所有者在 NervePay 仪表板中创建该密钥,地址为 https://nervepay.xyz/dashboard/agent-identities

安全说明

  • 你的所有者配置密钥:你无法自己创建/更新/删除密钥——只能检索它们。这可以防止被入侵的智能体修改凭证。
  • 仅限仪表板管理:密钥由你的所有者在 NervePay 仪表板中创建和更新。
  • 需要签名:每次密钥检索都需要 Ed25519 签名身份验证。
  • 审计追踪:每次访问
2 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor