基于Gemini构建安全告警自动分类Agent,能区分低/高风险、自动处置常规告警、对复杂情况生成事件摘要并上报,同时保留完整审计日志。
安全团队正被告警淹没。SSH 暴力破解尝试、异常登录、端口扫描、权限提升尝试——大多数都是噪声,但每天总有几条告警真正危险。人工从例行告警中筛选真正的威胁,会消耗本该用于实际事件响应的时间。
我想构建一个不只是「谈谈安全告警」的东西,而是能真正做出判断并采取行动——就像值班的初级分析师那样,但持续运行在后台。
这就是我为 All Things Agentic Hackathon 的 Taskmaster 赛道构建的东西:一个自主智能体,它读取传入的安全告警,判断其含义,然后要么处理、要么升级它们——无需人工触发每一步。
对于收到的每条告警,智能体:
使用 Gemini 进行推理分类,判断是低风险还是高风险——不是简单的关键词匹配
对于明显良性的活动(如已知 VPN IP 的常规登录、通过正常 MFA 完成的自助密码重置),调用 remediate_alert 工具自动修复
对于模糊或危险的活动的处理(包括暴力破解模式、权限提升、疑似数据外泄),调用 escalate_alert 工具升级——附带一份可供人工分析师立即处理的事件摘要和严重等级
将每个决策记录到持久审计日志中,确保事后没有黑盒
最终生成的审计日志——每条告警一条清晰记录,精确展示智能体的决策及其原因:
{
"alert_id": "ALT-1001",
"action": "escalated",
"severity": "critical",
"summary": "Potential root compromise via SSH brute force on production database prod-db-01 from external IP 41.203.12.8 (6 failed attempts followed by a successful login within 40 seconds).",
"logged_at": "2026-08-29T09:50:18.634514+00:00"
}
Gemini 通过 Gemini API 访问,为每条告警执行实际推理和分类
Google ADK(Agent Development Kit)编排智能体——模型、其指令及其可调用的两个工具
审计日志通过一个小型存储层写入,该存储层透明切换本地 JSON 文件(用于开发)和 Firestore(用于云部署版本),由一个环境变量控制
一个独立的 FastAPI 服务(cloud_main.py)构建用于接收从 Pub/Sub 推送的告警,设计运行在 Cloud Run 上,使智能体异步运行在后台而非按固定调度
一个让我真正满意的设计决策:agent.py 和 tools.py 中的智能体核心逻辑在本地开发和云部署版本之间从不改变。只有入口点(本地循环 vs. Pub/Sub 推送处理器)和存储后端(本地 JSON vs. Firestore)不同——且由一个环境变量控制。这使得构建云版本感觉像是本地版本的扩展,而非重写。
测试中途,在高需求期间我遇到了 Gemini API 间歇性的 503 UNAVAILABLE 错误。我没有让一次瞬时故障导致整个运行崩溃,而是在每条告警周围添加了带短退避的重试层:
for attempt in range(1, MAX_RETRIES + 1):
try:
# process the alert
return
except ServerError as e:
if attempt == MAX_RETRIES:
print(f"FAILED after {MAX_RETRIES} attempts: {e}")
return
print(f" (attempt {attempt}/{MAX_RETRIES}) retrying...")
await asyncio.sleep(RETRY_DELAY_SECONDS)
在一次测试运行中,这以真实场景发生了——智能体在某条告警上遇到 503,自动重试,并在下一次尝试中正确完成,无需任何人工干预。对于一个旨在无人值守后台运行的东西来说,这种韧性与核心推理能力同等重要。
构建这个项目的过程强化了我之前只是抽象理解的一件事:将智能体的推理与其触发源和存储后端解耦,才是使「运行在后台」成为系统真实属性而非仅仅是演示描述的关键。如果智能体逻辑与「从这个本地文件读取」或「写入这个特定数据库」纠缠在一起,那么迈向真正异步、云原生版本将意味着重写而非扩展。
完成一个实时的 Cloud Run 部署(代码已就绪——见仓库)
一个直接从审计日志读取的轻量仪表盘,以更可视化的方式查看智能体随时间的决策
扩展合成告警集,并根据更广泛的真实世界告警类型调优升级逻辑
Built for the Taskmaster track of the All Things Agentic Hackathon.
For further actions, you may consider blocking this person and/or reporting abuse