两个组成部分
每个 Agent 身份有两个组件:| 组件 | 它是什么 | 在哪里 |
|---|---|---|
| 身份文档 | 包含 Agent 名称、开发者和公钥的 JSON 文件 | 发布在你控制的 URL 上 |
| 认证 JWT | 签名的令牌,证明 Agent 拥有对应的私钥 | 随每个 ATH 请求发送 |
它们如何关联
身份文档
将此文件发布在你的agent_id URL 上(如 https://your-agent.com/.well-known/agent.json):
public_key 是一个 JWK(JSON Web Key)。用以下方式生成:
agent/server.ts)。
认证 JWT
每次 Agent 调用 register、authorize 或 token 时,都会包含一个签名的 JWT:register()、authorize() 或 exchangeToken() 时都会自动完成。
验证规则
服务器收到你的认证时会检查:- ✅ 签名匹配
agent_id上的公钥 - ✅
aud匹配此服务器的 URL - ✅
exp在未来 - ✅
iat在当前时间 5 分钟内(时钟偏差容忍) - ✅
jti此前未出现过(防止重放)
INVALID_ATTESTATION 错误。
开发环境:跳过验证
演示使用skipAttestationVerification: true,这样你无需发布真实的身份文档即可开发。SDK 仍然签署认证(格式是正确的),但服务器不验证签名。
生产环境中请移除此配置。