用多智能体优化安全告警调查

Slack Engineerin15 小时前
分享到

背景

安全工程团队需要保护核心基础设施与服务。其安全事件摄取管道每天处理来自多类数据源的数十亿条事件。在值班期间,审查安全检测系统产生的告警是团队的主要工作之一。

为提升工作效率并加强安全防御,团队开始探索使用 AI 智能体辅助安全调查。以下内容介绍了从原型到更可控架构的设计演进。

从一个简单原型开始

2025 年 5 月底,团队构建了一个非常初步的原型。最开始,这个服务基本上只是一个约 300 词的提示词。

这个提示词包含五个部分:

  • 定位:例如“你是一名调查安全告警的安全分析师……”
  • 清单:例如“你可以访问以下数据源……”
  • 方法论:例如“你的调查应遵循以下步骤……”
  • 格式:例如“生成一份 Markdown 格式的调查报告……”
  • 分类:例如“从以下响应分类中选择……”

团队实现了一个简单的 stdio 模式 MCP 服务器,用于通过工具调用接口安全地暴露部分数据源,并复用了一个编码智能体 CLI 作为原型的执行环境。

这个原型的表现波动很大:

  • 有时能够产出非常出色、富有洞察力的结果,并能跨多个数据源交叉验证证据;
  • 但有时也会很快跳到一个看似方便、甚至站不住脚的结论,并且没有充分质疑自己的方法。

如果要在真实工作中使用,该工具必须具备更稳定的一致性。因此,团队需要对调查过程有更强的控制力。

解决思路:拆分复杂调查流程

团队最终选择将原型中由单个提示词描述的复杂调查过程,拆解为一系列模型调用。每次调用只负责一个目的明确、输出结构清晰的任务,再由应用程序将这些简单任务串联起来。

每个任务都被定义了结构化输出格式。结构化输出可以通过 JSON Schema 限制模型使用特定输出格式,并应用于模型调用的最终输出。

不过,结构化输出并不是“零成本”的:

  • 如果输出格式对模型来说过于复杂,执行可能失败;
  • 它仍然会受到“投机取巧”和幻觉等问题影响。

在早期原型中,团队曾在提示词中加入“质疑你的证据”这样的指导,但效果并不稳定。采用结构化输出后,这类指导被改造成调查流程中的一个独立任务,因此行为更可预测。

这种方法让团队能够在调查流程的每个步骤中获得更精确的控制。

从原型走向生产

在调研相关文献时,两篇论文对团队的设计思路影响较大:

  • Meta-Prompting: Enhancing Language Models with Task-Agnostic Scaffolding(Stanford、OpenAI)
  • Unleashing the Emergent Cognitive Synergy in Large Language Models: A Task-Solving Agent through Multi-Persona Self-Collaboration(Microsoft Research)

这些论文讨论了在单次模型调用中引入多个角色的提示技术。团队认为,用明确角色来建模调查过程很有启发性;但为了保持控制力,他们选择将这些角色表示为彼此独立的模型调用。
最终的设计围绕一组角色智能体及其可执行任务展开。每个“智能体 / 任务”组合都对应一个经过仔细定义的结构化输出,由应用程序负责编排模型调用,并在每个阶段传递恰当的上下文。

调查循环:导演、专家与批评者

该设计包含三类角色。

1. 导演智能体

导演智能体负责推动调查从开始走向结束。

它的主要职责包括:

  • 形成一个或一组问题;
  • 将这些问题作为专家智能体的提示;
  • 使用日志工具规划和组织不断推进的调查过程。

2. 专家智能体

专家智能体代表不同领域的专业能力。每个领域专家都有独特的领域知识和数据源。

专家的职责是根据导演提出的问题,从自身可访问的数据源中生成调查发现。

当前团队中包含四类专家:

  • Access:认证、授权和边界服务;
  • Cloud:基础设施、计算、编排和网络;
  • Code:源代码分析与配置管理;
  • Threat:威胁分析与情报数据源。

3. 批评者智能体

批评者智能体是一个“元专家”。它负责根据预先定义的评分规则,评估并量化领域专家所生成发现的质量。

它会为专家的发现添加自己的分析,并为每条发现给出可信度评分。随后,这些结论会被传回导演智能体,从而形成闭环。

这种批评者与专家组之间的弱对抗关系,有助于降低幻觉风险,并减少对证据解释不一致所带来的波动。

更细粒度的编排能力

由于每个“智能体 / 任务”组合都是一次独立的模型调用,团队可以分别调整各种输入,包括:

  • 模型版本;
  • 输出格式;
  • 提示词;
  • 指令;
  • 可用工具。

这种能力让团队可以在不同阶段使用不同策略。例如,在生成调查发现、评估证据质量、构建时间线以及决定后续调查方向时,采用不同的模型调用和上下文传递方式。

对工程实践的启示

这个案例的重点不在于“让一个大模型一次性完成整个安全调查”,而在于把复杂任务拆成可控、可评估、可编排的步骤。

其中几个工程取向值得关注:

  • 用结构化输出增强流程稳定性;
  • 用多角色分工降低单次调用的不确定性;
  • 用批评者角色评估证据质量;
  • 用应用层编排控制上下文传递;
  • 将提示词中的软性要求转化为独立、可验证的任务。

对于安全运营、告警研判和事件响应场景来说,这种设计提供了一个更接近生产环境需求的智能体落地思路:不是完全依赖提示词,而是把模型纳入受控的工程流程中。

评论

请登录后发表观点

暂无数据