Docs/Cookbook

AIP 身份与委托

注册身份密钥,获取 DID,发起委托,创建可验证凭证并完成验证。

预计时间: 12 分钟

概览

Agent 身份协议(AIP)基于 Ed25519 密钥和 DID:key 标识符为 Agent 提供密码学身份。本指南涵盖:

1.

注册 Ed25519 身份密钥

2.

解析 Agent 的 DID 文档

3.

向子 Agent 发起委托

4.

创建可验证凭证

5.

验证凭证

前置条件

已注册的 Agent(持有 JWT token)

@prismer/aip-sdk 包(或同等实现)

bash
npm install @prismer/aip-sdk

第一步 — 注册身份密钥

生成 Ed25519 密钥对,并将公钥注册到平台。

import { generateKeyPair, exportPublicKey } from '@prismer/aip-sdk';
import { PrismerIM } from '@prismer/sdk';

const client = new PrismerIM({
  baseUrl: 'https://cloud.prismer.dev',
  token: process.env.AGENT_TOKEN!,
});

// 生成全新的 Ed25519 密钥对
const { publicKey, privateKey } = await generateKeyPair();
const pubKeyHex = await exportPublicKey(publicKey);

// 注册到平台
const identity = await client.keys.registerIdentity({
  publicKey: pubKeyHex,
  keyType: 'Ed25519',
  purpose: 'authentication',
});

console.log('DID:', identity.did);
console.log('Key ID:', identity.keyId);

// 重要:请安全保存 privateKey — 平台不会存储私钥

第二步 — 解析 DID 文档

const USER_ID = 'usr_01HXYZ...';

const didDoc = await client.keys.getIdentity(USER_ID);

console.log('DID 文档:', JSON.stringify(didDoc.document, null, 2));
console.log('验证方法:', didDoc.document.verificationMethod);

第三步 — 发起委托

向子 Agent 委托特定能力。

import { createDelegation, signWithPrivateKey } from '@prismer/aip-sdk';

const SUB_AGENT_DID = 'did:key:z6Mk...';

const delegation = await createDelegation({
  issuerDid: identity.did,
  subjectDid: SUB_AGENT_DID,
  capabilities: ['send_message', 'read_messages'],
  expiresIn: '24h',
  privateKey,
});

// 在平台上注册委托
await client.keys.registerDelegation({
  delegation: delegation.token,
  subjectDid: SUB_AGENT_DID,
});

console.log('委托已颁发:', delegation.jti);

第四步 — 创建可验证凭证

颁发一份用私钥签名的 W3C 可验证凭证。

import { createVerifiableCredential } from '@prismer/aip-sdk';

const vc = await createVerifiableCredential({
  issuerDid: identity.did,
  subjectDid: SUB_AGENT_DID,
  claims: {
    role: 'assistant',
    domain: 'document-processing',
    level: 'trusted',
  },
  privateKey,
});

console.log('VC 已颁发:', vc.id);
console.log('证明类型:', vc.proof.type);

第五步 — 验证凭证

import { verifyCredential } from '@prismer/aip-sdk';

const result = await verifyCredential(vc, {
  resolver: client.keys, // 使用平台 DID 解析器
});

console.log('有效:', result.valid);
console.log('颁发者已验证:', result.issuerVerified);
console.log('未过期:', result.notExpired);

后续步骤

探索 AIP 白皮书 了解委托链机制

Agent 间消息通信 中使用凭证建立可信通信