{"id":51596920,"url":"https://github.com/lehuannhatrang/opsgentic","last_synced_at":"2026-07-11T19:30:41.821Z","repository":{"id":366098667,"uuid":"1275023611","full_name":"lehuannhatrang/opsgentic","owner":"lehuannhatrang","description":"OpsGentic — AI Agents for DevOps Automation. Self-healing Kubernetes with AI agents.","archived":false,"fork":false,"pushed_at":"2026-07-08T02:55:52.000Z","size":4033,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-07-08T04:20:28.850Z","etag":null,"topics":["ai-agents","aiops","devops","gitops","kubernetes","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lehuannhatrang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-20T06:44:38.000Z","updated_at":"2026-07-07T03:47:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lehuannhatrang/opsgentic","commit_stats":null,"previous_names":["lehuannhatrang/opsgentic"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lehuannhatrang/opsgentic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lehuannhatrang%2Fopsgentic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lehuannhatrang%2Fopsgentic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lehuannhatrang%2Fopsgentic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lehuannhatrang%2Fopsgentic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lehuannhatrang","download_url":"https://codeload.github.com/lehuannhatrang/opsgentic/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lehuannhatrang%2Fopsgentic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35374165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","aiops","devops","gitops","kubernetes","python"],"created_at":"2026-07-11T19:30:41.023Z","updated_at":"2026-07-11T19:30:41.815Z","avatar_url":"https://github.com/lehuannhatrang.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 OpsGentic — AI Agents for DevOps Automation\n\n\u003cp align=\"center\" style=\"width: fit-content; margin: 10 auto; background: white;\"\u003e\n  \u003cimg src=\"docs/figures/opsgentic-logo.png\" alt=\"OpsGentic logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eSelf-healing Kubernetes with AI agents.\u003c/b\u003e\u003cbr/\u003e\n  OpsGentic turns an alert into a reviewed GitOps pull request — automated \u003cb\u003eRoot Cause Analysis\u003c/b\u003e, \u003cb\u003eValidation\u003c/b\u003e, and \u003cb\u003eRemediation\u003c/b\u003e, with a human in the loop.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://lehuannhatrang.github.io/opsgentic/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Website-opsgentic.io-2ea44f\" alt=\"OpsGentic website\"/\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Kubernetes-GitOps-326ce5?logo=kubernetes\u0026logoColor=white\" alt=\"Kubernetes GitOps\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/LangGraph-multi--agent-1c3c3c\" alt=\"LangGraph multi-agent\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/MCP-read--only-444\" alt=\"Model Context Protocol\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/LLM-vLLM%20%7C%20OpenAI--compatible-412991\" alt=\"vLLM / OpenAI-compatible LLM\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.11%2B-blue\" alt=\"Python 3.11+\"/\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-GPLv3-green\" alt=\"License: GPLv3\"/\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen\" alt=\"PRs welcome\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  🌐 \u003cb\u003e\u003ca href=\"https://lehuannhatrang.github.io/opsgentic/\"\u003eWebsite \u0026amp; Documentation\u003c/a\u003e\u003c/b\u003e\n  \u0026nbsp;·\u0026nbsp; \u003ca href=\"QUICKSTART.md\"\u003eQuickstart\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp; \u003ca href=\"docs/ARCHITECTURE.md\"\u003eArchitecture\u003c/a\u003e\n  \u0026nbsp;·\u0026nbsp; \u003ca href=\"https://github.com/lehuannhatrang/opsgentic\"\u003eGitHub\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003e **Alert fires → agents find the root cause → propose a minimal manifest fix → open a PR on your GitOps repo → you approve → ArgoCD/Flux applies it.** \n\n\u003e No kubectl, no manual patching.\n\n**OpsGentic** is an open-source **AIOps / agentic SRE** platform for **Kubernetes incident response\nand auto-remediation**. A multi-agent [LangGraph](https://github.com/langchain-ai/langgraph)\npipeline performs automated **root cause analysis** on Prometheus/Alertmanager alerts (or a chat\nmessage), then remediates **through GitOps** — every change is a reviewable pull request opened on\nyour **ArgoCD/Flux** repo, never a live `kubectl` mutation. Think of it as an **AI SRE agent** that\nturns alerts into self-healing infrastructure, with a human in the loop.\n\n## ✨ Why OpsGentic\n\n- 🧠 **Multi-agent RCA → Validation → Remediation** — a stateful LangGraph graph, not a single prompt.\n- 🔧 **Auto-remediation as code** — proposes surgical manifest edits and opens a **GitOps PR** (ArgoCD/Flux applies after merge).\n- 🙋 **Human-in-the-loop** — pauses for approval before any PR (or PR review when auto-approve is on).\n- 🔒 **Read-only by design** — all cluster/repo reads go through [MCP](https://modelcontextprotocol.io/) servers; no direct k8s client, no kubectl. Writes happen only via Git.\n- 🔁 **GitOps-native \u0026 multi-repo** — discovers the owning repo from ArgoCD/Flux; GitHub / GitLab / Gitea.\n- ♻️ **Convergent** — a re-fired alert updates the existing PR (comment or one incremental commit) instead of stacking duplicates.\n- ⚡ **Async** — the API enqueues and returns a `thread_id` to poll; a worker drives the run.\n- ✍️ **Editable agent skills** — tune agent behavior via markdown prompts (a ConfigMap), no rebuild.\n- 🧩 **Bring your own LLM** — any OpenAI-compatible endpoint (local **vLLM**, etc.), env-configured.\n\n## 🧩 How it works\n\n```\nPrometheus/Alertmanager ─alert─▶ OpsGentic API ─enqueue─▶ Worker\n                                                            │  RCA → Validation → [approve] → Action\n   ArgoCD/Flux ◀─sync─ merge ◀─ Pull Request ◀──────────────┘\n```\n\n1. A Grafana/Alertmanager webhook (or `POST /chat`) is **enqueued**; the API returns `202 { thread_id }`.\n2. The worker runs **RCA** (root-cause hypothesis) → **Validation** (deterministic checks) → **Action**.\n3. Action reads the GitOps repo (read-only via MCP), proposes a **minimal manifest edit**, and opens a **PR**.\n4. You approve (or auto-approve); ArgoCD/Flux applies the merged change.\n\nDeep dive: **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**.\n\n## 🚀 Quick start\n\n**One-command demo** — provisions the cluster (or a local k3d/minikube/kind), ArgoCD, Prometheus,\nthe demo apps, and opsgentic; forks the demo repo for you and only asks for a GitHub PAT:\n\n```bash\n./hack/demo-up.sh        # idempotent; ./hack/demo-down.sh to tear it down\n```\n\n**Local dev** — no cluster, just the graph:\n\n```bash\npython -m venv .venv \u0026\u0026 . .venv/bin/activate\npip install -e .\ncp .env.example .env          # set LLM_BASE_URL / LLM_API_KEY (empty = canned fallback)\n\n# try the full graph locally (synchronous, no cluster needed)\nopsgentic --file examples/grafana_alert.json --source grafana --approve\n```\n\nFull walkthrough — one-command demo, local dev, and the manual end-to-end Kubernetes path\n(GitHub auth, ArgoCD, Alertmanager webhook, `bootstrap.sh`): **[QUICKSTART.md](QUICKSTART.md)**.\n\n## 📚 Documentation\n\n| Doc | What's inside |\n| --- | --- |\n| [Website](https://lehuannhatrang.github.io/opsgentic/) | Project homepage \u0026 docs hub |\n| [QUICKSTART.md](QUICKSTART.md) | Install \u0026 run — dev + Kubernetes, GitHub auth, ArgoCD, Alertmanager webhook, troubleshooting |\n| [docs/USAGE.md](docs/USAGE.md) | HTTP API, triggers, full configuration reference, editing agent skills, deploy |\n| [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | Agents, async queue/worker, graph flow, remediation \u0026 convergence, multi-repo resolution |\n\n## 🗺️ Roadmap\n\n- ✅ Multi-agent RCA / Validation / Remediation on LangGraph, human-in-the-loop gate\n- ✅ Read-only MCP gateway (kubernetes-mcp-server, github-mcp-server); no kubectl\n- ✅ Agentic GitOps remediation (manifest edits) + re-fire convergence; GitHub / GitLab / Gitea\n- ✅ Durable checkpoints + async task queue (Procrastinate/Postgres) + worker\n- ✅ Editable agent-skill prompt library (ConfigMap)\n- ⏳ Deeper validation skills; observability/tracing; worker autoscaling\n\n## ❓ FAQ\n\n**What is OpsGentic?**\nAn open-source AI agent for Kubernetes incident response. It reads Prometheus/Alertmanager alerts,\nruns automated root cause analysis with a multi-agent LangGraph pipeline, and opens a GitOps pull\nrequest with a minimal manifest fix — self-healing Kubernetes with a human in the loop.\n\n**How does OpsGentic remediate incidents without `kubectl`?**\nIt never mutates the cluster directly. All cluster and repo reads go through read-only MCP servers,\nand every change is written as a pull request on your GitOps repo, which ArgoCD or Flux applies\nafter merge.\n\n**Which LLMs does it support?**\nAny OpenAI-compatible endpoint — a self-hosted **vLLM** server, OpenAI, or other compatible APIs —\nconfigured via environment variables.\n\n**Does it work with ArgoCD and Flux?**\nYes. OpsGentic is GitOps-native and multi-repo: it discovers the owning repository from your\nArgoCD/Flux Applications and supports GitHub, GitLab, and Gitea.\n\n**How do I try it quickly?**\nRun `./hack/demo-up.sh` for a one-command demo (cluster + ArgoCD + Prometheus + demo apps), or use\nthe local-dev path with no cluster. See the **[Quickstart](QUICKSTART.md)**.\n\n## 🤝 Contributing\n\nIssues and PRs are welcome. Licensed under **[GPLv3](LICENSE)**.\nWebsite \u0026 docs: **https://lehuannhatrang.github.io/opsgentic/**\n\n---\n\n\u003csub\u003eKeywords: Kubernetes · Kubernetes incident response · SRE · DevOps · AIOps · AI SRE agent · AI agent · agentic AI · multi-agent · LLM · vLLM · LangGraph · MCP · Model Context Protocol · auto-remediation · self-healing Kubernetes · self-healing infrastructure · root cause analysis · RCA · GitOps · ArgoCD · Flux · Prometheus · Alertmanager · alert remediation · incident response automation · pull request automation\u003c/sub\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flehuannhatrang%2Fopsgentic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flehuannhatrang%2Fopsgentic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flehuannhatrang%2Fopsgentic/lists"}