MINERVA:一个用于数字诈骗防护的多智能体LLM系统
数字诈骗给我们的社会带来了毁灭性的影响。根据联邦调查局互联网犯罪投诉中心(FBI IC3)的数据,过去五年仅在美国就有374亿美元因互联网诈骗而损失 [1]。除了这些直接的经济损失,处理近400万相关投诉的隐性成本也使机构和企业资源不堪重负 [1]。受害者还面临心理困扰,并对新兴技术失去信任。
为解决这一挑战,我们推出了MINERVA,一个由大型语言模型(gpt-4o-mini)驱动的多智能体系统,旨在保护用户免受数字诈骗。我们的系统实现了由AutoGen框架(v0.4.0)[2] 构建的七个专业智能体的协作团队。每个智能体都将先进的模型能力与特定工具结合,以处理诈骗检测的不同方面:光学字符识别、链接验证、内容分析、决策、摘要、语言翻译和归档。
为了评估我们系统的性能,我们开发了一个分层的诈骗分类法,作为创建多样化合成数据集的基础。我们的多智能体系统比基于提示的基线(88.3% 对 69.5%)取得了更高的准确性,同时提供了更全面的功能。除了提高诈骗检测准确性和减少管理开销外,MINERVA还旨在在数字素养、对人工智能安全工具的信任以及为执法和网络安全专业人员提供洞察力方面带来更广泛的社会效益。
[这项工作是为RDI Berkeley的LLM-Agents课程CS294/194-196开发的。作者:Diego Carpintero]
引言
我们将“智能体”(Agent)定义为一个利用语言模型来解释自然语言指令、执行任务、与环境交互并与其他智能体(以及人类)合作以实现给定目标的系统。
人工智能的最新进展使得能够开发出具备推理和工具使用能力的复杂智能体,而多智能体协作正成为复杂任务的一种有前途的范式。我们的直觉是,诈骗检测由于其固有的复杂性和对多样化分析视角的需要,是此类多智能体系统的理想应用领域。数字诈骗通常结合了多种欺骗元素——从社会工程策略到技术操纵——需要不同类型的分析。多智能体方法允许专业智能体专注于不同的方面,同时通过结构化对话进行合作,以形成全面的评估。
系统架构
Minerva:多智能体LLM系统架构
我们的架构由七个专业智能体组成,它们由一个组管理器协调,以轮询方式编排交互。智能体采用发布-订阅模式,共享一个公共消息线程,在此发布其发现——从光学字符识别分析和链接验证,到内容检查、决策、摘要、语言翻译和归档。系统使用Python方法、API和数据库工具处理每个多模态消息,用户通过数字通信的截图提交输入。
智能体
我们的专业智能体基于AutoGen v0.4.0构建
OCR智能体
:使用pytesseract或LLM-Vision功能从图像中提取文本。链接检查器
:使用Google SafeBrowsing API验证URL的合法性。内容分析师
:分析提取的文本是否存在诈骗模式。决策者
:综合分析并做出最终判断。摘要器
:生成最终判断的摘要。语言翻译专家
:将摘要翻译成用户语言。数据存储智能体
:将提取的文本、评估摘要、判断结果(1,0)和置信度(1-5级)存储到sqlite数据库中。
系统提示定义在我们的项目仓库 ./config/agents.yaml
[3] 中。
在此示例中,我们展示了如何创建 链接检查器
、语言翻译
和 数据存储
智能体。
link_checker_agent:
assignment: >
You are an Internet link checker. Your role is to:
1. Check the extracted text for any URLs
2. Verify the legitimacy of the URLs using your registered function
language_translation_agent:
assignment: >
You are a language translation specialist. Your role is to:
1. Infer the languge of the text extracted from the image, this is the user language
2. If the user language is different than english, translate your summary into the user language
data_storage_agent:
assignment: >
You are a data storage specialist.
Your role is to store using the registered function the following fields:
- extracted text
- summary
- final determination ('1' for scam, '0' for not_scam)
- confidence level on your final determination in a scale from 1-5 [...]
All the fields are mandatory
agents = []
agents.append(ToolUseAssistantAgent(
name="Link_Checker",
description="Checks if a Link is safe",
system_message=self.config['link_checker_agent']['assignment'],
model_client=self.model,
registered_tools=[url_checker_tool]
))
agents.append(ToolUseAssistantAgent(
name="DataStorage_Agent",
description="Store the extracted text, summary, determination (1, 0) and confidence level (high, medium low) in a database",
system_message=self.config['data_storage_agent']['assignment'],
model_client=self.model,
registered_tools=[db_connector_tool]
))
agents.append(AssistantAgent(
name="Language_Translation_Agent",
description="Translate the summary to the user language",
system_message=self.config['language_translation_agent']['assignment'],
model_client=self.model
))
请注意,链接检查器
和 数据存储
被定义为 ToolUseAssistantAgent
,因为它们可以访问在 registed_tools
参数中设置的工具,而 语言翻译
是一个 AssitantAgent
,它依赖于LLM的能力来执行其任务。
工具
我们已将工具的实现解耦到特定的 ./tools
模块中。
db_connector.py
: 管理分析结果在SQLite
数据库中的存储和检索。image_ocr.py
: 处理OCR(光学字符识别)。url_checker.py
: 使用 Google SafeBrowsing API 对提取的URL执行“恶意软件”、“社会工程”、“不需要的软件”、“潜在有害应用程序”检查。formatter.py
: 这是一个非智能体工具,用于将TaskResult
和Response
消息格式化为字符串,以便将工作流步骤流式传输到用户界面。
编排
我们的智能体团队被创建为 RoundRobinGroupChat
def create_team(self) -> RoundRobinGroupChat:
"""Create a team of agents that work together in Round Robin fashion"""
termination = TextMentionTermination("NO_TEXT_FOUND")
return RoundRobinGroupChat(
self.agents,
max_turns=7,
termination_condition=termination
)
async def reset(self):
"""Reset team state"""
await self.team.reset()
这定义了以下工作流:
- 智能体以轮询序列协作,每个智能体执行其专业任务。
- 工作流在所有智能体完成任务或OCR专家无法从提供的图像中提取文本时终止。
- 每个周期后,团队状态都会重置,以确保检测任务之间的独立性。
网页界面
MINERVA诈骗检测系统可通过网页界面进行测试:https://huggingface.co/spaces/dcarpintero/minerva。此演示支持多种语言的消息,并包含用于评估的预设示例。
Minerva:多语言消息分析
评估
数据集创建
评估基于分两个阶段开发的合成数据集。首先,我们提示Claude 3.5 Sonnet根据提供的学术研究上下文生成诈骗类别的分层分类法。该分类法包括五个主要类别:金融、商业、冒充权威、奖励与机会以及客户服务欺诈。利用这个框架,我们生成了一个平衡的数据集,在主题级别包含两条欺骗性消息和一条合法(对照)消息。
结果
我们的初步分析将MINERVA与基于提示的基线(温度=0.0,种子=42)进行了比较,两者均使用相同的模型版本(gpt-4o-mini)。结果显示,我们的多智能体方法实现了更高的准确性(88.3% 对 69.5%),但需要额外的处理时间(20.7 秒 对 0.5 秒)。智能体的性能在不同类别中有所差异,在服务相关诈骗(100%)和商业诈骗(93%)中表现出特别强的准确性。类别级分析进一步揭示,虽然两种方法在所有类别上都反映出相似的置信水平(1-5级评分中的4.62 对 4.68),但我们系统的错误预测主要发生在特定类别的对照组中。这可能表明模型在某些情境(如机会/奖励和冒充权威)下倾向于表达更保守的评估。
社会影响
除了提高诈骗检测准确性和减少管理开销之外,该项目还旨在带来更广泛的社会效益。通过向用户提供详细、有理有据的诈骗解释,MINERVA增强了数字素养,并建立了对人工智能驱动安全工具的信任。此外,此智能体工作流的归档任务能够创建一个开放的、匿名的分类诈骗模式数据集。该数据集将至少有两个用途:(i) 能够使用当前的诈骗模式对模型进行微调;(ii) 为执法和网络安全专业人员提供洞察力,以了解新兴威胁和攻击向量。
参考文献
作者
迭戈·卡平特罗 (https://github.com/dcarpintero)