代理身份协议

为AI代理提供加密身份生成、签名和验证功能的开源协议,确保代理行为的可追溯性和不可抵赖性。

  • by faalantir
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 faalantir/mcp-agent-identity

使用说明

代理身份协议(AIP)

AI代理的加密来源和归因的开放标准。

“特工目前是匿名的幽灵。AIP为他们提供了一个持久的、可验证的身份。”

🚀 问题

当人工智能代理(Claude、ChatGPT或自定义)试图与现实世界交互时,更新数据库、调用API或执行交易,接收系统会看到匿名请求。

  • 谁干的? (是支持机器人还是财务机器人?)
  • 它被篡改了吗? (路由器或中间商是否更改了提示?)
  • 我可以审计它吗? (我如何证明 哪个 代理人授权了这一行动?)

🛠 解决方案

代理身份协议(AIP) 是一个模型上下文协议(MCP)服务器,为AI代理提供本地安全的“钱包”。它使 归因 和 不可抵赖性 用于代理工作流。

核心能力

  1. 身份生成: 为代理创建持久加密密钥对(RSA-2048)。
  2. 加密签名: 允许代理使用其私钥对有效载荷(操作)进行签名。
  3. 验证: 为API提供了一种标准方法,用于根据公钥验证代理操作。

📦 安装

方法1:快速安装(Smithery)

最适合测试和快速使用。

⚠️ 注: 通过Smithery创建的身份是 临时的 (沙盒),重新启动Claude时将丢失,除非您配置了自定义路径(请参阅配置)。

npx -y @smithery/cli@latest install @faalantir/mcp-agent-identity --client claude  

方法2:开发人员安装(源代码)

最适合生产使用和持久身份存储。

# Clone the repository 

git clone https://github.com/faalantir/mcp-agent-identity.git

# Install dependencies 

cd mcp-agent-identity 
npm install && npm run build

然后将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "agent-identity": {
      "command": "node",
      "args": ["/ABSOLUTE/PATH/TO/mcp-agent-identity/dist/index.js"]
    }
  }
}

💾 配置和存储

默认情况下,服务器会尝试保存 identity.json 在您的项目文件夹中。如果它不能在那里写入(例如,在Smithery容器内),它将回退到系统临时目录(RAM/Temp)。

要强制为密钥设置永久位置,请执行以下操作: 更新您的 claude_desktop_config.json 随着 AGENT_IDENTITY_PATH 环境变量:

"agent-identity": {
  "command": "...",
  "args": ["..."],
  "env": {
    "AGENT_IDENTITY_PATH": "/Users/YOURNAME/Desktop/my-identity.json"
  }
}

📖 使用流程

安装后,您的代理将自动获得这些工具。您可以自然地提示它:

1.设置(一次)

用户: “为自己创建一个名为“FinanceBot”的永久身份。” 代理人: 呼叫 create_identity...

“身份已创建。我的公共ID是 MIIBIjAN... (我已经安全地存储了私钥)。"

2.检查身份

用户: “显示我的身份信息。” 代理人: 呼叫 get_identity...

“代理名称:FinanceBot位置:/Users/aarti/Desktop/my-identity.json公钥:…”

3.交易

用户: “请授权向爱丽丝转账50美元。” 代理人: 呼叫 sign_message...

“我已经签署了交易有效载荷。 签字: 7f8a9d... (可验证)”

4.验证(“银行”方面)

使用我们的 NPM SDK 要验证后端中的签名,请执行以下操作:

npm install @agent-identity/verify
import { verifyAgentIdentity } from "@agent-identity/verify"; 
const result = verifyAgentIdentity({ message: "pay 500", signature: "...", publicKey: "..." }); 
if (result.isValid) { // Proceed with transaction }

🗺 路线图和架构

我们被设计成与算法无关。虽然v0.1为了简单起见使用了本地文件,但该协议是为了将“签名引擎”替换为企业后端而构建的。

  • v0.1(电流): 本地RSA-2048密钥。自我主权身份。最适合内部工具、调试和审计日志。

  • v0.2(下一页): Ed25519支持(更小、更快的密钥)和DID(去中心化标识符)导出。

  • v0.3: 云密钥管理(AWS KMS/谷歌云HSM) 企业部署的集成。

  • v0.4: 硬件飞地/TPM支持 (芯片内部生成的密钥,从未暴露于操作系统)。

  • v1.0: “代理注册表”-一个集中目录,用于将公钥映射到经过验证的人类所有者(信任链)。

⚠️ 安全与限制

  • 自签名信任: 目前,代理生成自己的密钥。这将创建一个“自签名证书”模型。这对 归因 (知道 哪个 代理人做了X),但需要一个外部信任机制来处理高风险 授权.

  • 密钥存储: 密钥当前存储在 identity.json 在主机上。没有适当的文件权限,请勿在共享环境中使用此功能。

🤝 贡献

我们正在寻找贡献者来帮助构建Python和Go的验证SDK。


由代理身份工作组维护。