froggychips/froggy-sre

GitHub: froggychips/froggy-sre

一款运行在 macOS 上的 SRE 事件响应 agent,通过 MCP 协议集成 Claude Code,自动采集 K8s 上下文并运行五阶段分析流水线,生成结构化的本地故障报告。

Stars: 0 | Forks: 0

# froggy-sre 🐸 🌐 **English** · [Русский](README.ru.md) [Froggy](https://github.com/froggychips/Froggy) 负责处理本地推理和屏幕上下文。 [froggy-mcp](https://github.com/froggychips/froggy-mcp) 将 Froggy 连接到 Claude Code。 `froggy-sre` 增加了 SRE 层——为其提供一个 Prometheus 告警,它会自动拉取 pod 日志 以及通过 `kubectl` 获取的 k8s 事件,运行一个 5 阶段的分析 pipeline,并返回结构化的报告 (发生的情况、根本原因、评判分析、建议的修复方案、风险评分)。所有内容均在本地保存。 LLM 调用会首先发送到 Froggy daemon(私有,无需 API key);回退机制则使用 Anthropic API。 **状态:** 可用的原型。并非正式产品。 💬 联系方式:Telegram 上的 [@froggychips](https://t.me/froggychips) 📜 许可证:[MIT](LICENSE) ## 生态系统 | 仓库 | 职责 | |---|---| | [Froggy](https://github.com/froggychips/Froggy) | 本地 LLM daemon,OCR,内存管理 | | [FroggyKit](https://github.com/froggychips/FroggyKit) | 共享的 Swift 包 — FroggyClient IPC | | [froggy-mcp](https://github.com/froggychips/froggy-mcp) | MCP 桥接 → Claude Code | | **froggy-sre** | SRE 事件响应 agent | | [sre-ai-copilot](https://github.com/froggychips/sre-ai-copilot) | Python K8s 后端(云端部署) | ``` Claude Code ←—stdio / JSON-RPC—→ froggy-sre ↓ K8sContextFetcher (kubectl) ↓ AgentPipeline ↓ LLMRouter Froggy daemon (local, private) Anthropic API (fallback) ↓ ~/.froggy-sre/incidents/ ``` ## 工具 | 工具 | 功能 | |---|---| | `sre_analyze` | 获取 k8s 上下文 + 运行 5 阶段 pipeline。结果保存到历史记录。 | | `sre_history` | 返回保存在本机上的近期事件报告。 | ## Pipeline ``` sre_analyze → K8sContextFetcher — pod logs, warning events, pod description (via kubectl) → Analyzer — what's happening, immediate impact → Hypothesis — most likely root cause → Critic — weaknesses in the hypothesis → Fix — concrete kubectl / config remediation → Risk — score 0.0–1.0 + rationale ``` 所有的 LLM 调用均使用 `LLMRouter`:优先使用 Froggy 本地推理,Anthropic API 作为回退。 ## 环境要求 - macOS 14+,Apple Silicon - Swift 6 - `kubectl` 位于 PATH 中(可选 — 用于上下文丰富) - 正在运行的 [Froggy daemon](https://github.com/froggychips/Froggy) **或** `ANTHROPIC_API_KEY`(至少需要满足其一) ## 构建 ``` git clone https://github.com/froggychips/froggy-sre cd froggy-sre swift build -c release ``` ## 安装(Claude Code MCP) 将以下内容添加到 `~/.claude.json` 的 `mcpServers` 下: ``` "froggy-sre": { "command": "/path/to/.build/release/froggy-sre", "env": { "ANTHROPIC_API_KEY": "sk-ant-..." } } ``` 如果 Froggy daemon 已在运行并加载了模型,则 `ANTHROPIC_API_KEY` 为可选。 ## 安装(daemon 模式) ``` # 作为独立的 Unix socket daemon 运行 .build/release/froggy-sre --daemon # 发送 incident(newline-delimited JSON) echo '{"labels":{"alertname":"PodCrashLooping","namespace":"squad-prod","pod":"api-7f9b"},"annotations":{},"startsAt":"2026-05-10T12:00:00Z"}' \ | nc -U /tmp/froggy-sre.sock ``` ## 环境变量 | 变量 | 默认值 | 描述 | |---|---|---| | `ANTHROPIC_API_KEY` | — | Anthropic API key(在 Froggy 不可用时的回退方案) | | `FROGGY_IPC_SOCKET` | `~/Library/Application Support/Froggy/froggy.sock` | Froggy daemon 套接字 | | `FROGGY_SRE_SOCKET` | `/tmp/froggy-sre.sock` | Daemon 模式监听套接字 | | `FROGGY_SRE_MODEL` | `claude-haiku-4-5-20251001` | 用于回退的 Anthropic 模型 | | `FROGGY_SRE_MAX_TOKENS` | `1024` | 每次 LLM 调用的最大 token 数 | | `FROGGY_SRE_INCIDENTS_DIR` | `~/.froggy-sre/incidents/` | 事件文件夹的路径 | | `FROGGY_SRE_MAX_AGE_DAYS` | `30` | 事件保存天数(超过此天数的旧文件会在保存时被清理) | ## froggy-sre 与 sre-ai-copilot 的对比 两者都运行相同的 5 阶段事件 pipeline。请根据您的使用场景进行选择: | | froggy-sre | [sre-ai-copilot](https://github.com/froggychips/sre-ai-copilot) | |---|---|---| | **触发方式** | Claude Code 发起的 MCP 工具调用 | AlertManager webhook(无头模式) | | **运行环境** | macOS 开发机 | 任意服务器 / k8s pod | | **LLM** | Froggy 本地 → Anthropic 回退 | Anthropic API | | **k8s 上下文** | 通过 kubeconfig 使用 `kubectl` | k8s 集群内 SDK | | **存储** | `~/.froggy-sre/incidents/`(本地 JSON) | SQLite + Celery 队列 | | **通知** | Claude Code 中的结构化响应 | Discord webhook | | **适用场景** | 坐在 Mac 前并希望让 Claude 以交互方式分析事件时 | 需要在生产环境中运行始终在线的无头告警时 | ## 路线图 - [x] MCP 服务器(stdio JSON-RPC 2.0) - [x] `sre_analyze` — 5 阶段 agent pipeline(所有 agent 均已激活) - [x] `sre_history` — 位于 `~/.froggy-sre/incidents/` 的本地 JSON 事件存档 - [x] `LLMRouter` — Froggy 本地推理并带有 Anthropic 回退 - [x] `K8sContextFetcher` — 通过 kubectl 获取 pod 日志、k8s 事件、pod 描述 - [x] `FroggyKit` — 共享的 IPC 包(从 froggy-mcp + froggy-sre 中提取) - [x] Daemon 模式 — Unix 套接字服务器(`--daemon` 标志) - [x] 历史上下文 — 在 Hypothesis agent 中通过 `findSimilar` 检索相似的历史事件 - [x] froggy-mcp 集成 — froggy-mcp 通过 SPM 导入 FroggyKit *隶属于 [Froggy](https://github.com/froggychips/Froggy) 生态系统。*
标签:AIOps, Anthropic, API路由, CIS基准, Claude, CVE检测, Froggy生态, HTTP工具, JSON-RPC, kubectl, LLM, MCP, MIT协议, Pandas, Python, SRE, Swift, Unmanaged PE, 代理工作流, 偏差过滤, 告警分析, 子域名突变, 开源, 故障排查, 无后门, 无线安全, 智能运维, 本地大模型, 本地推理, 根因分析, 流水线, 站点可靠性工程, 结构化报告, 自动化运维, 隐私计算, 风险评分