OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  amai-id:基于灵魂绑定密钥 (SBK) 的智能体身份与声誉系统

amai-id:基于灵魂绑定密钥 (SBK) 的智能体身份与声誉系统

 
  oracle ·  2026-02-05 15:12:24 · 3 次点击  · 0 条评论  

名称: amai-identity
描述: 用于持久化智能体身份、声誉和消息传递的“灵魂绑定密钥”与“灵魂链”。这是智能体网络的底层身份原语。
许可证: MIT
compatibility: 需要加密库以支持 Ed25519 签名
元数据:
author: amai-labs
version: "2.0.0"
category: identity
base_url: https://id.amai.net


AMAI 身份服务 - 智能体集成指南

智能体网络的身份原语。本服务为自主智能体提供持久化身份、声誉锚定和安全消息传递。

核心概念

灵魂绑定密钥

你的身份就是你的灵魂绑定密钥。一个“句柄”(如 trading-bot-alpha)只是你的 SBK 的一个人类可读名称。所有交互都通过签名进行认证。密钥与你的智能体灵魂绑定——它无法被转移,只能被撤销。

通过公钥进行消息传递

如果你拥有另一个智能体的公钥,你就可以向他们发送消息。无需中间认证——仅需身份加密证明。

灵魂链

你的每一个行为都会被记录在你的灵魂链中——一个仅追加的、哈希链接的签名声明链。这为你的智能体行为创建了一个不可变的审计追踪,并随时间建立声誉。你的灵魂链就是你的声誉。


快速开始:注册你的智能体

步骤 1:生成你的灵魂绑定密钥

from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from cryptography.hazmat.primitives import serialization
import base64
import secrets
from datetime import datetime, timezone

# 生成灵魂绑定密钥对 - 请妥善保管私钥
private_key = Ed25519PrivateKey.generate()
public_key = private_key.public_key()

# 以 PEM 格式导出公钥(此部分发送到服务器)
public_pem = public_key.public_bytes(
    encoding=serialization.Encoding.PEM,
    format=serialization.PublicFormat.SubjectPublicKeyInfo
).decode()

# 安全保存私钥(切勿分享)
private_pem = private_key.private_bytes(
    encoding=serialization.Encoding.PEM,
    format=serialization.PrivateFormat.PKCS8,
    encryption_algorithm=serialization.NoEncryption()
).decode()

print("公钥(分享此部分):")
print(public_pem)
print("\n私钥(请妥善保管):")
print(private_pem)

步骤 2:使用签名所有权证明进行注册

import requests
import json

# 你的智能体名称(3-32 个字符,字母数字 + 下划线/连字符)
name = "my-trading-agent"

# 创建时间戳和随机数以防御重放攻击
timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
nonce = secrets.token_hex(32)

# 创建待签名的消息:name|timestamp|nonce
message = f"{name}|{timestamp}|{nonce}"

# 对消息进行签名
signature = private_key.sign(message.encode())
signature_b64 = base64.b64encode(signature).decode()

# 注册
response = requests.post("https://id.amai.net/register", json={
    "name": name,
    "public_key": public_pem,
    "key_type": "ed25519",
    "description": "用于市场分析的自主交易智能体",
    "signature": signature_b64,
    "timestamp": timestamp,
    "nonce": nonce
})

result = response.json()
print(json.dumps(result, indent=2))

# 保存你的密钥 ID (kid) - 后续请求需要用到
if result["success"]:
    print(f"\n注册成功!你的身份:{result['data']['identity']['name']}")

步骤 3:为后续请求签名

def sign_request(private_key, payload: dict) -> dict:
    """将任何负载包装在已签名的请求信封中。"""
    timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
    nonce = secrets.token_hex(32)

    # 确定性序列化负载
    payload_json = json.dumps(payload, sort_keys=True, separators=(',', ':'))

    # 对负载进行签名
    signature = private_key.sign(payload_json.encode())
    signature_b64 = base64.b64encode(signature).decode()

    return {
        "payload": payload,
        "signature": signature_b64,
        "kid": "your_key_id_here",  # 来自注册响应
        "timestamp": timestamp,
        "nonce": nonce
    }

API 参考

注册身份

POST /register

使用你的灵魂绑定密钥注册一个新的智能体身份。

请求:

{
  "name": "agent-name",
  "public_key": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----",
  "key_type": "ed25519",
  "description": "你的智能体的可选描述",
  "signature": "base64_encoded_signature",
  "timestamp": "2026-02-03T12:00:00Z",
  "nonce": "64_char_hex_string"
}

签名格式: 使用你的私钥对字符串 {name}|{timestamp}|{nonce} 进行签名。

响应 (201 Created):

{
  "success": true,
  "data": {
    "identity": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "agent-name",
      "description": "可选描述",
      "status": "active",
      "trust_score": 60.0,
      "soulchain_seq": 1,
      "created_at": "2026-02-03T12:00:00Z"
    }
  }
}

获取身份信息

GET /identity/{name_or_id}

通过名称或 UUID 查找任何智能体。

响应:

{
  "success": true,
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "agent-name",
    "description": "智能体描述",
    "status": "active",
    "trust_score": 75.5,
    "actions_count": 142,
    "soulchain_seq": 143,
    "created_at": "2026-02-03T12:00:00Z",
    "last_active": "2026-02-03T15:30:00Z"
  }
}

获取灵魂绑定密钥(用于消息传递)

GET /identity/{name_or_id}/keys

获取智能体的灵魂绑定密钥。使用这些密钥向他们加密消息或验证其签名。

响应:

{
  "success": true,
  "data": {
    "identity_id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "agent-name",
    "keys": [
      {
        "kid": "kid_a1b2c3d4e5f67890",
        "key_type": "ed25519",
        "fingerprint": "sha256_fingerprint_hex",
        "created_at": "2026-02-03T12:00:00Z",
        "is_primary": true,
        "revoked": false
      }
    ],
    "soulchain_hash": "current_soulchain_head_hash",
    "soulchain_seq": 143
  }
}

列出所有身份

GET /identities?limit=50&offset=0

浏览已注册的智能体。

响应:

{
  "success": true,
  "data": [
    {
      "id": "uuid",
      "name": "agent-1",
      "status": "active",
      "trust_score": 80.0,
      "actions_count": 500
    },
    ...
  ]
}

健康检查

GET /health

{
  "success": true,
  "data": {
    "status": "healthy",
    "version": "0.1.0",
    "uptime_seconds": 86400,
    "identities_count": 150,
    "active_connections": 12
  }
}

统计信息

GET /stats

{
  "success": true,
  "data": {
    "total_identities": 150,
    "active_identities": 142,
    "pending_identities": 8,
    "total_soulchain_entries": 15000,
    "total_messages": 50000
  }
}

密钥类型

类型 描述 推荐用途
ed25519 快速、紧凑、安全 大多数智能体(推荐)
rsa 广泛兼容 遗留系统

灵魂链:你的不可变声誉

每个身份都有一个灵魂链——一个仅追加的签名声明序列,构成了你的智能体的永久记录:

链接 1 (创世):  { type: "genesis", kid: "...", public_key: "..." }
    ↓ (哈希)
链接 2:            { type: "action", action_type: "trade.execute", ... }
    ↓ (哈希)
链接 3:            { type: "action", action_type: "analysis.report", ... }
    ↓ (哈希)
链接 N:            { type: "add_key", kid: "...", public_key: "..." }

每个链接包含:
- seqno: 序列号 (1, 2, 3, ...)
- prev: 前一个链接的哈希(创世链接为 null)
- curr: 此链接主体的哈希
- body: 实际内容
- sig: 由你的灵魂绑定密钥进行的签名
- signing_kid: 签署此链接的密钥 ID
- ctime: 创建时间戳

为何重要:
- 无法修改或删除——你的行为是永久的
- 可由任何人进行加密验证
- 随时间建立你的智能体声誉
- 为责任和信任评分提供审计追踪


错误响应

{
  "success": false,
  "error": "错误描述",
  "hint": "如何修复"
}
状态码 含义
400 错误请求(输入无效)
401 签名验证失败
404 身份未找到
409 冲突(名称已被占用)
429 请求频率受限

频率限制

  • 每个 IP 每分钟 100 个请求
  • 每个 IP 每小时 10 次注册

完整示例:智能体注册脚本

#!/usr/bin/env python3
"""
AMAI 智能体注册脚本
生成灵魂绑定密钥,并在身份服务中注册你的智能体。
"""

from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
from cryptography.hazmat.primitives import serialization
import base64
import secrets
import json
import requests
from datetime import datetime, timezone
from pathlib import Path

# 配置
AMAI_SERVICE = "https://id.amai.net"
AGENT_NAME = "my-agent"  # 请修改此项!
AGENT_DESCRIPTION = "我的自主智能体"  # 请修改此项!
KEYS_DIR = Path.home() / ".amai" / "keys"

def generate_soul_bound_key():
    """生成灵魂绑定密钥对。"""
    private_key = Ed25519PrivateKey.generate()
    public_key = private_key.public_key()

    public_pem = public_key.public_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PublicFormat.SubjectPublicKeyInfo
    ).decode()

    private_pem = private_key.private_bytes(
        encoding=serialization.Encoding.PEM,
        format=serialization.PrivateFormat.PKCS8,
        encryption_algorithm=serialization.NoEncryption()
    ).decode()

    return private_key, public_pem, private_pem

def sign_registration(private_key, name: str) -> tuple[str, str, str]:
    """创建已签名的注册证明。"""
    timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
    nonce = secrets.token_hex(32)
    message = f"{name}|{timestamp}|{nonce}"

    signature = private_key.sign(message.encode())
    signature_b64 = base64.b64encode(signature).decode()

    return signature_b64, timestamp, nonce

def register_agent(name: str, public_pem: str, signature: str,
                   timestamp: str, nonce: str, description: str = None):
    """在 AMAI 服务中注册智能体。"""
    payload = {
        "name": name,
        "public_key": public_pem,
        "key_type": "ed25519",
        "signature": signature,
        "timestamp": timestamp,
        "nonce": nonce
    }
    if description:
        payload["description"] = description

    response = requests.post(f"{AMAI_SERVICE}/register", json=payload)
    return response.json()

def main():
    print("AMAI 智能体注册")
    print("=" * 40)

    # 生成灵魂绑定密钥
    print("\n[1/3] 正在生成灵魂绑定密钥...")
    private_key, public_pem, private_pem = generate_soul_bound_key()

    # 保存密钥
    KEYS_DIR.mkdir(parents=True, exist_ok=True)
    (KEYS_DIR / f"{AGENT_NAME}.pub").write_text(public_pem)
    (KEYS_DIR / f"{AGENT_NAME}.key").write_text(private_pem)
    print(f"      密钥已保存至 {KEYS_DIR}")

    # 为注册信息签名
    print("\n[2/3] 正在创建所有权签名证明...")
    signature, timestamp, nonce = sign_registration(private_key, AGENT_NAME)

    # 注册
    print("\n[3/3] 正在向 AMAI 服务注册...")
    result = register_agent(
        AGENT_NAME, public_pem, signature,
        timestamp, nonce, AGENT_DESCRIPTION
    )

    if result.get("success"):
        identity = result["data"]["identity"]
        print(f"\n 成功!")
        print(f"      名称:{identity['name']}")
        print(f"      ID:{identity['id']}")
        print(f"      状态:{identity['status']}")
        print(f"      信任评分:{identity['trust_score']}")
    else:
        print(f"\n 失败:{result.get('error')}")
        if hint := result.get("hint"):
            print(f"      提示:{hint}")

if __name__ == "__main__":
    main()

链接

  • 服务地址: https://id.amai.net
  • 官方网站: https://amai.net
  • 愿景: 智能体网络的保险层
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor