从 API 调用到生产级系统 — Prompt / RAG / Agent / Fine-tuning / 成本 / 安全 (2025-2026)
| 层级 | 核心职责 | 关键技术 | 典型工具 |
|---|---|---|---|
| 模型层 | 文本/图像/代码生成能力 | Transformer、MoE、多模态融合 | GPT-4o / Claude Opus / Llama 3 / Qwen2.5 |
| 编排层 | 组织 Prompt、管理上下文、链式调用 | Prompt Template、Chain、Router | LangChain / LlamaIndex / 自建 |
| 增强层 | 外部知识注入、工具调用 | RAG、Function Calling、MCP | 向量数据库 / Embedding API / Tool Registry |
| Agent 层 | 自主规划、多步执行、反思修正 | ReAct、Plan-Execute、Multi-Agent | Claude Agent SDK / AutoGen / LangGraph |
| 产品层 | 用户交互、流式输出、权限控制 | SSE/WebSocket、Auth、Rate Limiting | Vercel AI SDK / FastAPI / Next.js |
说明: 下表属于 2026 年上半年的工程快照,模型名、价格、上下文窗口和相对排序变化很快,实际选型请以官方模型页和定价页为准。
| 模型 | 厂商 | 上下文 | 强项 | 价格 (输入/输出 per 1M tokens) | 适用场景 |
|---|---|---|---|---|---|
| Claude Opus 4 | Anthropic | 200K | 深度推理、代码、长文本 | $15 / $75 | 复杂分析、Agent、代码生成 |
| Claude Sonnet 4 | Anthropic | 200K | 性价比、编码、指令遵循 | $3 / $15 | 日常开发、RAG、对话 |
| GPT-4o | OpenAI | 128K | 多模态、通用性 | $2.5 / $10 | 多模态应用、通用对话 |
| GPT-4o mini | OpenAI | 128K | 速度快、成本低 | $0.15 / $0.6 | 分类、提取、简单生成 |
| Gemini 2.0 Pro | 2M | 超长上下文、多模态 | $1.25 / $5 | 长文档分析、视频理解 | |
| DeepSeek-V3 | DeepSeek | 128K | 中文、代码、数学 | $0.27 / $1.1 | 中文场景、成本敏感 |
| 模型 | 参数量 | 许可 | 显存需求 (FP16) | 强项 | 部署方案 |
|---|---|---|---|---|---|
| Llama 3.1 405B | 405B | Llama License | ~800GB (需多机) | 接近 GPT-4 水平 | vLLM 多机 / API 服务商 |
| Llama 3.1 70B | 70B | Llama License | ~140GB (2×A100) | 性价比最优开源 | vLLM / TGI |
| Qwen2.5 72B | 72B | Apache 2.0 | ~144GB | 中文与通用任务上都很强的开源代表 | vLLM / Ollama |
| Mistral Large 2 | 123B | Research | ~246GB | 多语言、Function Calling | vLLM / Mistral API |
| Llama 3.1 8B | 8B | Llama License | ~16GB (单卡) | 轻量、微调友好 | Ollama / llama.cpp |
| Phi-3 Mini | 3.8B | MIT | ~8GB | 端侧、推理能力强 | llama.cpp / ONNX |
复杂推理/Agent: 优先看 Claude Opus、OpenAI 推理模型或高规格开源模型快照,具体要按任务评测结果决定
日常编码/对话: Claude Sonnet、GPT-4o mini、Qwen 等通常是性价比更高的常见选择
大批量处理: 小模型 API、成本友好的推理服务或自部署中等尺寸开源模型更常见
中文场景: Qwen、DeepSeek 等通常值得优先评估,但不要跳过你自己业务数据上的实际对比
隐私/合规: 自部署开源模型 (Llama/Qwen) — 数据不出域
端侧/离线: Phi-3 / Llama 8B / Qwen 7B + 量化 — 资源受限环境
1. 质量 vs 成本: 先用最好的模型验证可行性,再降级到够用的模型
2. 延迟要求: 实时对话 < 2s,后台处理可以 10s+
3. 数据隐私: 敏感数据必须自部署或使用有 DPA 的 API
4. 上下文长度: 长文档用 Gemini 2M / Claude 200K,短任务无所谓
过长 System Prompt: 超过 2000 tokens 后注意力分散,精简为核心规则
矛盾指令: "简洁回答" + "详细解释每一步" → 模型困惑
缺少负面示例: 只说"做什么"不说"不做什么",边界模糊
忽略位置效应: 关键指令放在 Prompt 中间容易被忽略 (Lost in the Middle)
| 环节 | 方法 | 工具 |
|---|---|---|
| 版本管理 | Git 管理 Prompt 文件,每次修改有 diff | Git / LangSmith / PromptLayer |
| A/B 测试 | 同一输入对比不同 Prompt 版本的输出质量 | 自建评测脚本 / Braintrust |
| 自动评测 | 用 LLM-as-Judge 打分 (GPT-4 评估其他模型输出) | OpenAI Evals / RAGAS / 自建 |
| 人工评测 | 标注员对输出打分,建立 Golden Dataset | Label Studio / 内部工具 |
| 回归测试 | 每次改 Prompt 跑固定测试集,防止退化 | CI/CD 集成 pytest + LLM 调用 |
| 策略 | 原理 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 固定长度 | 按 token 数切分 (512/1024) | 简单、可预测 | 可能切断语义 | 结构化文档、快速原型 |
| 递归分割 | 按段落→句子→字符逐级切分 | 保留语义边界 | chunk 大小不均匀 | 通用文档 (LangChain 默认) |
| 语义分割 | 用 Embedding 相似度检测语义断点 | 语义完整性最好 | 计算成本高 | 长文档、叙事性内容 |
| 文档结构 | 按标题/章节/表格等结构切分 | 保留文档层次 | 依赖文档格式 | 技术文档、法律合同 |
| 滑动窗口 | 固定长度 + 重叠区域 (overlap) | 减少边界信息丢失 | 存储冗余 | 需要上下文连续性的场景 |
| Parent-Child | 小 chunk 检索,返回父级大 chunk | 精准检索 + 完整上下文 | 实现复杂 | 问答系统、知识库 |
| 模型 | 维度 | 最大 tokens | 评测位置 | 特点 | 价格 |
|---|---|---|---|---|---|
| text-embedding-3-large | 3072 | 8191 | 商业模型第一梯队 | 通用性强,支持维度缩减 | $0.13/1M tokens |
| text-embedding-3-small | 1536 | 8191 | 性价比常用档 | 成本更低,适合大批量 | $0.02/1M tokens |
| Voyage-3 | 1024 | 32000 | 长文本强势档 | 超长上下文,代码/法律场景常被提及 | $0.06/1M tokens |
| BGE-M3 | 1024 | 8192 | 开源常用档 | 开源、多语言、多粒度 | 免费 (自部署) |
| GTE-Qwen2 | 768-1536 | 32000 | 中文场景强势档 | 阿里开源,中文任务表现突出 | 免费 (自部署) |
| Jina-embeddings-v3 | 1024 | 8192 | 多任务常用档 | 开源、多任务、Late Interaction | 免费 (自部署) |
向量检索 (语义) + BM25 (关键词) 融合,用 RRF 或加权合并。
初检 Top-50 → Reranker 精排 → 取 Top-5 送入 LLM。
用户原始查询往往不适合直接检索,需要改写优化。
| 数据库 | 类型 | 适用 |
|---|---|---|
| Milvus | 分布式 | 大规模生产 |
| Qdrant | Rust 实现 | 高性能、过滤 |
| Pinecone | 全托管 | 快速上手 |
| Chroma | 嵌入式 | 原型/小规模 |
| pgvector | PG 扩展 | 已有 PG 的团队 |
| 指标 | 衡量什么 | 计算方法 | 目标值 |
|---|---|---|---|
| Context Precision | 检索到的内容是否相关 | 相关 chunk 数 / 总检索数 | > 0.8 |
| Context Recall | 是否检索到了所有相关内容 | 被检索到的相关信息 / 总相关信息 | > 0.7 |
| Faithfulness | 生成内容是否忠于检索结果 | 有据可查的陈述 / 总陈述数 | > 0.9 |
| Answer Relevancy | 回答是否切题 | LLM-as-Judge 评分 | > 0.85 |
| Hallucination Rate | 幻觉比例 | 无法溯源的陈述 / 总陈述数 | < 0.1 |
交替进行推理和行动,每步都有 Thought → Action → Observation 循环。
先制定完整计划,再逐步执行。规划和执行分离。
多个专业 Agent 分工协作,各司其职。
执行后自我评估,从失败中学习并重试。
OpenAI Function Calling: JSON Schema 定义工具,模型返回函数名+参数
Claude Tool Use: 类似 OpenAI,但支持更复杂的嵌套参数和流式工具调用
MCP (Model Context Protocol): 由 Anthropic 发起并推动的开放协议方向,用于统一工具、资源和 Prompt 的接入方式
Tools: Agent 可调用的函数 (搜索、计算、API 调用)
Resources: 可读取的数据源 (文件、数据库、API 响应)
Prompts: 可复用的 Prompt 模板
Sampling: 服务端请求客户端 LLM 生成 (反向调用)
1. 原子性: 每个工具做一件事,不要组合多个操作
2. 描述清晰: 工具描述是给 LLM 看的,要像写文档一样清楚
3. 错误友好: 返回有意义的错误信息,帮助 Agent 自我修正
4. 幂等性: 相同输入产生相同结果,Agent 重试不会造成副作用
| 方法 | 原理 | 显存需求 | 训练速度 | 效果 | 适用 |
|---|---|---|---|---|---|
| Full Fine-tuning | 更新所有参数 | 极高 (模型×3) | 慢 | 最好 | 资源充足、数据多 |
| LoRA | 低秩矩阵分解,只训练小矩阵 | 低 (原模型+10%) | 快 | 接近全参 | 主流选择 |
| QLoRA | 4-bit 量化 + LoRA | 极低 (单卡可训 70B) | 中等 | 略低于 LoRA | 资源受限 |
| Prefix Tuning | 只训练前缀向量 | 极低 | 极快 | 一般 | 简单任务、多任务 |
| DPO | 直接偏好优化 (替代 RLHF) | 中等 | 中等 | 对齐效果好 | 风格/安全对齐 |
1. 多样性: 覆盖目标场景的各种变体,避免分布偏斜
2. 一致性: 相似问题的回答风格和格式统一
3. 准确性: 每条数据都经过人工验证,错误数据比没数据更糟
4. 长度分布: 训练数据的长度分布应匹配实际使用场景
5. 数量建议: 简单任务 500-1000 条 | 复杂任务 5000-10000 条 | 质量永远 > 数量
总成本 = (输入 tokens × 输入单价) + (输出 tokens × 输出单价) + 基础设施成本
关键认知: 输出 token 通常比输入贵 3-5 倍。减少输出比减少输入更省钱。
客服机器人 (1000 次/天,平均 2K input + 500 output): ~$105/月
RAG 知识库 (500 次/天,平均 4K input + 1K output): ~$120/月
代码 Agent (100 次/天,平均 10K input + 3K output): ~$225/月
cache_control 标记| 方案 | 月成本 (中等负载) | 优势 | 劣势 | 适合 |
|---|---|---|---|---|
| Claude/OpenAI API | $200-2000 | 零运维、最新模型、弹性伸缩 | 数据出域、成本随量增长 | 中小规模、快速迭代 |
| 自部署 Llama 70B (2×A100) | $3000-5000 (云) | 数据私有、无限调用、可微调 | 运维成本、模型能力弱于闭源 | 大规模、隐私要求高 |
| 推理 API (Together/Fireworks) | $100-800 | 开源模型 + 托管服务、成本低 | 模型选择有限、SLA 不如大厂 | 成本敏感、开源模型够用 |
直接注入: 用户输入中包含"忽略之前的指令,执行..."
间接注入: 恶意内容藏在 RAG 检索到的文档中,Agent 读取后被操控
越狱 (Jailbreak): 绕过安全限制,让模型输出有害内容
1. 输入过滤: 检测已知注入模式 (正则 + 分类器)
2. Prompt 隔离: 用 XML 标签/分隔符明确区分系统指令和用户输入
3. 输出校验: 检查模型输出是否包含敏感信息或异常行为
4. 权限最小化: Agent 工具只给必要权限,敏感操作需确认
5. 双 LLM 架构: 一个 LLM 执行,另一个 LLM 审查输出
| 风险 | 说明 | 应对措施 |
|---|---|---|
| 数据泄露 | 用户数据通过 API 发送给模型提供商 | DPA 协议 / 自部署 / 数据脱敏后再调用 |
| 模型记忆 | 训练数据可能被模型"记住"并泄露 | 使用 API (不参与训练) / 差分隐私微调 |
| PII 暴露 | 个人身份信息出现在 Prompt 或输出中 | PII 检测 + 脱敏 (Presidio / 正则) |
| 合规要求 | GDPR / 中国《个人信息保护法》/ HIPAA | 数据本地化 / 用户同意 / 审计日志 |
| 版权风险 | 模型输出可能包含受版权保护的内容 | 输出检测 / 引用标注 / 使用有版权保障的 API |
| 工具 | 模式 | 模型 | 核心能力 | 价格 | 适合 |
|---|---|---|---|---|---|
| Claude Code | CLI Agent | Claude Opus/Sonnet | 全自主编码、多文件修改、终端操作 | 按 token 计费 | 复杂工程任务、重构 |
| Cursor | IDE (VS Code fork) | 多模型可选 | 代码补全、Chat、Composer 多文件编辑 | $20/月 Pro | 日常开发、快速迭代 |
| GitHub Copilot | IDE 插件 | GPT-4o / Claude | 行级补全、Chat、Workspace | $10-19/月 | 代码补全、学习辅助 |
| Windsurf | IDE (VS Code fork) | 多模型 | Cascade 流式编辑、上下文感知 | 订阅制,价格以官方页为准 | 快速迭代、交互式开发 |
| Devin | 自主 Agent | 自研 | 全自主开发、PR 提交、部署 | $500/月 | 独立任务、自动化 |
| Augment Code | IDE 插件 | 自研 | 大型代码库理解、跨文件导航 | $30/月 | 大型企业代码库 |
1. 给足上下文: 相关文件、需求描述、约束条件越清楚,输出质量越高
2. 迭代而非一次性: 复杂任务分步完成,每步验证后再继续
3. 审查每一行: AI 生成的代码必须人工审查,尤其是安全相关逻辑
4. 测试驱动: 先写测试,再让 AI 实现,用测试验证正确性
5. 保持代码所有权: 理解 AI 写的每一行代码,不理解的不要合入
- 架构决策: AI 擅长实现,不擅长做权衡取舍
- 业务逻辑: 复杂业务规则需要人类理解和验证
- 安全审计: AI 可能引入漏洞,安全关键代码需额外审查
- 性能优化: AI 倾向于"能跑"而非"跑得快"
| 类别 | 检查项 | 优先级 |
|---|---|---|
| 可靠性 | API 调用有超时设置 (建议 30-60s) | P0 |
| 失败时有重试机制 (指数退避,最多 3 次) | P0 | |
| 模型不可用时有降级方案 (备用模型/缓存/人工) | P0 | |
| 输出格式校验 (JSON Schema / Pydantic) | P1 | |
| 可观测性 | 记录每次 LLM 调用的 input/output/latency/cost | P0 |
| 业务指标仪表盘 (成功率、用户满意度) | P1 | |
| 异常告警 (错误率突增、延迟飙升、成本异常) | P1 | |
| 链路追踪 (多步 Agent 的完整执行路径) | P2 | |
| 安全 | 用户输入过滤 (Prompt 注入检测) | P0 |
| 输出审核 (有害内容/PII 泄露检测) | P0 | |
| API Key 不硬编码,使用环境变量/密钥管理 | P0 | |
| 敏感操作需人工确认 (Agent 场景) | P1 | |
| 成本 | 设置每用户/每请求的 token 上限 | P0 |
| 月度成本预算告警 | P1 | |
| Prompt 缓存已启用 | P1 | |
| 非实时任务使用 Batch API | P2 | |
| 质量 | 有评测数据集 (至少 100 条 Golden Cases) | P0 |
| Prompt 修改后跑回归测试 | P1 | |
| 定期人工抽检输出质量 | P1 |