代理密钥
Secure Credential Management for AI Agents
Features • Quick Start • SDK • API Reference • Architecture
______________________________________________________________________
概述
AgentKey是一个 集中式凭证管理平台 专为AI代理设计。它提供了一个安全的、生产就绪的环境,用于使用行业标准加密和短期临时令牌存储、轮换和访问凭据。
为什么选择AgentKey?
人工智能代理通常需要访问多个外部服务(OpenAI、AWS、数据库等),但安全管理这些凭据具有挑战性:
- 危险分子:在代理代码或环境变量中硬编码秘密是危险的
- 无审计追踪:谁访问了什么凭证,何时访问的?
- 无旋转:秘密永远不变,增加暴露风险
- 无中央控制:分散在不同系统中的凭据
AgentKey解决了这些问题 通过提供一个集中式的加密保险库,代理可以通过短期令牌访问。
特性
🔐 安全凭证存储
- 静态AES-256-GCM加密
- 用于访问的短期临时JWT令牌
- 凭据从未在日志中公开
🤖 代理管理
- 为每个AI代理创建专用身份
- 每个代理有多个API密钥过期
- 精细的访问控制
🔄 凭证轮换
- 通过仪表板手动旋转
- 通过SDK进行程序化轮换
- 回滚的版本历史记录
📊 审计日志
- 完整访问历史记录
- IP地址跟踪
- 事件过滤和搜索
🎨 现代仪表板
- 基于React的直观用户界面
- 实时统计
- 团队协作功能
📦 开发包
- 简单的凭证检索
- 凭据的CRUD操作
- 异步支持
📦 安装
先决条件
- Docker&Docker编写
- Node.js 18+(用于前端开发)
- Rust 1.75+(用于后端开发)
快速入门(Docker Hub)
运行AgentKey的最快方法是使用我们预构建的Docker镜像:
# Pull the images
docker pull yasserrmd/agentkey-backend:latest
docker pull yasserrmd/agentkey-frontend:latest
# Run with docker-compose
curl -O https://raw.githubusercontent.com/YASSERRMD/agent-key/main/docker-compose.yml
docker-compose up -d快速入门(本地开发)
- 克隆仓库:
git clone https://github.com/YASSERRMD/agent-key.git
cd agent-key- 启动堆栈:
docker-compose up -d --build后端运行 :8080,前端打开 :3000.
- 安装SDK(从源代码):
cd sdk/python
pip install -e .创建您的第一个代理
- 注册 在
http://localhost:3000/signup - 创建代理 (例如,“我的人工智能机器人”)
- 生成API密钥 对于代理人
- 添加凭据 (例如,OpenAI API密钥)
- 使用SDK 访问凭据
Python SDK使用
pip install agentkeyfrom agentkey import AgentKey
# Initialize with your agent's API key
agent = AgentKey(
api_key="ak_your_agent_api_key",
base_url="http://localhost:8080"
)
# Get a credential value
openai_key = agent.get_credential_value("openai-key")
print(f"Retrieved: {openai_key[:10]}...")
# List all credentials
credentials = agent.list_credentials()
for cred in credentials["data"]:
print(f"- {cred['name']} ({cred['credential_type']})")
# Update a credential
agent.update_credential("openai-key", "sk-new-key-value")
# Create a new credential
agent.create_credential(
name="database-password",
secret="super-secret-password",
credential_type="database"
)软件开发工具包
开发包
完整文档: sdk/python/README.md
pip install agentkey| 方法 | 说明 |
|---|---|
get_credential_value(name) | 获取解密密钥 |
list_credentials() | 列出所有代理凭据 |
create_credential(name, secret, ...) | 创建新凭据 |
update_credential(name, new_secret) | 更新现有机密 |
delete_credential(name) | 删除凭据 |
api参考
认证
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/auth/register | POST | 用户注册 |
/api/v1/auth/login | POST | 用户身份验证 |
/api/v1/auth/me | GET | 获取当前用户 |
代理
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/agents | GET | 列出所有代理 |
/api/v1/agents | POST | 创建新代理 |
/api/v1/agents/{id} | GET | 获取代理详细信息 |
/api/v1/agents/{id} | PATCH | 更新代理 |
/api/v1/agents/{id} | DELETE | 删除代理 |
凭证
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/agents/{id}/credentials | GET | 列出代理凭据 |
/api/v1/agents/{id}/credentials | POST | 创建凭据 |
/api/v1/credentials/{id} | GET | 获取凭据详细信息 |
/api/v1/credentials/{id} | PATCH | 更新凭据 |
/api/v1/credentials/{id} | DELETE | 删除凭据 |
令牌(SDK)
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/agents/{id}/credentials/{name}/token | GET | 获取临时令牌 |
配置
| 端点 | 方法 | 描述 |
|---|---|---|
/api/v1/credential-types | GET | 列出凭据类型 |
/api/v1/credential-types | POST | 创建自定义类型 |
/api/v1/audit | GET | 查看审核日志 |
/api/v1/stats | GET | 仪表板统计信息 |
建筑
系统概述
┌─────────────────────────────────────────────────────────────────┐
│ AgentKey │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ React UI │────▶│ Rust API │────▶│ PostgreSQL │ │
│ │ Dashboard │ │ (Actix-web) │ │ + Redis │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Python SDK │ │
│ │ (Agents) │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘技术栈
| 组件 | 技术 |
|---|---|
| 后端 | Rust+Actix网站 |
| 数据库 | PostgreSQL 15 |
| 缓存 | Redis 7 |
| 前端 | React+Vite+TypeScript |
| 样式 | 尾风CSS |
| 状态 | 状态 |
| 软件开发工具包 | Python 3.8+ |
安全模型
- 凭据已加密:AES-256-GCM,带证书AAD
- 双密钥架构:
- 代理API密钥:长期身份密钥(用于请求访问) - 短暂访问令牌:用于传输秘密的短暂JWT(5分钟)
- 代理隔离:每个代理只能访问自己的凭据
- 智能SDK:自动处理令牌生成、缓存和刷新
项目结构
agent-key/
├── src/ # Rust backend
│ ├── handlers/ # HTTP request handlers
│ ├── services/ # Business logic
│ ├── models/ # Database models
│ └── middleware/ # Auth middleware
├── frontend/ # React dashboard
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page layouts
│ │ ├── services/ # API clients
│ │ └── store/ # State management
├── sdk/
│ └── python/ # Python SDK
├── migrations/ # SQL migrations
├── docker-compose.yml # Container orchestration
└── Dockerfile # Backend container发展
本地运行
# Backend (Rust)
cargo run
# Frontend (React)
cd frontend && npm run dev
# Full stack (Docker)
docker-compose up -d运行测试
# Backend tests
cargo test
# Frontend tests
cd frontend && npm test
# Python SDK tests
cd sdk/python && python -m pytest tests/推送到Docker Hub
构建镜像并将其推送到Docker Hub(替换 YASSERRMD 使用您的用户名):
# Backend
docker build -t YASSERRMD/agentkey-backend:latest .
docker tag YASSERRMD/agentkey-backend:latest YASSERRMD/agentkey-backend:0.1.0
docker push YASSERRMD/agentkey-backend:latest
docker push YASSERRMD/agentkey-backend:0.1.0
# Frontend
docker build -t YASSERRMD/agentkey-frontend:latest ./frontend
docker push YASSERRMD/agentkey-frontend:latest路线图
- \[\]自动凭证轮换
- \[\]Webhook通知
- \[\]多租户改进
- \[\]TypeScript/Node.js SDK
- \[\]Go SDK
- \[\]SSO集成
- \[\]Kubernetes Helm图表
贡献
欢迎投稿!请在提交PR之前阅读我们的投稿指南。
- 克隆该仓库
- 创建要素分支
- 提交您的更改
- 打开拉取请求
许可证
该项目根据 代理密钥源可用许可证.
您可以:
- 在本地用于个人、教育或内部业务目的
- 自行托管您自己的应用程序
- 修改并贡献改进
您不得:
- 作为SaaS、托管服务或托管解决方案提供
- 作为商业服务向第三方提供访问权限
看 许可证 完整条款。
______________________________________________________________________
Made with ❤️ for the AI Agent community
