首页/安全/ai-agent-mcp

ai-agent-mcp

查看源码
2025-5-12
Words 2909Read Time 8 min
Score:85

基于OpenAI API的内容审核系统,通过Google ADK和MCP协议实现高效的内容过滤。

基于 Google AI Agent 和 Model Context Protocol (MCP) 的 AI 内容审核系统

一个利用 OpenAI 的审核 API,通过 Google 的 Agent Development Kit (ADK) 和 Model Context Protocol (MCP) 实现的内容审核系统。

问题背景:当 AI 对话失控时

想象一下:你刚刚发布了一款令人兴奋的新 AI 聊天机器人。用户蜂拥而至,对话不断发生,一切似乎都很完美——直到问题出现。
一位用户询问你的 AI 如何制作爆炸装置。另一位用户试图获取不当内容。还有人用有害语言测试系统的边界。突然间,你的创新 AI 工具变成了潜在的责任。
这是许多 AI 开发者今天面临的现实。
如果没有适当的内容审核,AI 系统可能会:
  • 生成有害、危险或非法的内容
  • 使组织面临法律和声誉风险
  • 为用户创造不安全的体验
  • 将本有前途的应用变成公关噩梦

解决方案:集成内容审核

这就是我们的 AI 内容审核系统的用武之地。我们构建了一个生产就绪的解决方案,能够:
  1. 通过 OpenAI 的审核 API 无缝检查每个用户输入
  1. 在内容到达你的 AI 之前过滤掉有害内容
  1. 提供关于为何内容被阻止的详细反馈
  1. 与 Google ADK 框架平滑集成
最棒的部分?OpenAI 的审核 API 免费使用,使得强大的内容安全功能适用于各种规模的项目。

实际应用场景

这个系统不仅仅是一个技术演示,它专为实际生产用例设计:
  • 教育平台:确保学生与 AI 导师的互动保持适当和安全
  • 客服机器人:在保持服务帮助性的同时防止滥用
  • 内容生成工具:过滤不适当的创意内容请求
  • 企业内部工具:在工作场所 AI 使用中保持专业标准
  • 医疗聊天机器人:防止请求有害的医疗建议
  • 社交应用:在 AI 驱动的社交功能中筛选用户生成的提示

商业价值

  • 免费内容审核:利用 OpenAI 的审核 API 免费过滤有害内容。
  • 保护用户和平台:自动识别并阻止危险、有害或不适当的内容。
  • 法规合规:帮助满足数字平台内容监控的法律要求。
  • 自信扩展:无需手动审核瓶颈,轻松扩展审核能力。

技术价值

  • 跨供应商实现:通过 MCP 和 Google ADK 代理与 OpenAI 服务通信的实际演示,并在同一流程中使用 Llama。
  • 双重传输选项:支持 Server-Sent Events (SSE) 和 Standard I/O (STDIO) 传输。
  • 模块化架构:易于扩展以支持更多审核提供商或功能。
  • 生产就绪设计:错误处理、日志记录和关注点分离,适用于实际使用。

架构

本项目实现了两种内容审核流程的变体:

SSE 传输架构

STDIO 传输架构

安装说明

先决条件

  • Python 3.9 或更高版本
  • OpenAI API 密钥
  • Ollama(用于本地 LLM 服务,可选)

安装步骤

  1. 克隆仓库:
  1. 创建虚拟环境并激活:
  1. 安装依赖:
  1. 设置你的 OpenAI API 密钥:

运行系统

SSE 传输版本

  1. 启动审核服务器:
  1. 在新终端中启动审核代理:

STDIO 传输版本

  1. 运行审核代理(它将自动启动服务器):

测试

运行综合测试脚本以检查所有组件:
或单独测试组件:

生产就绪优化

  1. 认证:为 MCP 服务器添加适当的认证。
  1. 容器化:将应用程序打包为 Docker 容器以便于一致部署。
  1. 监控:实现健康检查、指标收集和告警。
  1. 日志记录:增强日志记录以便更好地观察和故障排除。
  1. 速率限制:实施速率限制以防止 API 滥用。
  1. 缓存:为重复的审核请求添加缓存。
  1. 故障转移机制:实现重试逻辑和备用选项。
  1. 安全加固:审查并解决安全问题。

MCP 服务器的部署选项

云部署选项

1. 容器化服务

使用 Docker 和 Kubernetes 进行容器化是云环境中部署 MCP 服务器的流行方法。这提供了:
  • 可扩展性:根据需求轻松扩展
  • 可移植性:跨不同云提供商部署
  • 隔离性:每个 MCP 服务器在其自己的容器中运行
  • 编排:Kubernetes 处理服务发现、负载均衡和故障转移

2. 无服务器部署

对于不需要持久连接的 MCP 服务器,可以使用 AWS Lambda、Google Cloud Functions 或 Azure Functions 等无服务器选项。优点包括:
  • 按使用付费的定价模式
  • 自动扩展
  • 无需基础设施管理
  • 适用于事件驱动的 MCP 实现

3. 云托管服务

主要云提供商提供托管服务,可以托管 MCP 服务器:
  • AWS App Runner 或 Elastic Beanstalk
  • Google Cloud Run
  • Azure App Service
  • Digital Ocean App Platform
这些服务处理基础设施扩展,而你专注于应用逻辑。

自托管部署选项

1. 本地服务器

传统的本地部署涉及将 MCP 服务器直接安装在数据中心的物理服务器上。这提供了:
  • 完全控制硬件
  • 数据驻留和合规性优势
  • 不依赖外部云服务
  • 可以针对特定工作负载进行优化

2. 私有云

使用 OpenStack 或 VMware vSphere 等技术在私有云基础设施上部署 MCP 服务器。这提供了:
  • 虚拟化优势,同时将数据保留在内部
  • 资源池和自动配置
  • 增强的安全和隐私控制
  • 比公共云更好的隔离性,适用于敏感实现

3. 边缘部署

对于延迟敏感的应用,可以将 MCP 服务器部署在边缘,更接近数据生成和消费的地方。优点包括:
  • 减少实时应用的延迟
  • 带宽优化
  • 适用于分布式架构
  • 可以在连接有限的环境中运行

混合方法

许多组织选择混合部署策略:
  • 主要 MCP 服务器在云中,边缘部署用于延迟敏感的操作
  • 关键组件自托管,辅助服务在云中
  • 开发和测试在云中,生产在自托管环境中

实施考虑因素

选择部署选项时,请考虑以下因素:
  • 可扩展性需求:你的 MCP 服务器需要处理多少并发连接?
  • 数据隐私问题:是否有数据处理的法规要求?
  • 延迟需求:实时通信对你的应用是否至关重要?
  • 预算限制:云服务提供灵活性,但成本会随使用量增加
  • 团队专业知识:自托管选项需要更多基础设施专业知识

传输方法比较

特性
SSE
STDIO
设置复杂性
需要单独的服务器进程
服务器嵌入在客户端进程中
网络需求
需要 HTTP 连接
在单个主机内工作
可扩展性
更适合分布式系统
更适合单主机部署
调试
更容易监控网络流量
更难检查通信
资源使用
更高的开销
更低的开销
安全性
需要网络安全考虑
更封闭的安全边界

后续想法

  1. 支持多个审核提供商:添加对其他审核 API 的支持。
  1. 自定义审核规则:允许配置自定义审核策略。
  1. 内容分类:扩展到二元审核之外的内容分类。
  1. 解释生成:提供人类可读的审核决策解释。
  1. Web 界面:添加用于测试和监控审核的 Web 界面。
  1. 反馈循环:实现从误报/漏报中学习的系统。
  1. 批量处理:添加高效审核批量内容的功能。

截图

SSE 传输版本

STDIO 传输版本

测试

致谢

  • MCP 提供 Model Context Protocol

联系方式

如有任何问题或反馈,请联系 Alexey Tyurin,邮箱:altyurin3@gmail.com

许可证

notion image
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
上一篇
SVM_AI
下一篇
rhinomcp