njdaniel/bloodhound

GitHub: njdaniel/bloodhound

bloodhound 是一个用 Go 编写的 Kubernetes AI 事件响应多 agent 系统,通过 MCP 协议并行查询指标、日志、部署和文档来自动完成故障分诊并输出有据可查的根因报告。

Stars: 0 | Forks: 0

# bloodhound 🐕 **用于 Kubernetes 的 AI 事件响应 agent pack,使用 Go 编写。** 当警报触发时,bloodhound 会派出一组专门的调查 agent,它们通过 MCP server 查询 metrics、日志、部署和 runbook, 讨论它们的发现,并向 Slack 交付一份有据可查的根因摘要 —— 所有这些都根据可重现的 seeded 故障 benchmark 进行评分。 ## 为什么 On-call 工程师在每次事件中都会将前 20 分钟花在收集上下文上:调出 dashboard,使用 grep 搜索日志,检查部署了什么。 bloodhound 自动化了这一分诊窗口。它**不会**自动修复 — 它只负责报告,且每一项声明都有捕获的查询结果作为支撑。 ## 工作原理 ``` Alertmanager ──▶ Intake ──▶ Planner ──▶ ┌ metrics-hound ─ MCP: Prometheus ├ logs-hound ──── MCP: Loki ├ changes-hound ─ MCP: Kubernetes └ runbook-hound ─ MCP: docs │ Verifier (adversarial: tries to refute the leading hypothesis) │ Reporter ──▶ Slack / terminal / JSON ``` orchestrator 是一个手工编写的状态机,具有明确的预算(token、工具调用、wall clock)、阶段 checkpoint 以及端到端的 OpenTelemetry tracing。这四个 data-source server 是基于官方 [Go SDK](https://github.com/modelcontextprotocol/go-sdk) 构建的独立 MCP server。 ## Benchmark 将在 M4 中推出:在 `kind` cluster 中运行 18 个 seeded 故障场景(糟糕的部署、OOMKill、证书过期、red herring 以及一个实际上一切正常的对照组),由确定性的 grader 根据根因准确性、证据真实性、得出 hypothesis 的时间和成本进行评分。可通过 `make eval` 复现。 ## 路线图 | 里程碑 | 交付物 | |---|---| | M0 ✅ | 骨架:CLI、provider 接口、CI、规范 | | M1 | mcp-prom + metrics-hound:首次真实诊断 | | M2 | 完整 pack:所有四个 MCP server、planner、并行 hound、tracing | | M3 | 对抗性 verifier + Slack reporter | | M4 | Eval harness:18 个场景、grader、此 README 中的记分板 | | M5 | 消融实验(关闭 verifier、mono-agent、模型分层)+ 案例研究 | ## 本仓库的构建方式 bloodhound 采用 spec-first 结合 AI 辅助工作流进行开发:每个功能 都始于 [specs/](specs/) 中的一份设计文档,实施 PR 由 coding agent 根据这些规范驱动并由人工审查,且 CI 包含一个 advisory agent 审查环节。[CLAUDE.md](CLAUDE.md) 编码了内部规则。 该工作流也是本项目展示内容的一部分。 ## 许可证 MIT
标签:EVTX分析, Go, MCP, Ruby工具, 人工智能, 子域名突变, 库, 应急响应, 日志审计, 用户代理, 用户模式Hook绕过, 自动化运维, 自定义请求头