执行摘要 (Executive Summary)
大型语言模型 (LLM) 系统构建范式的演进:从提示词工程到自主智能体。
本报告深入综合了 OpenAI、Anthropic 以及开源社区(如 EleutherAI)在构建、评估和部署 LLM 驱动应用方面的最新研究与工程实践。
随着模型能力的提升,开发者正在从简单的“一次性提示词 (Zero-shot Prompting)”转向构建复杂的编排式工作流 (Orchestrated Workflows) 和自主智能体 (Autonomous Agents)。同时,评估方法也必须从临时的人工验证升级为严谨的评估驱动开发 (EDD)。
核心洞察 1:架构选择
并非所有任务都需要智能体。Anthropic 研究表明,对于大多数业务场景,具有确定性控制流的“工作流”比完全自主的智能体更可靠、更易于测试。
核心洞察 2:协议标准化
Anthropic 提出的 MCP (Model Context Protocol) 正在解决工具集成的碎片化问题,提供比特定供应商(如 OpenAI)Function Calling 更通用的客户端-服务器架构。
1. 架构模式:工作流 vs. 自主智能体
基于任务复杂性选择合适的 LLM 系统架构。
在本模块中,我们将对比分析 Anthropic 提出的几种核心架构模式。开发者在使用大模型时,通常面临在“控制力”与“自主性”之间做出权衡。了解这些模式有助于构建更加鲁棒的生产级系统。
1.1 工作流模式 (Workflows)
工作流是指由开发者通过代码预先定义执行路径和状态转移的系统。LLM 在其中充当特定节点的数据处理器。Anthropic 推荐了以下几种常见的工作流模式:
- 提示链 (Prompt Chaining): 将复杂任务分解为一系列线性步骤。上一步的输出作为下一步的输入。适用场景:文档翻译与总结、按部就班的分析。
- 路由 (Routing): 使用 LLM 分类输入,并将其引导至专用的处理逻辑或子模型。适用场景:客户服务工单分发、多模态请求处理。
- 并行化 (Parallelization): 将任务拆分并同时分发给多个 LLM 实例(分片或投票),然后聚合结果。适用场景:代码审查、高容错信息提取。
- 评估者-优化器 (Evaluator-Optimizer): 一个模型负责生成结果,另一个模型(或确定的逻辑)负责评估并提供反馈,循环迭代直到满足标准。适用场景:代码生成、文案打磨。
1.2 自主智能体 (Autonomous Agents)
与工作流不同,智能体拥有自主决定下一步操作和调用哪些工具的能力(例如:ReAct 架构)。控制流是由大模型本身在运行时动态生成的。
1.3 架构选择标准
多维架构对比:工作流 vs 智能体
数据源:基于 Anthropic "Building effective agents" 研究框架整理
当任务步骤明确、容错率低(例如:合规审批、精密数据提取)时,应优先选择工作流。
当任务目标宽泛、需要多步环境交互和动态探索(例如:开放式网络研究、通用代码辅助解决问题)时,再考虑引入智能体。
2. 评估工程与评估驱动开发 (EDD)
如何构建自动化、可扩展的大模型能力测试基准。
构建可靠 LLM 应用的最大障碍是难以量化模型的表现。本节综合了 OpenAI Evals、Anthropic 评估文档以及 EleutherAI LM Harness 的核心方法论,提出评估驱动开发 (Evaluation-Driven Development, EDD) 的范式。
2.1 什么是评估驱动开发 (EDD)?
类似于软件工程中的测试驱动开发 (TDD),EDD 要求在编写 Prompt 或系统代码之前,先定义评估指标和测试数据集。每次修改系统后,必须运行全套回归测试以防止性能退化。
2.2 构建黄金数据集 (Golden Datasets)
黄金数据集是系统评估的基石。根据 OpenAI 的建议,一个好的黄金数据集应包含输入、上下文和期望输出(或评分指南),并遵循以下结构:
标准用例 (70%)
反映用户最常提出的常规请求,测试基础覆盖率。
边缘用例 (20%)
模糊的指令、极长的上下文或格式错误的输入。
对抗性用例 (10%)
越狱尝试、提示词注入或故意误导的测试。
2.3 LLM 作为裁判 (LLM-as-a-judge)
传统 NLP 指标(如 BLEU, ROUGE)在评估生成式任务时表现不佳。当前行业最佳实践是使用能力最强的模型(如 GPT-4o 或 Claude 3.5 Sonnet)根据明确的评分量表 (Rubric) 对目标模型的输出进行打分。
LLM 裁判与人类专家的一致性比较 (示意)
数据展示了在精心设计的 Rubric 下,LLM-as-a-judge 能够极大地逼近人类评分准确度,实现低成本的大规模回归测试。
2.4 流行框架整合
- OpenAI Evals: 强大的框架,支持创建模型评测集,特别适合对比 OpenAI 不同模型版本(如 gpt-3.5 升级到 gpt-4)的回归情况。
- EleutherAI LM Evaluation Harness: 开源社区标准。提供数百个零样本/少样本基准测试,适合评估自托管的开源模型的基础能力。
3. 工具调用与 MCP 革命
从专有的 Function Calling 走向标准化的 Model Context Protocol。
工具调用 (Tool Use) 是智能体连接物理世界的基础。本节探讨从 OpenAI 引领的 Function Calling 到 Anthropic 提出的 MCP (Model Context Protocol) 的演进。
3.1 现状:OpenAI Function Calling
OpenAI 通过 API 原生支持函数调用。开发者在 API 请求中传递工具的 JSON Schema,模型决定是否调用工具并返回遵循该 schema 的 JSON 参数。这种方法极大地提高了结构化输出的可靠性,但存在严重缺陷:强耦合性。每个 API 客户端都需要单独实现与各类数据源(如数据库、Github、Notion)的对接逻辑。
3.2 破局:Model Context Protocol (MCP)
Anthropic 推出的 MCP 旨在创建一个类似 USB-C 的标准化协议,将 AI 模型与数据源解耦。它采用客户端-服务器架构:
LLM 宿主 (Host/Client)
如 Claude Desktop 或定制 AI 应用。只懂 MCP 协议,不关心底层数据。
MCP 服务器 (Servers)
本地或远程运行的微服务。负责对接具体系统(如 SQLite, Github API)。
3.3 范式对比与选型
| 特性 | Anthropic MCP | OpenAI Function Calling |
|---|---|---|
| 架构类型 | 分布式客户端-服务器协议 | API 层面的请求/响应约定 |
| 标准化程度 | 高(跨平台,一次编写多处使用) | 低(紧密绑定模型端点实现) |
| 开发体验 | 需部署单独的 MCP Server 进程 | 直接在应用代码中解析 JSON |
| 生态系统 | 快速增长的独立 Server 仓库 | 依赖应用各自为战或 LangChain 封装 |
4. 生产环境就绪
工程化保障:状态、错误与安全。
将大模型从实验室(Jupyter Notebook)搬到生产环境,需要解决一系列传统软件工程必须面对的挑战。本节总结了 OpenAI Cookbook 和业界构建 Agentic 系统的关键最佳实践。
🧠 状态与记忆管理
LLM 本质是无状态的。生产系统必须有效管理上下文窗口。
- 会话状态: 使用 Redis 或数据库存储短期对话历史。
- 长期记忆: 利用向量数据库 (Vector DBs) 实现 RAG,动态注入相关的历史上下文。
- 滑动窗口: 定期使用低成本模型总结长对话,防止超出 Token 限制。
⚠️ 错误处理与重试
模型的输出具有非确定性,API 调用可能失败或返回不符合 Schema 的数据。
- 格式回退: 当工具调用 JSON 解析失败时,自动将错误信息反馈给模型让其自我修正。
- 退避重试: 对 API 速率限制 (Rate limits) 实现指数退避算法 (Exponential Backoff)。
- 优雅降级: 主模型失效时,回退到更小、更快的备用模型。
🔒 沙箱与安全 (Sandboxing)
当智能体被赋予执行代码或操作系统级命令的权限时,安全是首要考量。
- 隔离执行: 绝不在主服务器执行 LLM 生成的 Python/Shell 代码。使用 Docker 容器或 Firecracker 微型虚拟机隔离。
- 最小权限原则: 工具的 API 密钥应限制为只读,或限定在极小的数据作用域内。
- 人机协作 (HITL): 对高风险操作(如发送邮件、修改数据库)强制要求人类确认。
参考文献与核心来源
-
🔗
Anthropic - Building effective agents
https://www.anthropic.com/research/building-effective-agents -
🔗
Anthropic - Evaluating model performance
https://docs.anthropic.com/en/docs/build-with-claude/evaluation -
🔗
Anthropic - Model Context Protocol (MCP)
https://modelcontextprotocol.io/ -
🔗
OpenAI - Evals Framework
https://github.com/openai/evals -
🔗
OpenAI - Prompt Engineering Guide
https://platform.openai.com/docs/guides/prompt-engineering -
🔗
OpenAI - Cookbook
https://cookbook.openai.com/ -
🔗
EleutherAI - LM Evaluation Harness
https://github.com/EleutherAI/lm-evaluation-harness