Token导航 LogoToken导航TokenDH.com
Agent Id Python logo
AI代理stdio官方级别未说明来源级核验

Agent Id Python

MCP Server

Open Agent ID的Python SDK,用于使用V2协议签名和验证AI代理身份。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
AI代理PythonCursor区块链Cursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

open-agent-id

提供方

open-agent-id

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install open-agent-id

详细介绍

开放代理id

Python SDK 打开代理ID --使用V2协议对AI代理身份进行签名和验证。

安装

pip install open-agent-id

或用于开发:

pip install -e ".[dev]"

快速开始

最常见的用例是向出站请求添加代理身份验证标头:

from agent_id import sign_agent_auth

headers = sign_agent_auth(
    "did:oaid:base:0x1234567890abcdef1234567890abcdef12345678",
    private_key,  # 32-byte Ed25519 seed
)
# Returns dict with:
#   "X-Agent-DID":       "did:oaid:base:0x1234..."
#   "X-Agent-Timestamp": "1708123456"
#   "X-Agent-Nonce":     "a3f1b2c4d5e6f7089012abcd"
#   "X-Agent-Signature": ""

import httpx
resp = httpx.post("https://api.example.com/v1/tasks", headers=headers, json={"task": "search"})

注册表客户端

from agent_id import RegistryClient

client = RegistryClient()  # defaults to https://api.openagentid.org

所有方法

方法需要授权描述
client.request_challenge(wallet_address)请求钱包身份验证挑战
client.verify_wallet(wallet_address, challenge_id, signature)验证钱包签名,返回身份验证令牌
client.register_agent(token, name, public_key, capabilities=None)注册新代理
client.get_agent(did)通过DID查找代理
client.list_agents(token, limit=20, cursor=None)列出经过身份验证的钱包所拥有的代理
client.update_agent(did, token=None, agent_signer=None, **updates)更新代理元数据
client.revoke_agent(did, token)撤销代理身份
client.rotate_key(did, token, public_key)旋转代理的公钥
client.deploy_wallet(did, token)为代理部署链上智能钱包
client.get_credit(did)查询代理人的信用评分
client.verify_signature(did, domain, payload, signature)根据代理的注册密钥验证签名

钱包身份验证流程

# 1. Request challenge
challenge = await client.request_challenge(wallet_address)

# 2. Sign the challenge text with your wallet (e.g. via web3.py)
# wallet_signature = ...

# 3. Verify and get auth token
token = await client.verify_wallet(wallet_address, challenge["challenge_id"], wallet_signature)

注册代理

agent = await client.register_agent(
    token,
    name="my-agent",
    public_key=base64url_public_key,
    capabilities=["search", "summarize"],
)

查找并列出代理商

info = await client.get_agent("did:oaid:base:0x1234...")
agents = await client.list_agents(token)

管理代理

await client.update_agent(did, token=token, name="new-name")
await client.rotate_key(did, token, new_public_key)
await client.revoke_agent(did, token)
await client.deploy_wallet(did, token)

信用评分

credit = await client.get_credit("did:oaid:base:0x1234567890abcdef1234567890abcdef12345678")
print(credit["credit_score"])  # 300
print(credit["level"])         # "verified"

HTTP签名

签署HTTP请求

from agent_id import sign_http_request, verify_http_signature

headers = sign_http_request(
    private_key,
    method="POST",
    url="https://api.example.com/v1/tasks",
    body=b'{"task":"search"}',
)
# headers: X-Agent-Timestamp, X-Agent-Nonce, X-Agent-Signature

验证HTTP签名

valid = verify_http_signature(
    public_key, method="POST", url=url, body=body,
    timestamp=timestamp, nonce=nonce, signature=signature,
)

使用Signer守护进程进行异步签名

from agent_id import sign_http_request_async, Signer

signer = Signer(socket_path="/tmp/oaid-signer.sock")
headers = await sign_http_request_async(
    signer, method="GET", url="https://api.example.com/data", body=None, key_id="key-1"
)

消息签名

签署P2P消息

from agent_id import sign_message, verify_message_signature

signature = sign_message(
    private_key,
    msg_type="request",
    msg_id="msg-001",
    from_did="did:oaid:base:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    to_dids=["did:oaid:base:0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"],
    ref=None,
    timestamp=None,  # auto-generated
    expires_at=None,
    body={"task": "summarize", "url": "https://example.com"},
)

异步消息签名

from agent_id import sign_message_async

sig = await sign_message_async(
    signer, msg_type="request", msg_id="msg-002",
    from_did="did:oaid:base:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    to_dids=["did:oaid:base:0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"],
    ref=None, timestamp=None, expires_at=None, body={"hello": "world"}, key_id="key-1",
)

E2E加密

from agent_id import encrypt_for, decrypt_from

# Encrypt a message for another agent (NaCl box: X25519-XSalsa20-Poly1305)
ciphertext = encrypt_for(
    b"secret message",
    recipient_public_key,  # 32-byte Ed25519 public key
    sender_private_key,    # 32-byte Ed25519 seed
)

# Recipient decrypts
plaintext = decrypt_from(ciphertext, sender_public_key, recipient_private_key)

DID实用程序

from agent_id import validate_did, parse_did, format_did

validate_did("did:oaid:base-sepolia:0x1234567890abcdef1234567890abcdef12345678")  # True

method, chain, address = parse_did("did:oaid:base:0x1234567890abcdef1234567890abcdef12345678")
# ("oaid", "base", "0x1234...")

did = format_did("base", "0x1234567890abcdef1234567890abcdef12345678")

测试

pip install -e ".[dev]"
pytest

许可证

Apache-2.0--参见 许可证.

目录标签

目录标签

AI代理PythonCursor区块链本地部署身份验证加密通信DID

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP