🤖 AI 驱动的云资源管理工具 - 通过对话描述需求,自动生成 Terraform 配置并创建云资源
- 🤖 对话式交互 - 与 Deepseek LLM 对话描述项目需求,AI 主动追问关键信息
- 📋 智能方案生成 - 5 个专业 Agent 协作分析(需求、资源查询、架构、成本、安全)
- ✅ 多级审核流程 - 架构师技术审核 + 管理员成本审核,确保方案质量
- 🚀 自动化部署 - 审批通过后自动执行 Terraform,实时查看部署日志
- 🔍 资源智能推荐 - 自动查询可用区和实例类型,推荐最优配置
- 🛡️ 安全合规检查 - 自动检测安全风险,提供加固建议
核心框架: FastAPI (Python 3.11+)
数据库: SQLite (MVP) → PostgreSQL (生产)
ORM: SQLAlchemy 2.0
认证: JWT + bcrypt
LLM: Deepseek API (OpenAI 兼容)
Agent 框架: LangChain + LangGraph
云平台: 阿里云 (可扩展多云)
IaC: Terraform 1.5.7
部署: Docker + Docker Compose
框架: Next.js 14 + React 18
UI 组件库: Tailwind CSS + Headless UI
状态管理: React Hooks + Context API
类型系统: TypeScript 5.0+
HTTP 客户端: Fetch API
路由: Next.js App Router
用户需求 → RequirementAgent (需求分析)
→ ResourceQueryAgent (资源查询)
→ ArchitectureAgent (架构设计)
→ CostAgent (成本估算)
→ SecurityAgent (安全检查)
→ TerraformAgent (代码生成)
→ Terraform Validate (验证)
→ 人工审核
→ Terraform Apply (部署)
- Python 3.11+ (推荐使用 pyenv 管理版本)
- Node.js 18+
- Terraform 1.5+
- 阿里云账号(用于实际部署)
git clone https://github.com/your-org/TerraformWithAgent.git
cd TerraformWithAgentcp .env.example .env编辑 .env 文件,填入必要配置:
# LLM 配置(必需)
DEEPSEEK_API_KEY=sk-your-deepseek-api-key
# 阿里云配置(实际部署时需要)
ALICLOUD_ACCESS_KEY=your-access-key
ALICLOUD_SECRET_KEY=your-secret-key
ALICLOUD_REGION=cn-shenzhen
# 数据库配置
DATABASE_URL=sqlite:///./app.db
# JWT 配置
SECRET_KEY=your-secret-key-here# 初始化项目(首次运行)
python3 setup.sh
# 启动后端
python3 run.py backend
# 启动前端(新终端)
python3 run.py frontend# 查看所有命令
make help
# 初始化项目
make setup
# 启动后端
make backend
# 启动前端
make frontend# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down- 后端 API: http://localhost:8000
- API 文档: http://localhost:8000/docs (Swagger UI)
- 前端页面: http://localhost:3000
系统自动创建以下测试账号:
| 角色 | 用户名 | 密码 | 权限 |
|---|---|---|---|
| 管理员 | admin | admin123 | 成本审核、执行、用户管理 |
| 架构师 | architect | architect123 | 技术审核 |
| 客户 | customer | customer123 | 对话、查看方案 |
完整测试从用户需求到阿里云资源创建的全流程:
# 运行完整 E2E 测试(会创建真实资源)
python3 run.py test backend/tests/integration/test_full_e2e_with_apply.py
# 运行到验证阶段(不创建资源)
python3 run.py test backend/tests/integration/test_e2e_to_validate.py# 测试需求分析 Agent
python3 run.py test backend/tests/agents/test_requirement_agent.py
# 测试架构设计 Agent
python3 run.py test backend/tests/agents/test_architecture_agent.py
# 测试成本分析 Agent
python3 run.py test backend/tests/agents/test_cost_agent.py
# 测试安全检查 Agent
python3 run.py test backend/tests/agents/test_security_agent.py
# 测试 Terraform 生成 Agent
python3 run.py test backend/tests/agents/test_terraform_agent.py如果测试创建了阿里云资源,使用清理脚本删除:
python3 backend/scripts/cleanup_resources.py# 启动后端(自动重载)
python3 run.py backend
# 查看日志
tail -f backend/logs/app.log
# 运行特定测试
python3 run.py test backend/tests/agents/test_requirement_agent.py# 启动前端(自动重载)
python3 run.py frontend
# 构建生产版本
cd frontend && npm run build
# 启动生产服务器
cd frontend && npm start- 在
backend/services/agents/创建新 Agent 文件 - 继承
BaseAgent或BaseStreamingAgent - 实现
_execute()方法 - 在
backend/services/workflows/plan_generation.py中注册 - 添加对应的测试文件
编辑 backend/services/workflows/plan_generation.py:
- 使用 LangGraph 定义节点和边
- 支持条件分支和循环
- 可以添加验证节点
- 后端 FastAPI 框架搭建
- 用户认证系统(JWT + bcrypt)
- 5 个专业 Agent 实现
- RequirementAgent - 需求分析
- ResourceQueryAgent - 资源查询
- ArchitectureAgent - 架构设计
- CostAgent - 成本估算
- SecurityAgent - 安全检查
- TerraformAgent - 代码生成
- LangGraph 工作流编排
- Terraform 执行引擎
- Terraform 验证节点
- 端到端测试(需求 → 部署)
- 资源清理脚本
- API 文档(Swagger UI)
- 多种启动方式(Python/Make/Shell/Docker)
- CostAgent 价格查询优化
- 集成阿里云 BSS API
- 实现 PriceQueryService
- 提高成本估算准确性(当前基于 LLM 估算)
基础框架
- Next.js 14 项目初始化
- Tailwind CSS + TypeScript 配置
- 基础 UI 组件库(Button, Input, Card, Modal, Toast, Loading)
- Layout 组件(Header, Sidebar, Footer)
- API 客户端封装(请求/响应拦截器)
认证系统
- 登录页面
- 注册页面
- Token 管理
- 路由守卫
核心功能
- 对话界面(聊天式交互、消息气泡、流式输出)
- 方案展示(架构图、成本估算、安全审计、Terraform 代码预览)
- 审核流程(审核列表、审核详情、审核操作)
- Terraform 执行监控(执行状态、实时日志、资源状态表格)
用户体验优化
- 响应式设计
- 加载状态优化
- 错误提示优化
- 动画效果
- 对话历史查看
- 方案收藏和分享
- 导出功能
- 对话管理接口(创建对话、发送消息、生成方案)
- 审核流程接口(待审核列表、技术审核、成本审核)
- Terraform 执行接口(plan、apply、日志查看)
- 用户管理接口(用户列表、角色管理)
- 对话记录(Conversation, Message)
- 资源方案(ResourcePlan)
- 审核记录(Review)
- 执行日志(TerraformRun)
- Docker 容器化(后端、前端)
- docker-compose.yml 完善
- CI/CD 配置(GitHub Actions)
- 自动测试、构建、部署
- 日志收集和性能监控
- 错误追踪和告警配置
- 价格查询 API 集成(提高成本估算准确性 0.75 → 0.95+)
- 长上下文优化(拆分 TerraformAgent,支持更复杂架构)
- 多云支持(AWS、Azure、GCP 适配器)
- Terraform State 远程存储(阿里云 OSS)
- 方案版本管理
- 审核意见和修改建议
- 资源成本追踪
- 告警和通知系统
- SSO 单点登录
- 权限细粒度控制
- 审计日志
欢迎贡献代码、报告问题或提出建议!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- Python: 遵循 PEP 8
- TypeScript: 遵循 ESLint 配置
- 提交信息: 使用语义化提交(Conventional Commits)
MIT License - 详见 LICENSE 文件
TerraformWithAgent 开发团队
- 问题反馈: GitHub Issues
- 邮件: zhj807399089@gmail.com
最后更新: 2026-01-23