jackjin1997/sentinel
GitHub: jackjin1997/sentinel
一个多供应商 LLM 编排的自主事件响应智能体,通过四阶段流水线实现从故障分诊到修复建议的自动化诊断,帮助 SRE 团队大幅缩短事件响应时间。
Stars: 0 | Forks: 0
# Sentinel
[](https://lablab.ai/ai-hackathons/milan-ai-week-hackathon)
[](https://nextjs.org)
[](https://aistudio.google.com)
[](https://anthropic.com)
[](./LICENSE)
**🚀 在线演示**: https://wma-contacting-lindsay-orientation.trycloudflare.com
当您的服务在凌晨 3 点出现故障时,Sentinel 会进行调查、诊断并推荐修复方案——就像拥有一位全天候 24 小时待命的高级 SRE。它协调**来自两个供应商的四个专门阶段**,以便在采取行动之前,诊断结果能受到来自完全不同的模型偏差的审查:
| # | 阶段 | 模型 | 角色 |
|---|---|---|---|
| 1 | 🔍 分诊 | `gemini-2.5-flash` (Google) | 拉取充足的遥测数据,形成初步假设 |
| 2 | 🧠 调查 | `claude-sonnet-4-6` (Anthropic) | 通过完整的工具访问进行深度根因分析 |
| 3 | ⚔️ 对抗性审查 | `gemini-2.5-flash` (Google) | 利用不同的供应商偏差对 Claude 的诊断进行压力测试 |
| 4 | 📋 整合 | `claude-haiku-4-5` (Anthropic) | 严格的 JSON 行动计划综合 |
仪表板会实时流式传输每个阶段——工具调用、推理链、供应商切换——这样操作员看到的是智能体的工作过程,而不仅仅是最终输出。诊断结果会引用特定的时间戳、指标值、代码路径和 runbook ID。当证据不确定时,该智能体会**如实降低置信度**。如果 Gemini 达到配额限制,会优雅地回退到 Claude Haiku——演示永远不会中断。
## 黑客松提交
为以下活动构建:
- [AI Agent Olympics 黑客马拉松](https://lablab.ai/ai-hackathons/milan-ai-week-hackathon) (米兰 AI 周,$28k 奖金池)
- [通过 AI 转型企业](https://lablab.ai/ai-hackathons/techex-intelligent-enterprise-solutions-hackathon) ($10k 奖金池)
目标赛道:智能推理 · 智能体工作流 · 协作系统 · 企业级应用 · Vultr 企业级智能体 · Google AI Studio。
## 本地开发
```
cp .env.local.example .env.local
# 填入:
# GOOGLE_GENERATIVE_AI_API_KEY= (https://aistudio.google.com/apikey — 免费额度充足)
# ANTHROPIC_API_KEY= (https://console.anthropic.com — 付费,提供 $5 免费试用)
bun install
bun dev
# 打开 http://localhost:3000
```
点击任何事件卡片 → 观看智能体的工作过程。
## 系统架构
```
┌─────────────────┐ ┌────────────────────────────────────────────┐
│ Dashboard UI │ ◀ SSE ◀ │ POST /api/agent { incidentId } │
│ (Next.js 16) │ │ │
└─────────────────┘ │ runIncidentAgent (lib/agent.ts) │
│ │
│ PHASE 1 · gemini-2.5-flash · triage │
│ ├─ queryLogs │
│ ├─ queryMetrics │
│ └─ checkDeployHistory │
│ ↓ hand-off │
│ PHASE 2 · claude-sonnet-4-6 · investigate│
│ └─ searchRunbook │
│ ↓ hand-off (vendor flip) │
│ PHASE 3 · gemini-2.5-flash · review │
│ (no tools — pure adversarial critique) │
│ ↓ hand-off │
│ PHASE 4 · claude-haiku-4-5 · consolidate │
│ → strict-JSON final report │
└────────────────────────────────────────────┘
```
### 为什么多供应商很重要
同系列模型会存在相同的盲点。当 Claude Sonnet 的调查结果由 Claude Haiku 审查时,两者可能会遗漏同一类错误。当由 Gemini Flash 审查时,其结构不同的训练过程能够捕捉到 Claude 无法察觉的问题。出于这个原因,Sentinel 的对抗性审查者**始终来自不同的供应商**。
### 文件说明
- `lib/types.ts` — 共享类型
- `lib/mock/incidents.ts` — **5 个真实的事件场景**,包含日志/指标/runbook(结账延迟、身份验证连接池耗尽、图像工作器内存泄漏、Redis 缓存驱逐风暴、Slack 身份验证级联)
- `lib/tools/index.ts` — 4 个带有 Zod schema 的智能体工具:`queryLogs`、`queryMetrics`、`searchRunbook`、`checkDeployHistory`
- `lib/agent.ts` — 带有阶段事件和 Claude Haiku 回退机制的多供应商编排
- `app/api/agent/route.ts` — SSE 流式传输端点
- `app/api/incidents/route.ts` — 事件列表
- `app/page.tsx` — 带有实时推理轨迹、供应商徽章、MTTR 计时器的仪表板
## 数据统计(端到端验证)
| 指标 | 数值 |
|---|---|
| 中位 MTTR(从点击事件到最终报告) | **~53s** |
| 每次运行的工具调用次数 | 6-9 |
| 每次运行流式传输的文本 | ~100 个增量 (deltas) |
| 每次运行成本 (Anthropic) | ~$0.03 |
| 每次运行成本 (Google, 免费套餐) | $0 |
| 代码行数 | ~1500 TS |
## 技术栈
Next.js 16.2 · React 19 · TypeScript 5 · Tailwind v4 · Vercel AI SDK 6 · `@ai-sdk/google` · `@ai-sdk/anthropic` · Zod · Server-Sent Events。
## 许可证
MIT — 在 2026 年 AI Agent Olympics 期间构建。
## 另请参阅
- [`HACKATHON.md`](./HACKATHON.md) — 提交材料包(演示文稿、演示脚本、X 推文、表单填写)
- [`DEMO_SCRIPT.md`](./DEMO_SCRIPT.md) — 60 秒演示视频制作脚本
- [`DEPLOY.md`](./DEPLOY.md) — Vultr 部署指南
标签:AI Agent Olympics 2026, AIOps, AI智能体, AI智能体编排, Claude, CVE检测, Gemini, IT运维, LLM工作流, PyRIT, Socks5代理, SRE自动化, 企业AI转型, 双供应商偏见消除, 告警分诊, 多供应商LLM编排, 多智能体系统, 大语言模型协作, 实时仪表盘, 容错机制, 对抗性审查, 弹性降级策略, 推理过程可视化, 根因分析, 深度调查, 站点可靠性工程, 自主事件响应, 自动化攻击, 行动计划生成, 黑客松项目, 黑客马拉松