Skip to content

系统设计与架构 v2

基于联网调研的对抗性分析版本,对原有架构进行勘误、丰富与升级。聚焦 2025-2026 年最新工程实践。


一、整体架构演进:从分层到分层+弹性

原版六层架构整体有效,但缺失三个关键层:可观测性层、弹性层、安全防护层。2026 年生产级系统必须包含这三层,否则在 SLA 压测和真实攻击面前无法存活。

v2 核心修正:新增三层

新增层说明优先级
安全防护层(Security)提示词注入防御、输入净化、输出审核极高
弹性层(Resilience)重试+指数退避、节点级超时、熔断降级
可观测性层(Observability)LangSmith/OpenTelemetry 全链路追踪、结构化日志

v2 完整架构图

┌─────────────────────────────────────────────────────────────────┐
│                        用户接入层                                │
│              (Web / APP / 企业微信 / API / 语音)                  │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                     API 网关层                                    │
│          (FastAPI / Kong / AWS API Gateway)                     │
│              负载均衡 / 限流 / JWT 认证 / TLS 1.3                 │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                   安全防护层 (Security)                          │
│    ┌─────────────┬─────────────┬─────────────┬──────────────┐   │
│    │ 提示词注入    │  语义过滤    │  意图越界    │   输出审核    │   │
│    │ 检测 Guard  │  (Meta     │  检测模型    │   (合规过滤)   │   │
│    │             │  Firewall) │             │              │   │
│    └─────────────┴─────────────┴─────────────┴──────────────┘   │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                      需求感知层 (Perception)                     │
│  ┌───────────┬───────────┬───────────┬───────────────────┐     │
│  │  意图分类  │  实体抽取  │  情感分析  │  上下文补全/问题重写 │    │
│  │  (BERT/   │ (BiLSTM-  │  (BERT)   │   (Revise Q)      │     │
│  │  Qwen)    │  CRF)     │          │                   │     │
│  └───────────┴───────────┴───────────┴───────────────────┘     │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                    规划决策层 (Planner)                          │
│              (规则引擎 + LLM 动态规划 / LangGraph)                │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                      工具执行层 (Tools)                          │
│  ┌───────────┬───────────┬───────────┬───────────────────┐      │
│  │ 知识图谱  │  向量检索   │  外部 API  │  代码解释器/MCP    │      │
│  │ 检索Agent │  检索Agent │  调用Agent│  工具调用Agent   │      │
│  └───────────┴───────────┴───────────┴───────────────────┘      │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                    用户交互层 (Interaction)                      │
│  ┌───────────┬───────────┬───────────┬───────────────────┐      │
│  │  会话状态  │  响应生成  │  个性化渲染 │   转人工兜底      │      │
│  │  追踪     │  (LLM)    │  (Prompt) │   (Fallback)      │      │
│  └───────────┴───────────┴───────────┴───────────────────┘      │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                    弹性层 (Resilience)                           │
│  ┌───────────┬───────────┬───────────┬───────────────────┐      │
│  │ 重试+退避  │ 节点级超时  │  熔断降级  │   模型降级兜底     │      │
│  │ (Retry)  │ (Timeout) │ (Breaker) │  (Rule Engine)    │      │
│  └───────────┴───────────┴───────────┴───────────────────┘      │
└─────────────────────────────────────────────────────────────────┘
                               ↓
┌─────────────────────────────────────────────────────────────────┐
│                  可观测性层 (Observability)                       │
│  ┌───────────┬───────────┬───────────┬───────────────────┐      │
│  │ LangSmith │ OTLP     │ 结构化日志 │   成本追踪/Cost    │      │
│  │ 追踪      │  Trace   │           │   Budget Guard   │      │
│  └───────────┴───────────┴───────────┴───────────────────┘      │
└─────────────────────────────────────────────────────────────────┘

二、安全防护层:对抗性分析

原版问题

原版仅使用「Few-Shot 毒性检测」作为边界防御,存在以下隐患:

  1. 单模型无主动筛查:LLM 几乎无条件信任用户输入,无法自我防御注入
  2. 容易被绕过:简单的 ignore previous instructions 指令可部分绕过
  3. 缺乏层次:仅依赖 System Prompt 约束,无独立防护节点
  4. OWASP LLM01 2025 排名第一:提示词注入已被列为大模型应用最高风险

v2 修正:纵深防御架构

借鉴 UC Berkeley + Meta(USENIX Security 2025)和阿里云 WAF 方案,构建四层防御:

第一层:规则引擎预检(毫秒级)

关键词黑名单 → 拒绝注入尝试(如 "ignore previous", "system prompt", "you are now")
正则匹配 → 拒绝格式异常输入

第二层:语义过滤模型(22M~86M 轻量 BERT)

Meta LlamaFirewall(开源)
├─ TinyBERT 22M → CPU 可推理,毫秒级预检
└─ BaseBERT 86M → 高精度语义检测

配合意图分类器识别越界/诱导行为

第三层:双 LLM 协作过滤

用户输入 → LLM-A(过滤模型,低温度,严格逻辑)
         → 清洗后内容 → LLM-B(生成模型)

LLM-A 无记忆(每次视为新对话),大幅降低被逐步诱导的风险

第四层:输出审核(合规过滤)

生成结果 → 内容安全审核 → 拦截敏感信息/违规内容

关键修正:不能仅靠 System Prompt

OWASP 和阿里云实践均表明:单一 LLM 无法做到完全防御提示词注入。必须通过多模型协作、流程设计、规则限制构建纵深防御。


三、弹性层:生产级可靠性保障

原版缺失

原版提到「引擎降级」和「转人工」,但缺乏系统化的弹性设计。生产级系统需要:

v2 新增:弹性三件套

1. 重试+指数退避(Retry with Backoff)

请求失败 → 立即重试 → 1s 退避 → 重试 → 2s 退避 → 重试 → 4s 退避
超过最大重试次数 → 降级/转人工

关键原则:

  • 幂等性:所有工具调用必须设计为幂等操作
  • 退避上限:防止无限重试导致成本失控
  • 递归限制:LangGraph 原生支持 recursion_limit,防止成本暴走

2. 节点级超时(Per-Node Timeout)

每个 Agent 节点设置独立超时:
- 检索节点:P99 ≤ 300ms
- 生成节点:P99 ≤ 1.2s
- 工具调用节点:视具体 API SLA 设定的超时

超时 → 降级兜底,不阻塞整个流程

3. 熔断降级(Breaker Pattern)

连续 N 次失败 → 熔断器打开 → 跳过 LLM 路径 → 规则引擎兜底
恢复期后 → 半开状态 → 探测正常 → 关闭熔断器

模型降级方案对比

方案说明适用场景
LLM 不可用 → 规则引擎简单兜底简单 FAQ 场景
LLM 不可用 → 本地小模型Ollama 部署 7B 模型有 GPU 资源
LLM 置信度低 → 规则引擎动态判断复杂对话
推荐:三层降级LLM → 小模型 → 规则引擎 → 转人工生产级标准

四、可观测性层:LangSmith + OTLP

原版缺失

原版完全没有可观测性设计。2025 年生产级系统的核心运营需求:

v2 关键指标体系

维度指标目标值
准确性事实准确率≥ 90%(关键信息 95%)
解决率首次解决率 (FCR)≥ 50%+
转人工转人工率15-25%(最优区间)
响应速度P99 延迟≤ 1.2s
幻觉率hallucination rate≤ 0.01%(行业优秀水平)
满意度AI-influenced CSAT≥ 3.5/5
安全提示词注入拦截率≥ 95%

LangSmith 集成方案

LangGraph 内置 LangSmith 支持,可在每个节点记录:

  • 输入/输出 token 数量(成本追踪)
  • 执行时间(延迟分析)
  • 工具调用记录(调试)
  • 错误日志(根因分析)
python
from langgraph.constants import LangSmithextra
config = {"tags": ["customer-service", "production"], "metadata": {"user_id": user_id}}

OTLP 集成(可选)

支持 OpenTelemetry 标准,与企业现有监控系统(Prometheus/Grafana)打通。


五、工具扩展性:MCP + A2A 协议

原版问题

原版提到 MCP 但未深入。2025 年 MCP 已成为 Agent 工具调用的事实标准,A2A 协议(Agent-to-Agent)开始普及。

MCP(Model Context Protocol)

MCP 是 Anthropic 主导的 Agent 工具调用标准协议,优势:

  • 发现机制:Agent 自动发现 MCP 服务器提供的工具能力,无需硬编码
  • 标准化:工具定义、调用、响应格式统一
  • 生态:已有 200+ 预构建工具(LangChain 生态)

A2A(Agent-to-Agent)协议

Google 推出的 Agent 间通信协议,解决不同框架(LangGraph/CrewAI)间的 Agent 互操作问题。

v2 建议架构

LangGraph(State Machine 骨架)
  ├─ 外部 Agent 发现 → MCP 服务器
  ├─ 跨框架 Agent 协作 → A2A 协议
  └─ 持久化状态 → Checkpointer(跨会话记忆)

LangGraph 远程图执行(试验性)
  ├─ Planner 节点 → 小实例,独立扩缩容
  ├─ Researcher 节点 → 可水平扩展
  └─ 独立部署各 Agent,弹性扩容

六、框架选型决策树(v2 更新)

基于最新调研(2026),多 Agent 框架选择决策树:

业务复杂度
    ├── 简单(1-2 个工具,固定流程)
    │       └── 推荐:Dify / Coze(低代码,快速上线)
    │
    ├── 中等(3-5 个工具,需状态管理)
    │       ├── 快速原型 → CrewAI(角色编排,2-4 小时上手)
    │       └── 生产级 → LangGraph(状态机,精确控制)
    │
    └── 复杂(5+ 工具,多条件分支,需容错)
            ├── 精确控制需求高 → LangGraph(优先)
            ├── 团队有图论/状态机经验 → LangGraph
            └── 快速验证优先 + 角色分明 → CrewAI + LangGraph 混合

LangGraph vs CrewAI 关键差异

维度LangGraphCrewAI
架构图论/状态机(DCG)角色团队(Role-based Crew)
学习曲线陡(1-2 周)缓(数小时)
状态管理显式状态 schema + checkpointing隐式(对话输出传递)
条件分支条件边(first-class)需自定义逻辑
循环/重试递归限制 + 反馈循环脆弱,可能死循环
人在回路Breakpoint 支持基础回调
流式输出每节点 token 流有限
调试优秀(状态可见)中等
生产就绪度中(原型→生产有复杂度墙)

七、修正后的演进路径

修正:原版 MVP 建议过于简化

原版 MVP 直接推荐「Simple Vector Store(内存)」,实际生产中存在数据丢失风险。

v2 三阶段演进

阶段 1:MVP(1-2 周)
├─ 平台:Dify / Coze(低代码)
├─ 向量库:Chroma(持久化 SQLite,非内存)
├─ 知识源:FAQ + 核心文档
└─ 目标:验证核心对话体验

阶段 2:生产级(3-8 周)
├─ 框架:LangGraph(状态机编排)
├─ 向量库:Milvus(分布式持久化)
├─ 缓存:Redis LRU(热点知识)
├─ 安全:四层纵深防御
├─ 弹性:重试+超时+熔断
└─ 目标:高可用 SLA

阶段 3:企业级(8+ 周)
├─ 多 Agent 编排(CrewAI/LangGraph)
├─ 知识图谱(Neo4j + GraphRAG)
├─ 可观测性:LangSmith + OTLP
├─ MCP 工具生态
└─ 目标:复杂业务闭环 + 持续运营

八、关键修正总结

原版问题v2 修正
缺失安全防护层新增四层纵深防御(MCP Guard + 语义过滤 + 双 LLM + 输出审核)
缺失弹性层新增重试+退避、节点级超时、熔断降级
缺失可观测性层新增 LangSmith + OTLP 集成,关键指标体系
过度依赖 System Prompt 防御提示词注入必须作为独立前置节点,不可依赖 LLM 自我保护
MVP 向量库选型(内存)有数据丢失风险改为 Chroma SQLite 持久化
LangGraph vs CrewAI 选择模糊新增决策树和深度对比
框架演进路径不完整补充 MCP、A2A 协议和远程图执行
评估指标缺失补充行业基准(85%+ 准确率、15-25% 转人工率、0.01% 幻觉率)

九、参考资料

Released under the MIT License.