CRIS:多代理犯罪情报系统

深入探索 CRIS——一个开源平台,协调专门的 AI 代理来发现犯罪数据中的隐藏模式

CRIS:多代理犯罪情报系统
AI编程/Vibe Coding 遇到问题需要帮助的,联系微信 ezpoda,免费咨询。

每天,调查人员都面临着一个巨大的挑战:大量的证据、证人陈述、监控数据和数字足迹——所有这些都是孤立的、分散在各个系统中、无法大规模分析的。

传统工具会失败,因为犯罪不是孤立发生的。南区的抢劫可能与全市三起未破案件有相同的作案手法。一个嫌疑人的社交网络可能揭示与有组织犯罪集团的联系。证人陈述可能包含细微的不一致,只有与法医时间线交叉引用时才变得明显。

问题不在于数据是否存在。而是我们能否足够快地连接这些点。

这就是为什么我构建了 CRIS——犯罪推理情报系统。

1、架构:专门代理协同工作

CRIS 不是单一的 AI。它是一个协调的专门代理系统,每个都设计用于在特定类型的分析中表现出色。想象一下组建一个专家顾问团队——行为分析专家、地理分析师、网络专家——都通过中央情报进行协调。

1.1 代理生态系统

┌─────────────────────────────────────────────────────────────────┐
│                    ORCHESTRATOR AGENT                           │
│              (Gemini 3 + ADK + A2A Protocol)                    │
│         Understands queries, delegates, synthesizes             │
└───────────────────────────┬─────────────────────────────────────┘
                             │
         ┌───────────────────┼───────────────────┐
         ▼                   ▼                   ▼
 ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
 │  LINK AGENT   │   │PROFILER AGENT │   │GEO-INTEL AGENT│
 │ Graph analysis│   │ Behavioral    │   │ Spatial       │
 │ Pattern detect│   │ profiling     │   │ analysis      │
 └───────────────┘   └───────────────┘   └───────────────┘
         │                   │                   │
         ▼                   ▼                   ▼
 ┌───────────────┐   ┌───────────────┐   ┌───────────────┐
 │WITNESS AGENT  │   │PREDICTOR AGENT│   │ OSINT AGENT   │
 │ Statement     │   │ Monte Carlo   │   │ Digital       │
 │ analysis      │   │ forecasting   │   │ footprint     │
 └───────────────┘   └───────────────┘   └───────────────┘

每个代理都有特定的使命:

  • 链接代理:通过图遍历发现案件、人员和证据之间的隐藏连接
  • 分析代理:生成 FBI BAU 风格的心理画像和风险评估
  • 地理情报代理:创建犯罪热点地图并使用 Rossmo 公式预测可能位置
  • 证人代理:分析陈述中的不一致和可信度指标
  • 预测代理:运行蒙特卡洛模拟来预测犯罪行为
  • 开源情报代理:绘制数字足迹和社交网络连接

当这些代理通过 A2A(代理到代理)协议通信时,魔法就会发生。像"找出这个嫌疑人与东区入室盗窃未破案件之间的联系"这样的单个查询会触发多个专家之间的协调调查。

1.2 知识图谱:为什么 Neo4j 改变了一切

这里有一个基本的洞察:犯罪数据本质上是关系型的

嫌疑人认识其他人。证据属于一个案件。地点见证了多起事件。证人相互矛盾。情报就在这些关系中。

关系数据库迫使你将这个丰富的结构扁平化为表和连接。但是图数据库让你直接建模现实。

CRIS 数据模型

(:Person)-[:KNOWS]->(:Person)
(:Person)-[:SUSPECT_IN]->(:Case)
(:Evidence)-[:FOUND_AT]->(:Location)
(:Case)-[:SIMILAR_MO]->(:Case)
(:Witness)-[:PROVIDED]->(:Statement)
(:Statement)-[:CONTRADICTS]->(:Statement)

这不仅仅是优雅的建模——它解锁了传统数据库根本无法实现的分析能力。

2、网络分析的实际应用

社区检测:使用 Louvain 或标签传播等算法,CRIS 自动识别犯罪网络。经常一起出现、共享位置或有重叠联系方式的人会被聚类。这揭示了有组织的犯罪结构,而人工分析师需要数周时间才能绘制出来。

CALL gds.louvain.stream('criminal-network')
YIELD nodeId, communityId
RETURN gds.util.asNode(nodeId).name AS person, communityId
ORDER BY communityId

中心性分析:谁是犯罪网络的中心?PageRank 和介数中心性识别关键参与者——不一定是可见的人,而是连接者和影响者。

路径分析:嫌疑人 A 如何连接到受害者 B?Neo4j 的原生图遍历找到最短路径并揭示中间人:

MATCH path = shortestPath(
  (suspect:Person {name: $suspectName})-[*..6]-(victim:Person {name: $victimName})
)
RETURN path

系列模式检测:链接代理查询具有相似作案手法的案件——相同的武器类型、相似的受害者资料、匹配的时间窗口。图模式匹配使这成为原生操作:

MATCH (c1:Case)-[:HAS_MO]->(mo:ModusOperandi)<-[:HAS_MO]-(c2:Case)
WHERE c1 <> c2 AND mo.weapon_type = 'knife' AND mo.entry_method = 'forced'
RETURN c1, c2, mo

3、为什么多代理优于单体

你可能会问:为什么不构建一个能做所有事的大型模型?

三个原因:

  • 专门化实现深度

每个代理都可以针对其领域进行优化。分析代理可以访问犯罪学文献和行为框架。地理情报代理理解空间统计。通才模型在各方面都很平庸;专家在他们的细分领域表现出色。

  • 组合性实现灵活性

新功能?添加一个新代理。金融犯罪代理可以加入团队而无需重新训练整个系统。编排器通过 A2A 协议学会委托给它。

  • 透明度实现信任

当 CRIS 提出建议时,你可以精确追踪哪些代理做出了贡献、它们分析了什么数据、应用了什么推理。这个审计轨迹对于法律和道德问责至关重要。

4、真实的查询流程

让我们追踪当调查人员询问时会发生什么:

"Garcia 抢劫案与其他未破案件之间有什么联系吗?"

1) 编排器解析查询,识别它需要图分析 + 模式匹配

2) 链接代理接收委托,查询 Neo4j:

  • 检索 Garcia 案件详情(MO、证据、地点、时间)
  • 对未破案件运行相似性搜索* 对相关人员进行社区检测

3) 地理情报代理(由编排器触发)分析空间模式:

  • 计算到类似案例的距离
  • 检查位置是否聚集在已知热点中

4)  编排器综合:

  • 发现 3 个 MO 匹配的案例* 识别跨案例的 2 个共享嫌疑人* 地理聚类表明系列模式

5) 结果返回时带有置信度分数和证据链接

调查人员看到的是连贯的情报简报,而不是原始数据。

5、技术栈

  • AI 引擎:Gemini 3 (gemini-2.0-flash) — 高级推理、工具使用。
  • 代理框架:Google ADK — 原生代理编排
  • 通信:A2A 协议 — 标准代理互操作
  • 知识图谱:Neo4j — 原生图存储 + GDS 算法
  • 向量搜索:ChromaDB — 非结构化数据的语义相似性
  • 前端:Streamlit — 快速原型、调查员友好的界面

CRIS 是开源的并且正在积极发展。当前优先事项:

  • 增强时间分析:犯罪模式在演变;系统应该检测变化
  • 多模态证据:整合犯罪现场照片的图像分析
  • 协作调查:多个调查员在共享案件上工作
  • 可解释 AI:更清晰的推理链以符合法庭可采性

6、自己试试

git clone https://github.com/francotesei/cris.git
cd cris
uv sync
docker-compose up -d  # 启动 Neo4j
uv run streamlit run app.py

CRIS 被设计为调查员的支持工具——而不是人类判断的替代品。每个预测都包含置信度水平。每个画像都是待验证的假设。系统保持完全可追溯性。

目标不是自动化 justice。而是增强人类调查员的能力,让他们拥有单独无法拥有的能力。


原文链接:Building a Multi-Agent Criminal Intelligence System: How AI Agents, Neo4j, and Network Analysis

汇智网翻译整理,版权归原作者所有