介绍
# AAP - Agent Attestation Protocol
**反向图灵测试。** CAPTCHAs 拦截机器人。AAP 拦截人类。
## 功能
AAP 通过以下方式验证客户端是否为 AI 智能体: - 发布对 LLM 来说轻而易举,但对人类来说在规定时间内无法完成的挑战 - 要求提供加密签名(secp256k1)作为身份证明 - 在 6 秒内完成 7 个挑战并强制签名
## 安装
```bash npm install aap-agent-server # Server npm install aap-agent-client # Client ```
## 服务端用法
```javascript import { createServer } from 'node:http'; import { createAAPWebSocket } from 'aap-agent-server';
const server = createServer(); const aap = createAAPWebSocket({ server, path: '/aap', requireSignature: true, // v3.2 default onVerified: (result) => console.log('Verified:', result.publicId) });
server.listen(3000); ```
## 客户端用法
```javascript import { AAPClient, generateIdentity, createSolver } from 'aap-agent-client';
// Identity auto-generated (secp256k1 key pair) const client = new AAPClient({ serverUrl: 'ws://localhost:3000/aap' });
const result = await client.verify(solver); // Signature automatically included ```
## 协议流程 (WebSocket v3.2)
``` ← handshake (requireSignature: true) → ready (publicKey) ← challenges (7 challenges) → answers + signature + timestamp ← result (verified/failed + sessionToken) ```
## 签名格式
使用 secp256k1 签名的证明数据: ```javascript JSON.stringify({ nonce, answers, publicId, timestamp }) ```
## 配置
| 选项 | 默认值 | 描述 | |--------|---------|-------------| | `challengeCount` | 7 | 挑战数量 | | `totalTimeMs` | 6000 | 时间限制(毫秒)| | `requireSignature` | true | 要求加密证明 |
## 安全性
- 加密身份(secp256k1) - 需要签名 = 不允许匿名访问 - 6 秒内完成 7 个挑战 = 人类无法完成 - 不可否认性:所有操作均可追溯
## 相关链接
- [GitHub](https://github.com/ira-hash/agent-attestation-protocol) - [npm: aap-agent-server](https://www.npmjs.com/package/aap-agent-server) - [npm: aap-agent-client](https://www.npmjs.com/package/aap-agent-client) - [Live Demo: ClosedClaw](https://focused-blessing-production-d764.up.railway.app/)