AI 工程实战图谱

从 API 调用到生产级系统 — Prompt / RAG / Agent / Fine-tuning / 成本 / 安全 (2025-2026)

一、AI 应用架构分层
Layer 1
模型层
LLM / 多模态
Layer 2
编排层
Prompt / Chain
Layer 3
增强层
RAG / Tools
Layer 4
Agent 层
规划 / 执行
Layer 5
产品层
UI / API / 集成
层级核心职责关键技术典型工具
模型层文本/图像/代码生成能力Transformer、MoE、多模态融合GPT-4o / Claude Opus / Llama 3 / Qwen2.5
编排层组织 Prompt、管理上下文、链式调用Prompt Template、Chain、RouterLangChain / LlamaIndex / 自建
增强层外部知识注入、工具调用RAG、Function Calling、MCP向量数据库 / Embedding API / Tool Registry
Agent 层自主规划、多步执行、反思修正ReAct、Plan-Execute、Multi-AgentClaude Agent SDK / AutoGen / LangGraph
产品层用户交互、流式输出、权限控制SSE/WebSocket、Auth、Rate LimitingVercel AI SDK / FastAPI / Next.js
二、模型选型决策矩阵
2.1 闭源模型对比 (API 调用)

说明: 下表属于 2026 年上半年的工程快照,模型名、价格、上下文窗口和相对排序变化很快,实际选型请以官方模型页和定价页为准。

模型厂商上下文强项价格 (输入/输出 per 1M tokens)适用场景
Claude Opus 4Anthropic200K深度推理、代码、长文本$15 / $75复杂分析、Agent、代码生成
Claude Sonnet 4Anthropic200K性价比、编码、指令遵循$3 / $15日常开发、RAG、对话
GPT-4oOpenAI128K多模态、通用性$2.5 / $10多模态应用、通用对话
GPT-4o miniOpenAI128K速度快、成本低$0.15 / $0.6分类、提取、简单生成
Gemini 2.0 ProGoogle2M超长上下文、多模态$1.25 / $5长文档分析、视频理解
DeepSeek-V3DeepSeek128K中文、代码、数学$0.27 / $1.1中文场景、成本敏感
2.2 开源模型对比 (自部署)
模型参数量许可显存需求 (FP16)强项部署方案
Llama 3.1 405B405BLlama License~800GB (需多机)接近 GPT-4 水平vLLM 多机 / API 服务商
Llama 3.1 70B70BLlama License~140GB (2×A100)性价比最优开源vLLM / TGI
Qwen2.5 72B72BApache 2.0~144GB中文与通用任务上都很强的开源代表vLLM / Ollama
Mistral Large 2123BResearch~246GB多语言、Function CallingvLLM / Mistral API
Llama 3.1 8B8BLlama License~16GB (单卡)轻量、微调友好Ollama / llama.cpp
Phi-3 Mini3.8BMIT~8GB端侧、推理能力强llama.cpp / ONNX
2.3 选型决策树

按场景选模型

复杂推理/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,短任务无所谓

三、Prompt Engineering 进阶
3.1 Prompt 设计模式
结构化 System Prompt
  • 角色定义: 明确身份、能力边界、行为约束
  • 输出格式: JSON Schema / XML / Markdown 模板
  • 优先级: 用编号或 XML 标签标记指令优先级
  • 示例: 1-3 个 Few-shot 示例锚定输出风格
  • 边界: 明确说"不要做什么"比"做什么"更有效
Chain of Thought (CoT)
  • Zero-shot CoT: "Let's think step by step"
  • Few-shot CoT: 提供带推理过程的示例
  • Self-Consistency: 多次采样取多数投票
  • Tree of Thought: 分支探索 + 回溯
  • 适用: 数学、逻辑、多步推理任务
Prompt 分层架构
  • System: 全局角色 + 规则 (不变)
  • Context: RAG 检索结果 / 工具输出 (动态)
  • History: 对话历史 (滑动窗口)
  • User: 当前用户输入
  • 原则: 越重要的信息放越前面 (Primacy Effect)
输出控制技巧
  • Structured Outputs: 若平台支持,优先使用 JSON Schema / 结构化输出约束,而不只依赖 JSON mode
  • Prefill: 预填充 Assistant 开头引导格式
  • Schema 约束: 提供 TypeScript 接口定义
  • Stop Sequences: 控制生成终止点
  • Temperature: 0 = 确定性,0.7 = 创意,1.0 = 随机
3.2 Prompt 工程最佳实践

结构化 Prompt 模板 (Claude 风格)

<system> 你是一个专业的 {role}。 <rules> 1. 始终用中文回答 2. 输出格式为 JSON 3. 不确定时说"我不确定"而非编造 </rules> <output_format> { "answer": "string", "confidence": "high | medium | low", "sources": ["string"] } </output_format> <examples> 用户: {example_input} 助手: {example_output} </examples> </system>

常见错误

过长 System Prompt: 超过 2000 tokens 后注意力分散,精简为核心规则

矛盾指令: "简洁回答" + "详细解释每一步" → 模型困惑

缺少负面示例: 只说"做什么"不说"不做什么",边界模糊

忽略位置效应: 关键指令放在 Prompt 中间容易被忽略 (Lost in the Middle)

3.3 Prompt 版本管理与评测
环节方法工具
版本管理Git 管理 Prompt 文件,每次修改有 diffGit / LangSmith / PromptLayer
A/B 测试同一输入对比不同 Prompt 版本的输出质量自建评测脚本 / Braintrust
自动评测用 LLM-as-Judge 打分 (GPT-4 评估其他模型输出)OpenAI Evals / RAGAS / 自建
人工评测标注员对输出打分,建立 Golden DatasetLabel Studio / 内部工具
回归测试每次改 Prompt 跑固定测试集,防止退化CI/CD 集成 pytest + LLM 调用
四、RAG 工程实战
4.1 RAG 架构全流程
文档摄入
PDF/网页/DB
分块策略
Chunking
向量化
Embedding
检索 + 重排
Retrieval
生成 + 引用
Generation
4.2 Chunking 策略对比
策略原理优点缺点适用场景
固定长度按 token 数切分 (512/1024)简单、可预测可能切断语义结构化文档、快速原型
递归分割按段落→句子→字符逐级切分保留语义边界chunk 大小不均匀通用文档 (LangChain 默认)
语义分割用 Embedding 相似度检测语义断点语义完整性最好计算成本高长文档、叙事性内容
文档结构按标题/章节/表格等结构切分保留文档层次依赖文档格式技术文档、法律合同
滑动窗口固定长度 + 重叠区域 (overlap)减少边界信息丢失存储冗余需要上下文连续性的场景
Parent-Child小 chunk 检索,返回父级大 chunk精准检索 + 完整上下文实现复杂问答系统、知识库
4.3 Embedding 模型选型
模型维度最大 tokens评测位置特点价格
text-embedding-3-large30728191商业模型第一梯队通用性强,支持维度缩减$0.13/1M tokens
text-embedding-3-small15368191性价比常用档成本更低,适合大批量$0.02/1M tokens
Voyage-3102432000长文本强势档超长上下文,代码/法律场景常被提及$0.06/1M tokens
BGE-M310248192开源常用档开源、多语言、多粒度免费 (自部署)
GTE-Qwen2768-153632000中文场景强势档阿里开源,中文任务表现突出免费 (自部署)
Jina-embeddings-v310248192多任务常用档开源、多任务、Late Interaction免费 (自部署)
4.4 检索优化策略
混合检索 (Hybrid Search)

向量检索 (语义) + BM25 (关键词) 融合,用 RRF 或加权合并。

  • 向量擅长: 语义相似、同义词、意图理解
  • BM25 擅长: 精确匹配、专有名词、编号
  • 融合后覆盖率提升 15-30%
重排序 (Reranker)

初检 Top-50 → Reranker 精排 → 取 Top-5 送入 LLM。

  • Cohere Rerank: API 调用,效果好
  • BGE-Reranker-v2: 开源,可自部署
  • Cross-Encoder: 精度最高但最慢
  • Reranker 通常能提升 10-20% 准确率
查询改写 (Query Rewriting)

用户原始查询往往不适合直接检索,需要改写优化。

  • HyDE: 先让 LLM 生成假设答案,用答案做检索
  • Multi-Query: 将一个问题拆成多个子查询
  • Step-Back: 先问更抽象的问题获取背景
  • 历史融合: 多轮对话中融合上下文改写查询
向量数据库选型
数据库类型适用
Milvus分布式大规模生产
QdrantRust 实现高性能、过滤
Pinecone全托管快速上手
Chroma嵌入式原型/小规模
pgvectorPG 扩展已有 PG 的团队
4.5 RAG 评测体系
指标衡量什么计算方法目标值
Context Precision检索到的内容是否相关相关 chunk 数 / 总检索数> 0.8
Context Recall是否检索到了所有相关内容被检索到的相关信息 / 总相关信息> 0.7
Faithfulness生成内容是否忠于检索结果有据可查的陈述 / 总陈述数> 0.9
Answer Relevancy回答是否切题LLM-as-Judge 评分> 0.85
Hallucination Rate幻觉比例无法溯源的陈述 / 总陈述数< 0.1
五、Agent 架构与实战
5.1 Agent 架构模式
ReAct (Reasoning + Acting)

交替进行推理和行动,每步都有 Thought → Action → Observation 循环。

  • 最简单的 Agent 模式
  • 适合: 工具调用、信息检索
  • 缺点: 容易陷入循环、缺乏全局规划
  • 框架: LangChain AgentExecutor
Plan-and-Execute

先制定完整计划,再逐步执行。规划和执行分离。

  • Planner: 分解任务为子步骤
  • Executor: 逐步执行每个子任务
  • Re-planner: 根据执行结果调整计划
  • 适合: 复杂多步任务
Multi-Agent 协作

多个专业 Agent 分工协作,各司其职。

  • Orchestrator: 分配任务、汇总结果
  • Workers: 各自专精一个领域
  • Critic: 审查其他 Agent 的输出
  • 框架: AutoGen / CrewAI / LangGraph
Reflexion (反思)

执行后自我评估,从失败中学习并重试。

  • Execute → Evaluate → Reflect → Retry
  • 维护经验记忆 (episodic memory)
  • 适合: 代码生成、复杂推理
  • 代表: Claude Code 的自我修正机制
5.2 工具调用 (Function Calling / Tool Use)

三种主流协议

OpenAI Function Calling: JSON Schema 定义工具,模型返回函数名+参数

Claude Tool Use: 类似 OpenAI,但支持更复杂的嵌套参数和流式工具调用

MCP (Model Context Protocol): 由 Anthropic 发起并推动的开放协议方向,用于统一工具、资源和 Prompt 的接入方式

MCP 核心概念

Tools: Agent 可调用的函数 (搜索、计算、API 调用)

Resources: 可读取的数据源 (文件、数据库、API 响应)

Prompts: 可复用的 Prompt 模板

Sampling: 服务端请求客户端 LLM 生成 (反向调用)

工具设计原则

1. 原子性: 每个工具做一件事,不要组合多个操作

2. 描述清晰: 工具描述是给 LLM 看的,要像写文档一样清楚

3. 错误友好: 返回有意义的错误信息,帮助 Agent 自我修正

4. 幂等性: 相同输入产生相同结果,Agent 重试不会造成副作用

5.3 生产级 Agent 的关键挑战
可靠性
  • LLM 输出不确定 → 工具参数格式错误
  • 解决: 输出校验 + 重试 + 降级策略
  • 解决: Structured Outputs / schema 约束输出
  • 解决: 关键路径用确定性代码,非关键用 LLM
成本控制
  • 一个 Agent 请求可能调用 10-50 次 LLM
  • 解决: 设置最大步数 (max_iterations)
  • 解决: 简单子任务用小模型
  • 解决: 缓存重复查询结果
安全边界
  • Agent 有执行能力 → 可能被 Prompt 注入利用
  • 解决: 工具权限最小化
  • 解决: 敏感操作需人工确认 (Human-in-the-loop)
  • 解决: 沙箱执行 (Docker/VM)
可观测性
  • Agent 行为链路长,出错难定位
  • 解决: 每步记录 Thought/Action/Observation
  • 解决: LangSmith / Helicone 追踪
  • 解决: 结构化日志 + 链路 ID
六、Fine-tuning 实操指南
6.1 什么时候需要微调

适合微调的场景

  • 需要特定输出格式/风格 (Prompt 难以稳定控制)
  • 领域专业术语和知识 (医疗/法律/金融)
  • 成本敏感: 微调小模型替代大模型 API
  • 延迟敏感: 自部署微调模型 < API 调用
  • 数据隐私: 不能将数据发送给第三方
  • 已有高质量标注数据 (1000+ 条)

不适合微调的场景

  • Prompt Engineering 就能解决的问题
  • 需要实时更新的知识 (用 RAG 代替)
  • 数据量不足 (< 100 条高质量样本)
  • 任务太泛 (通用对话不如用大模型)
  • 快速迭代阶段 (微调周期长,不利于试错)
  • 没有评测体系 (无法衡量微调效果)
6.2 微调方法对比
方法原理显存需求训练速度效果适用
Full Fine-tuning更新所有参数极高 (模型×3)最好资源充足、数据多
LoRA低秩矩阵分解,只训练小矩阵低 (原模型+10%)接近全参主流选择
QLoRA4-bit 量化 + LoRA极低 (单卡可训 70B)中等略低于 LoRA资源受限
Prefix Tuning只训练前缀向量极低极快一般简单任务、多任务
DPO直接偏好优化 (替代 RLHF)中等中等对齐效果好风格/安全对齐
6.3 微调数据准备

数据格式 (对话式)

{"messages": [ {"role": "system", "content": "你是一个专业的法律顾问"}, {"role": "user", "content": "劳动合同到期不续签,公司需要赔偿吗?"}, {"role": "assistant", "content": "根据《劳动合同法》第四十六条..."} ]}

数据质量清单

1. 多样性: 覆盖目标场景的各种变体,避免分布偏斜

2. 一致性: 相似问题的回答风格和格式统一

3. 准确性: 每条数据都经过人工验证,错误数据比没数据更糟

4. 长度分布: 训练数据的长度分布应匹配实际使用场景

5. 数量建议: 简单任务 500-1000 条 | 复杂任务 5000-10000 条 | 质量永远 > 数量

七、成本优化策略
7.1 Token 成本分析

成本构成

总成本 = (输入 tokens × 输入单价) + (输出 tokens × 输出单价) + 基础设施成本

关键认知: 输出 token 通常比输入贵 3-5 倍。减少输出比减少输入更省钱。

典型场景月成本估算 (Claude Sonnet)

客服机器人 (1000 次/天,平均 2K input + 500 output): ~$105/月

RAG 知识库 (500 次/天,平均 4K input + 1K output): ~$120/月

代码 Agent (100 次/天,平均 10K input + 3K output): ~$225/月

7.2 优化手段
Prompt 缓存 (Prompt Caching)
  • Anthropic/OpenAI 支持缓存 System Prompt
  • 相同前缀的请求可共享缓存,长前缀场景下输入成本通常能显著下降
  • 适合: 长 System Prompt + 短用户输入
  • 实现: 设置 cache_control 标记
模型路由 (Model Router)
  • 简单问题 → 小模型 (GPT-4o mini / Haiku)
  • 复杂问题 → 大模型 (Opus / GPT-4o)
  • 路由策略: 规则 / 分类器 / LLM 自判断
  • 效果: 合理路由通常能显著降低成本,但需要用你自己的任务集验证质量回退是否可接受
语义缓存 (Semantic Cache)
  • 相似问题命中缓存,直接返回历史答案
  • 用 Embedding 相似度判断是否命中
  • 适合: FAQ、重复性高的场景
  • 工具: GPTCache / Redis + 向量搜索
批处理 (Batch API)
  • 非实时任务优先评估官方 Batch / 批处理接口,通常会比同步请求更便宜
  • 具体折扣、延迟和可用性以平台当期官方定价与文档为准
  • 适合: 数据标注、批量分类、内容生成
  • 延迟: 24 小时内返回结果
7.3 自部署 vs API 成本对比
方案月成本 (中等负载)优势劣势适合
Claude/OpenAI API$200-2000零运维、最新模型、弹性伸缩数据出域、成本随量增长中小规模、快速迭代
自部署 Llama 70B (2×A100)$3000-5000 (云)数据私有、无限调用、可微调运维成本、模型能力弱于闭源大规模、隐私要求高
推理 API (Together/Fireworks)$100-800开源模型 + 托管服务、成本低模型选择有限、SLA 不如大厂成本敏感、开源模型够用
八、AI 应用安全与合规
8.1 Prompt 注入攻击与防护

攻击类型

直接注入: 用户输入中包含"忽略之前的指令,执行..."

间接注入: 恶意内容藏在 RAG 检索到的文档中,Agent 读取后被操控

越狱 (Jailbreak): 绕过安全限制,让模型输出有害内容

防护策略

1. 输入过滤: 检测已知注入模式 (正则 + 分类器)

2. Prompt 隔离: 用 XML 标签/分隔符明确区分系统指令和用户输入

3. 输出校验: 检查模型输出是否包含敏感信息或异常行为

4. 权限最小化: Agent 工具只给必要权限,敏感操作需确认

5. 双 LLM 架构: 一个 LLM 执行,另一个 LLM 审查输出

8.2 数据隐私与合规
风险说明应对措施
数据泄露用户数据通过 API 发送给模型提供商DPA 协议 / 自部署 / 数据脱敏后再调用
模型记忆训练数据可能被模型"记住"并泄露使用 API (不参与训练) / 差分隐私微调
PII 暴露个人身份信息出现在 Prompt 或输出中PII 检测 + 脱敏 (Presidio / 正则)
合规要求GDPR / 中国《个人信息保护法》/ HIPAA数据本地化 / 用户同意 / 审计日志
版权风险模型输出可能包含受版权保护的内容输出检测 / 引用标注 / 使用有版权保障的 API
8.3 幻觉控制
预防措施
  • RAG: 让模型基于检索结果回答,而非凭记忆
  • Prompt: 明确要求"如果不确定就说不知道"
  • Temperature: 降低 temperature 减少随机性
  • Grounding: 要求模型引用来源
检测方法
  • Self-Consistency: 多次生成对比一致性
  • Citation Check: 验证引用的来源是否存在
  • Fact Verification: 用搜索引擎验证事实
  • Confidence Score: 让模型自评置信度
九、AI 编程工具全景
9.1 主流 AI 编程工具对比
工具模式模型核心能力价格适合
Claude CodeCLI AgentClaude Opus/Sonnet全自主编码、多文件修改、终端操作按 token 计费复杂工程任务、重构
CursorIDE (VS Code fork)多模型可选代码补全、Chat、Composer 多文件编辑$20/月 Pro日常开发、快速迭代
GitHub CopilotIDE 插件GPT-4o / Claude行级补全、Chat、Workspace$10-19/月代码补全、学习辅助
WindsurfIDE (VS Code fork)多模型Cascade 流式编辑、上下文感知订阅制,价格以官方页为准快速迭代、交互式开发
Devin自主 Agent自研全自主开发、PR 提交、部署$500/月独立任务、自动化
Augment CodeIDE 插件自研大型代码库理解、跨文件导航$30/月大型企业代码库
9.2 AI 编程最佳实践

高效使用 AI 编程工具的原则

1. 给足上下文: 相关文件、需求描述、约束条件越清楚,输出质量越高

2. 迭代而非一次性: 复杂任务分步完成,每步验证后再继续

3. 审查每一行: AI 生成的代码必须人工审查,尤其是安全相关逻辑

4. 测试驱动: 先写测试,再让 AI 实现,用测试验证正确性

5. 保持代码所有权: 理解 AI 写的每一行代码,不理解的不要合入

AI 编程的局限

- 架构决策: AI 擅长实现,不擅长做权衡取舍

- 业务逻辑: 复杂业务规则需要人类理解和验证

- 安全审计: AI 可能引入漏洞,安全关键代码需额外审查

- 性能优化: AI 倾向于"能跑"而非"跑得快"

十、AI 应用生产化清单
10.1 从 Demo 到生产的差距

Demo 阶段 (1 周)

  • 单个 API 调用,硬编码 Prompt
  • 无错误处理,失败就崩
  • 无监控,不知道效果好不好
  • 无缓存,每次都调 API
  • 无版本管理,改了就改了
  • 单用户测试,不考虑并发

生产级 (3-6 个月)

  • Prompt 模板化 + 版本管理 + A/B 测试
  • 重试、降级、熔断、超时控制
  • 全链路监控: 延迟、成本、质量指标
  • 多级缓存: Prompt 缓存 + 语义缓存
  • 评测体系: 自动回归 + 人工抽检
  • 限流、鉴权、多租户隔离
10.2 生产化检查清单
类别检查项优先级
可靠性API 调用有超时设置 (建议 30-60s)P0
失败时有重试机制 (指数退避,最多 3 次)P0
模型不可用时有降级方案 (备用模型/缓存/人工)P0
输出格式校验 (JSON Schema / Pydantic)P1
可观测性记录每次 LLM 调用的 input/output/latency/costP0
业务指标仪表盘 (成功率、用户满意度)P1
异常告警 (错误率突增、延迟飙升、成本异常)P1
链路追踪 (多步 Agent 的完整执行路径)P2
安全用户输入过滤 (Prompt 注入检测)P0
输出审核 (有害内容/PII 泄露检测)P0
API Key 不硬编码,使用环境变量/密钥管理P0
敏感操作需人工确认 (Agent 场景)P1
成本设置每用户/每请求的 token 上限P0
月度成本预算告警P1
Prompt 缓存已启用P1
非实时任务使用 Batch APIP2
质量有评测数据集 (至少 100 条 Golden Cases)P0
Prompt 修改后跑回归测试P1
定期人工抽检输出质量P1
10.3 技术栈推荐组合
轻量级 (个人/小团队)
  • 模型: Claude Sonnet API
  • 框架: 直接调 SDK,不用框架
  • 向量库: Chroma / pgvector
  • 部署: Vercel / Railway
  • 监控: Helicone (免费层)
  • 成本: $50-200/月
中等规模 (创业公司)
  • 模型: Claude Sonnet + Haiku (路由)
  • 框架: LangChain / LlamaIndex
  • 向量库: Qdrant / Milvus
  • 部署: AWS / GCP + Docker
  • 监控: LangSmith + Grafana
  • 成本: $500-3000/月
企业级 (大公司)
  • 模型: 自部署 Llama/Qwen + Claude API
  • 框架: 自建编排层
  • 向量库: Milvus 集群 / Elasticsearch
  • 部署: K8s + GPU 集群
  • 监控: 自建 (OpenTelemetry + ELK)
  • 成本: $10000+/月
核心原则:
1. 先验证再投入: 用最简单的方案 (直接调 API + 好 Prompt) 验证可行性,再逐步加复杂度
2. 评测先行: 没有评测体系就没有优化方向。先建评测,再迭代
3. 成本意识: AI 应用的边际成本不为零。每个 token 都是钱,从第一天就关注成本
4. 安全底线: Prompt 注入是真实威胁。Agent 有执行能力时更要谨慎
5. 人机协作: 在多数生产场景里,AI 更适合作为放大器而不是完全无人值守系统,人类复核仍是关键环节

与 ai-landscape.html 的关系:
ai-landscape.html 回答"AI 是什么、怎么学";本文回答"怎么用 AI 做产品、怎么做好"。建议先读全景图建立认知,再读本文指导实战。