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, 代理工作流, 偏差过滤, 告警分析, 子域名突变, 开源, 故障排查, 无后门, 无线安全, 智能运维, 本地大模型, 本地推理, 根因分析, 流水线, 站点可靠性工程, 结构化报告, 自动化运维, 隐私计算, 风险评分