查拉图斯特拉AWS运营
用于AWS操作的AI代理-使用MCP(模型上下文协议)工具用于Secrets Manager、Route53、S3等。
建筑
┌─────────────────────────────────────────────────────────────────┐
│ Zarathustra AWS Ops │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ │
│ │ SQS Queue │───▶│ SQS │───▶│ Workflow │ │
│ │ (Requests) │ │ Listener │ │ Manager │ │
│ └─────────────┘ └──────────────┘ └────────┬────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ LangChain │ │
│ │ AWS Ops Agent │ │
│ └─────────┬─────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ MCP Client │ │
│ └─────────┬─────────┘ │
│ │ │
└───────────────────────────────────────────────────┼─────────────┘
│
┌───────────────────────────────┼───────────────────────────────┐
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ AWS Ops MCP │ │ Route53 MCP │ │ S3 MCP │
│ (Secrets Mgr) │ │ (Coming Soon) │ │ (Coming Soon) │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
┌────────▼────────┐ ┌────────▼────────┐ ┌────────▼────────┐
│ AWS Secrets │ │ AWS Route53 │ │ AWS S3 │
│ Manager │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘特性
- 人工智能驱动的操作:LangChain代理理解自然语言请求
- MCP集成:连接到MCP服务器以进行AWS操作
- 多账户支持:配置文件和假设角色身份验证
- 基于SQS:通过SQS队列异步处理请求
- 回拨支持:将结果发送回调用应用程序
- Docker就绪:生产就绪的集装箱化
项目结构
zarathustra-aws-ops/
├── main.py # Entry point
├── src/
│ ├── core/
│ │ ├── agent.py # LangChain agent with MCP tools
│ │ └── workflow_manager.py
│ ├── integrations/
│ │ └── mcp_client.py # MCP client for tool execution
│ ├── listeners/
│ │ └── sqs_listener.py # SQS message processor
│ └── resources/
│ └── prompt.md # Agent system prompt
├── config/
│ └── mcp_servers.yaml # MCP server configuration
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── README.md快速开始
先决条件
- Python 3.12+
- 已配置AWS凭据
- OpenAI API密钥
- MCP服务器正在运行(例如tool.aws操作系统)
地方发展
- 克隆和设置:
git clone https://github.com/DepStacks/zarathustra-aws-ops.git
cd zarathustra-aws-ops
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- 配置环境:
cp .env.example .env
# Edit .env with your settings- 运行代理:
python main.pyDocker部署
# With MCP server
docker-compose up -d
# Agent only (external MCP server)
docker build -t zarathustra-aws-ops .
docker run -d --env-file .env zarathustra-aws-ops配置
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
OPENAI_API_KEY | OpenAI API密钥(必需) | - |
OPENAI_MODEL | 要使用的OpenAI模型 | gpt-4-turbo-preview |
SQS_QUEUE_URL | SQS队列URL(必需) | - |
AWS_REGION | AWS区域 | us-east-1 |
MCP_AWS_OPS_URL | AWS运维MCP服务器URL | http://localhost:8100 |
MCP_AWS_OPS_TOKEN | MCP身份验证令牌 | - |
MAX_WORKERS | 并行消息处理器 | 5 |
SQS消息格式
以以下格式向SQS队列发送消息:
{
"prompt": "Create a secret called prod/myapp/database with value {\"host\": \"db.example.com\"}",
"profile": "production",
"region": "us-east-1",
"callback_url": "https://your-app.com/webhook/response",
"metadata": {
"request_id": "abc123",
"user": "john@example.com"
}
}领域
| 字段 | 必填 | 描述 |
|---|---|---|
prompt 或 request | 是 | 自然语言AWS操作请求 |
profile | 否 | AWS凭据配置文件 |
role_arn | 无 | 跨账户的IAM角色ARN |
region | 否 | AWS区域覆盖 |
callback_url | 无 | 发送结果的URL |
metadata | 否 | 其他上下文 |
支持的操作
秘密经理
- ✅ 创建秘密
- ✅ 获取机密值
- ✅ 更新机密
- ✅ 删除机密
- ✅ 列出秘密
Route53(即将推出)
- 🔜 创建/更新DNS记录
- 🔜 删除DNS记录
- 🔜 列出托管区域
S3(即将推出)
- 🔜 创建bucket
- 🔜 列出桶
- 🔜 管理存储桶策略
EC2(即将推出)
- 🔜 实例管理
- 🔜 安全组
请求示例
创建一个秘密
{
"prompt": "Create a secret called prod/api/keys with value {\"stripe_key\": \"sk_live_xxx\", \"sendgrid_key\": \"SG.xxx\"}",
"profile": "production"
}列出秘密
{
"prompt": "List all secrets starting with 'prod/' in the staging account",
"profile": "staging"
}删除机密
{
"prompt": "Delete the secret staging/old-app/config with 7 day recovery window",
"profile": "staging"
}与zarathustra api集成
此代理旨在与 扎拉图斯特拉api,它提供了一个API网关,用于向SQS队列发布请求。
Slack/Telegram/Jira → zarathustra-api → SQS → zarathustra-aws-ops → MCP → AWS发展
添加新的MCP工具
- 在中添加工具定义
src/core/agent.py:
def _create_new_service_tools(self) -> List[BaseTool]:
class NewToolArgs(BaseModel):
param: str = Field(description="Parameter description")
return [self._create_mcp_tool(
"aws-ops", "new_tool",
"Tool description",
NewToolArgs
)]- 在中注册工具
_build_tools():
tools.extend(self._create_new_service_tools())运行测试
pytest tests/安全
- 从不硬编码AWS凭据
- 在生产中使用IAM角色(IRSA)
- MCP令牌应安全存储
- 启用CloudTrail进行审核日志记录
许可证
麻省理工学院
相关项目
- 扎拉图斯特拉api -人工智能代理的API网关
- tool.aws-ops -AWS运营MCP服务器
- 查拉图斯特拉 -原始IaC自动化代理
