rewajoshi-ui/OpsPilot-AI

GitHub: rewajoshi-ui/OpsPilot-AI

一个基于 LangGraph 多智能体的 AI 事件响应与根因分析平台,旨在自动化值班告警中手动关联日志、指标与部署信息的繁琐工作。

Stars: 0 | Forks: 0

# OpsPilot AI AI 驱动的事件响应和根因分析平台。 一个多智能体系统(LangGraph)在真实的微型微服务生态系统中调查事件,关联日志/指标/部署,提出带有引用证据的排序根因假设,并起草事后总结 —— 从而减少了每次值班告警开头最耗时的 15 分钟手动关联工作。 **硬性限制:₹0。** 该技术栈的每个部分要么是免费层,要么是自托管,或者可以通过 Docker Compose 在本地运行。请参阅 [`docs/architecture/Phase0-Product-Design.md`](docs/architecture/Phase0-Product-Design.md) 了解原因,以及下文的完整设计原理。 ## 状态 🚧 **里程碑 2 已完成:后端基础设施。** 中间件、结构化错误处理、游标分页、Alembic、Redis 客户端和 LangGraph 占位符已连接完毕。目前还没有身份验证、事件、智能体或前端逻辑。请参阅[里程碑](#milestones)了解接下来的内容。 ## 架构概览 | 层 | 内容 | 文档 | |---|---|---| | 微型微服务生态系统 | 4 个真实的 FastAPI 服务,带有可注入的故障模式 | [阶段 1 §2](docs/architecture/Phase1-System-Architecture.md#2-toy-microservice-ecosystem--design) | | 可观测性 | Prometheus + Loki + OpenTelemetry Collector + Grafana(本地替代 CloudWatch/X-Ray) | [阶段 1 §3](docs/architecture/Phase1-System-Architecture.md#3-observability-collectors--local-stack-mapped-to-aws) | | 后端 API | FastAPI,Postgres + pgvector,JWT 身份验证,基于权限的 RBAC | [阶段 3](docs/architecture/Phase3-API-Contracts.md) | | 智能体编排 | LangGraph — Planner、Evidence、Root Cause、Report 智能体,支持检查点/恢复 | [阶段 1 §5](docs/architecture/Phase1-System-Architecture.md#5-agent-orchestration--designed-for-extensibility),[阶段 4](docs/architecture/Phase4-Checkpointing.md) | | 前端 | Next.js 仪表板 | — | 完整的设计历史,按时间顺序排列,包含每个决策背后的原理和权衡: 1. [阶段 0 — 产品与系统设计](docs/architecture/Phase0-Product-Design.md) 2. [阶段 1 — 系统架构](docs/architecture/Phase1-System-Architecture.md) 3. [阶段 2 — 数据库 Schema](docs/architecture/Phase2-Database-Schema.md) 4. [阶段 3 — API 契约](docs/architecture/Phase3-API-Contracts.md) 5. [阶段 4 — LangGraph 检查点](docs/architecture/Phase4-Checkpointing.md) ## 仓库结构 ``` opspilot-ai/ ├── backend/ FastAPI + LangGraph investigation pipeline │ └── src/opspilot/ │ ├── api/ versioned route layer (api/v1/...) │ ├── core/ config, logging │ ├── db/ SQLAlchemy engine/session │ ├── domain/ framework-free entities (Phase 2 schema → Pydantic) │ ├── services/ business logic, orchestrates repositories │ ├── repositories/ the only layer that speaks SQLAlchemy │ └── agents/ LangGraph nodes, state, checkpointing ├── frontend/ Next.js dashboard ├── toy-services/ 4 independent FastAPI services (Phase 1 §2) │ ├── user-service/ │ ├── order-service/ │ ├── notification-service/ │ └── recommendation-service/ ├── infra/ │ ├── observability/ Prometheus, Loki, OTel Collector, Grafana config │ └── terraform/ reserved for v2 AWS deployment ├── docs/architecture/ every design-phase doc, in order ├── scripts/ dev scripts (wait-for-postgres, db seeding) ├── tests/integration/ cross-service / end-to-end tests └── docker-compose.yml the entire local stack, one command ``` ## 快速开始 前提条件:Docker + Docker Compose,[uv](https://docs.astral.sh/uv/),Node 20+。 ``` cp .env.example .env # fill in real values (JWT secret, etc.) make install # uv sync + npm install make pre-commit-install # git hooks: ruff, mypy, basic hygiene make up # docker compose up --build — the whole stack ``` 启动后: - 后端健康检查:http://localhost:8000/api/v1/health - 前端:http://localhost:3001 - Grafana:http://localhost:3000(匿名管理员访问,仅限本地) - Prometheus:http://localhost:9090 ``` make lint # ruff check make format # ruff format make typecheck # mypy --strict make test # pytest ``` 运行 `make help` 获取完整的命令列表。 ## 里程碑 本项目采用增量方式构建,一次完成一个里程碑,绝不会一次性倾倒代码 —— 具体原因请参阅设计阶段的文档。仓库基础(当前提交)是里程碑 1。即将推出: - ~~里程碑 2 — 后端基础设施~~ ✅(中间件、错误处理、分页、Alembic、Redis、LangGraph 占位符) - 里程碑 3 — 数据库模型与迁移(将阶段 2 的 schema 转换为 SQLAlchemy 模型,第一个真正的 Alembic 修订版) - 里程碑 4 — 身份验证与基于权限的 RBAC(阶段 3 §2) - 里程碑 5 — 微型微服务业务逻辑 + `/__chaos/inject` 故障注入(阶段 1 §2.2) - 里程碑 6 — 可观测性连接(在每个服务中进行 OTel 插桩) - 里程碑 7 — LangGraph 智能体与检查点(阶段 4) - 里程碑 8 — 事件 API + 前端仪表板 - 里程碑 9 — 评估工具(阶段 0 的准确度指标,阶段 1 §11) - 里程碑 10 — Terraform(v2,预留) ## 为什么选择这些工具 - **uv,而不是 pip/poetry**:在多包 monorepo(后端 + 4 个微型服务)中使用统一的 lockfile,速度足够快,不会让 CI 和本地开发循环陷入等待。 - **Ruff,而不是 flake8+black+isort**:一个工具,一个配置,完成了过去三个工具的工作。 - **严格的 mypy**:一个旨在展示生产纪律的项目,应该配备一个能够真正发挥约束作用的类型检查器。 - **structlog**:从第一天起就使用结构化日志 —— 这是整个产品所追求的 `agent_runs` 式可观测性的必要条件(参见阶段 1 §5.4/§10)。 - **Make,而不是 Taskfile**:请参阅 `Makefile` 顶部的注释 —— 如果任务图变得过于庞大,我们会重新考虑。
标签:AIOps, API集成, LangGraph, LLM Agent, 可观测性, 搜索引擎查询, 根因分析, 测试用例, 用户代理, 自定义请求头, 请求拦截, 运维, 逆向工具