ranrango/multi-source-intelligence-rag-agent
GitHub: ranrango/multi-source-intelligence-rag-agent
基于 RAG 与 Tool Calling 的多源情报分析 Agent,从异构数据源检索证据并生成带引用的结构化安全研判报告。
Stars: 0 | Forks: 0
# 多源情报 RAG 分析 Agent
[](https://github.com/ranrango/multi-source-intelligence-rag-agent/actions/workflows/ci.yml)
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](LICENSE)
面向安全态势分析的 RAG + Tool Calling Agent。系统从公开新闻、社交媒体、传感器日志、内部通知和分析员简报中检索证据,再调用实体抽取、时间线整理、风险评估和报告生成工具,输出带引用来源的结构化研判报告。
这个项目的目标不是做一个普通聊天机器人,而是展示 Agent 工程中的完整闭环:**检索证据、调用工具、维护状态、记录 trace、输出可审计报告**。
## 视觉概览


## 项目亮点
| 能力 | 设计 |
|---|---|
| 多源 RAG | 将新闻、社媒、雷达日志、内部通知和简报统一切分成 evidence chunk |
| Tool Calling | 实体抽取、时间线整理、风险评估、报告生成都是独立工具 |
| 可追溯报告 | 每个结论都带证据编号、来源、来源类型和置信度 |
| 工程可交付 | 提供 CLI、FastAPI、Docker、测试、API 文档和部署说明 |
| 面试可讲 | 文档中包含架构图、项目讲述稿、常见追问回答和可扩展方案 |
## 快速开始
不安装依赖也可以运行 CLI 演示:
cd 01_multi_source_intelligence_rag_agent
python3 -m src.app.cli --question "北岭港东侧堤坝无人机活动是否异常?请说明证据和风险。"
启动 API:
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
uvicorn src.app.main:app --reload --port 8010
打开接口文档:
http://127.0.0.1:8010/docs
## API 示例
curl -X POST http://127.0.0.1:8010/ask \
-H "Content-Type: application/json" \
-d '{"question":"北岭港夜间低空目标是否代表安全风险?", "top_k": 6}'
## 一键自检
python3 scripts/smoke_test.py
预期输出会包含:
{
"service": "multi-source-intelligence-rag-agent",
"status": "ok",
"evidence_count": 6,
"risk_level": "高",
"report_contains_citations": true
}
## 本地验收
make check
交付前完整验收:
make release-check
`release-check` 会额外构建 Docker 镜像,需要本机 Docker daemon 已启动;GitHub Actions 会自动执行这条交付验收命令。
只验证容器运行和 `/health`:
make container-check
更多请求样例见 [`examples/ask_request.json`](examples/ask_request.json),报告检查点见 [`examples/expected_report.md`](examples/expected_report.md)。
## 项目结构
01_multi_source_intelligence_rag_agent/
├── src/app/
│ ├── main.py # FastAPI 入口
│ ├── cli.py # 命令行演示入口
│ ├── agent.py # Agent 编排流程
│ ├── retriever.py # 关键词/BM25 风格检索
│ └── tools.py # 实体、时间线、风险、报告工具
├── data/ # 多源模拟情报资料
├── examples/ # 请求样例和预期报告
├── scripts/ # smoke test 等工程脚本
├── docs/ # 架构、API、部署、评估、路线图、面试稿
├── tests/ # 核心流程测试
├── Dockerfile
├── docker-compose.yml
├── Makefile
├── pyproject.toml
└── RELEASE_CANDIDATE_MANIFEST.md
## 架构图
flowchart TD
U[用户问题] --> P[Planner: 判断下一步动作]
P --> R[RAG Retriever: 多源证据召回]
R --> E[Evidence Store: 新闻/社媒/传感器/通知/简报]
R --> T1[Tool: 实体抽取]
R --> T2[Tool: 时间线整理]
R --> T3[Tool: 风险评估]
T1 --> M[Agent State]
T2 --> M
T3 --> M
M --> G[Report Generator]
G --> O[带引用的分析报告]
P --> L[Trace Logger]
## 已知局限
- 当前默认使用标准库实现轻量检索,便于离线演示;生产版建议替换为 Embedding + FAISS/Chroma + Reranker。
- 当前风险评分是规则模型;真实落地应加入人工复核、冲突证据检测和阈值配置。
- 样例数据为模拟数据,不代表真实安全事件。
## 评估与路线图
- [`docs/evaluation.md`](docs/evaluation.md):定义证据召回、引用准确率、风险一致性、不确定性和 trace 完整性指标。
- [`docs/roadmap.md`](docs/roadmap.md):给出从当前离线 demo 到向量库、LangGraph、权限审计和生产交付的升级路径。
## 可扩展方向
- 接入网页/文件上传,多源数据自动入库。
- 引入向量库、重排序模型和证据充足性判断。
- 将实体抽取替换为 LLM Function Calling 或 NER 模型。
- 加入 LangSmith/OpenTelemetry trace、评测集和回归测试。
标签:AV绕过, Docker, FastAPI, RAG, 安全防御评估, 工具调用, 态势分析, 请求拦截, 逆向工具