受监管的数据分析代理
  ](https://docs.docker.com/compose/) 
生产级数据分析代理,确保对企业数据的安全、受控访问。与 模型上下文协议(MCP), 开放策略代理(OPA),以及 LangGraph,它使业务用户能够通过Slack查询数据,同时严格执行基于角色的访问控制(RBAC)和行级安全(RLS)。
能力
- 自然语言到SQL:使用本地LLM(Ollama)将业务问题转换为优化的SQL查询。
- 严格治理:在执行之前,每个工具调用都会被拦截并根据OPA策略进行验证。
- 基于角色的访问控制:市场营销、销售、分析师和实习生的精细权限。
- 行级安全:销售团队的自动区域过滤(例如,销售NA只能看到北美数据)。
- 审批工作流:敏感查询(例如PII访问、大型导出)会在Slack中自动触发管理员审批请求。
- 可解释的AI:每个请求的完整审计跟踪和执行回放时间表。
建筑
该系统遵循通过Docker Compose编排的微服务架构:
graph TD
User[Slack User] -->|/askdata| SlackApp[Slack App Service]
SlackApp -->|HTTP| Agent[Agent Service]
subgraph "Governance Layer"
Agent -->|Tool Call| MCP[MCP Server]
MCP -->|Check| OPA[OPA Policy Engine]
end
subgraph "Data Layer"
MCP -->|Query| DB[(PostgreSQL)]
MCP -->|Search| Vector[pgvector]
end
Agent -->|Inference| Ollama[Local LLM]快速开始
先决条件
- Docker&Docker编写
- Python 3.11+
- Git
安装
- 克隆仓库
git clone https://github.com/your-org/governed-analyst-agent.git
cd governed-analyst-agent- 配置环境
cp .env.example .env
# Edit .env with your configuration- 启动基础设施
cd infra
docker compose up -d- 初始化模型
docker exec -it analyst-ollama ollama pull llama3.2- 验证服务
- 管理用户界面: http://localhost:8080 - 代理API: http://localhost:8002/docs - OPA状态: http://localhost:8181/health
🛡 安全与治理
该平台在多个层面实施安全措施:
| 功能 | 描述 | 强制执行者 |
|---|---|---|
| 基于角色的访问控制 | 基于用户角色的工具访问(实习生与管理员) | OPA策略 |
| 架构安全 | 访问原始模式与报告模式的限制 | OPA政策 |
| 列安全 | 屏蔽或阻止PII(电子邮件、电话、PII) | OPA政策 |
| 行安全 | 强制基于区域的数据隔离 | PostgreSQL RLS |
| 审批 | 高风险行为的人在循环中 | LangGraph+Slack |
政策定义
政策以Rego编写,位于 policies/rego/.
rbac.rego:定义哪些角色可以使用特定的MCP工具。tables.rego:控制对数据库架构的访问(reporting.*,raw.*).approval.rego:触发敏感操作的审批工作流。
文档
评估
运行综合评估套件(50个问题)以验证代理性能和策略执行:
cd eval
python runner.py技术栈
- 编排:LangGraph,LangChain
- 协议:模型上下文协议(MCP)
- 治理:开放策略代理(OPA)
- 数据库:PostgreSQL 16+pgvector
- LLM服务:Ollama(火焰3.2)
- 接口:松弛(螺栓),FastAPI
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
