用多智能体优化安全告警调查
背景
安全工程团队需要保护核心基础设施与服务。其安全事件摄取管道每天处理来自多类数据源的数十亿条事件。在值班期间,审查安全检测系统产生的告警是团队的主要工作之一。
为提升工作效率并加强安全防御,团队开始探索使用 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. 批评者智能体
批评者智能体是一个“元专家”。它负责根据预先定义的评分规则,评估并量化领域专家所生成发现的质量。
它会为专家的发现添加自己的分析,并为每条发现给出可信度评分。随后,这些结论会被传回导演智能体,从而形成闭环。
这种批评者与专家组之间的弱对抗关系,有助于降低幻觉风险,并减少对证据解释不一致所带来的波动。
更细粒度的编排能力
由于每个“智能体 / 任务”组合都是一次独立的模型调用,团队可以分别调整各种输入,包括:
- 模型版本;
- 输出格式;
- 提示词;
- 指令;
- 可用工具。
这种能力让团队可以在不同阶段使用不同策略。例如,在生成调查发现、评估证据质量、构建时间线以及决定后续调查方向时,采用不同的模型调用和上下文传递方式。
对工程实践的启示
这个案例的重点不在于“让一个大模型一次性完成整个安全调查”,而在于把复杂任务拆成可控、可评估、可编排的步骤。
其中几个工程取向值得关注:
- 用结构化输出增强流程稳定性;
- 用多角色分工降低单次调用的不确定性;
- 用批评者角色评估证据质量;
- 用应用层编排控制上下文传递;
- 将提示词中的软性要求转化为独立、可验证的任务。
对于安全运营、告警研判和事件响应场景来说,这种设计提供了一个更接近生产环境需求的智能体落地思路:不是完全依赖提示词,而是把模型纳入受控的工程流程中。
