跳转到内容

架构概览

┌─────────────────────────────────────────────────────────────┐
│ OpenPR (Plan) │
│ Issues · Boards · Sprints · Governance · MCP · Webhooks │
└──────────┬──────────────────────────────────┬───────────────┘
│ 任务派发 │ 结果回调
▼ ▲
┌──────────────────────┐ ┌────────────────────┐
│ openpr-webhook │ │ AI 代理 │
│ 事件路由 │── 派发 ── │ Codex / Claude / │
│ WSS 隧道 │ │ OpenCode │
└──────────┬───────────┘ └────────┬───────────┘
│ │
▼ ▼
┌──────────────────────────────────────────────────────────┐
│ PRX (Think) │
│ 19 通道 · 14 供应商 · 路由器 · 子代理 │
│ 自我进化 · 安全策略 · MCP 客户端 │
└──────────┬──────────┬──────────┬──────────┬──────────────┘
│ │ │ │
▼ ▼ ▼ ▼
prx-memory prx-email Fenfa WAF + SD
(Build) (Build) (Ship) (Protect)

主要集成协议。OpenPR 通过 HTTP、stdio 和 SSE 传输方式暴露 34 个 MCP 工具。PRX 作为 MCP 客户端进行连接。

OpenPR 通过 HMAC-SHA256 签名的 Webhook 触发 30 种事件类型。openpr-webhook 服务接收这些事件并将工作派发给 AI 代理。

对于位于 NAT/防火墙后的代理,openpr-webhook 支持到 OpenPR 控制面的出站 WebSocket 隧道。任务通过隧道接收、确认、执行,并将结果返回。

  1. Issue 创建 — 在 OpenPR 中手动或通过 API 创建
  2. 机器人任务分配 — OpenPR 触发 issue.created Webhook,带有机器人上下文
  3. Webhook 调度器 接收事件,匹配到代理配置
  4. CLI 执行器 启动编码代理(如 claude-code),使用模板化提示词
  5. 代理工作 — 阅读代码、进行修改、运行测试
  6. 代理使用 prx-memory 通过 MCP 回忆过往模式并存储新知识
  7. 结果回调 — 代理通过 MCP/API 将结果发回 OpenPR
  8. 状态变更 — Issue 从 in_progress 转为 done
  9. CI 构建 — 标准 CI/CD 流水线生成产物
  10. Fenfa 分发 — 构建产物通过 API 上传,分发到所有平台
  1. WAF 监控 通过 17 个检测阶段监控传入的 HTTP 流量
  2. SD 扫描 端点上的文件,使用哈希匹配、YARA 规则和 ML 推理
  3. 检测到威胁 → 自动响应(拦截、隔离、修复)
  4. 通知 通过 Webhook、邮件、Telegram 发送
  5. 未来规划:安全事件反馈回 OpenPR,生成 Issue 供 AI 驱动的响应
┌─────────────────────────┐
│ 服务器 │
│ ├── OpenPR (Docker) │
│ ├── PRX (二进制) │
│ ├── prx-memory (二进制) │
│ └── PostgreSQL │
└─────────────────────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐
│ OpenPR │ │ PRX │ │ Fenfa │
│ + Caddy │ │ 守护进程 │ │ + S3/R2 │
└────┬─────┘ └────┬─────┘ └──────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ WAF │ │ SD │
│ 集群 │ │ 守护进程 │
└──────────┘ └──────────┘