LLM 应用工程的难点不是把一句话发给模型,而是把不稳定的概率输出放进一个可验证、可恢复、成本可控的软件系统。
一、先把单次模型调用做正确
掌握消息角色、上下文、采样参数、流式输出、Token 用量、超时和错误码。把 Provider、模型、密钥、Base URL 和超时放入配置,不要散落在业务代码中。
第一项练习是结构化信息抽取:定义 JSON Schema,让模型从文本中输出字段;程序负责解析、校验、重试和人工复核。保存失败原文,不要只展示成功样本。本站的OpenAI 兼容多模型配置和结构化 JSON 输出可作为工程补充。
二、Embedding 与 RAG
理解切块、Embedding、相似度、召回、重排和带引用生成。RAG 的第一目标不是“回答流畅”,而是让答案可追溯并在证据不足时拒答。
建立一个 30–100 题的小测试集,标注目标文档和答案。分别测检索召回、引用正确、答案一致和拒答。调整切块时一次只改变一个因素,否则无法判断提升来自哪里。
阶段项目可做企业手册问答:文档带权限标签,检索继承用户权限,答案逐条引用原文;删除或更新文档后索引能同步。
三、工具调用与工作流
工具调用需要清楚的名称、参数 Schema、输入校验和最小权限。把“模型建议调用”与“系统真正执行”分开;涉及发消息、删文件、付款、发布和生产变更时增加确认。
先用确定性流程:分类 → 检索 → 生成 → 校验 → 人工确认。只有步骤数量和路径无法预先确定时,再引入 Agent 循环。每次工具调用记录参数摘要、结果、耗时、错误和批准者。
四、Agent 的状态与停止条件
Agent 需要任务状态、重试上限、Token/费用预算、最大步骤和停止条件。记忆不是把所有聊天塞回上下文;应区分本次任务状态、用户偏好、可检索知识和审计日志,并分别设定保存周期与权限。
多 Agent 不是默认升级。只有角色需要不同权限、上下文或并行任务时才拆分。能用一个工作流解决的任务,增加 Agent 只会增加延迟、费用和失败面。
五、评测是上线门禁
评测至少覆盖任务成功率、结构化输出通过率、引用正确率、拒答准确率、延迟、Token 和单次成功成本。为每次 Prompt、模型、检索或工具变更运行同一测试集,比较回归。
可以使用规则、单元测试、人工评分和模型裁判,但模型裁判要固定版本与评分规则,并抽样人工复核。参考本站大模型评测方法专题建立数据集和置信边界。
六、部署、安全与可观测
用 FastAPI、Node.js 或熟悉的后端暴露接口,加入鉴权、速率限制、请求大小限制和健康检查。Docker 化后仍要记录模型请求、检索结果、工具轨迹、异常、延迟和费用,但日志不得泄露密钥和敏感原文。
生产系统应支持超时、重试、熔断、降级、幂等和回滚。进一步阅读大模型 API 生产运维专题中的密钥、429、成本与可观测文章。
七、8 周项目式学习计划
建议全程只做一个项目,例如“带引用的企业知识与任务助手”,每周增加一层能力,而不是每周换一个框架。
| 周次 | 学习内容 | 项目增量 | 当周验收 |
|---|---|---|---|
| 第 1 周 | 模型 API、消息、Token、超时 | 单轮问答与调用封装 | 更换模型无需改业务代码 |
| 第 2 周 | JSON Schema、校验、重试 | 结构化抽取 | 失败输入进入人工队列 |
| 第 3 周 | 文档解析、切块、Embedding | 建索引与检索接口 | 评测目标文档召回 |
| 第 4 周 | RAG、引用、拒答、重排 | 带引用回答 | 建立 50 题测试集 |
| 第 5 周 | 工具调用、状态机、幂等 | 只读查询工具 | 参数错误不会执行工具 |
| 第 6 周 | Agent、预算、停止条件、审批 | 多步骤任务 | 超步数和高风险操作会停止 |
| 第 7 周 | API、数据库、Docker、鉴权 | 在线服务 | 新环境可一键启动 |
| 第 8 周 | 评测、日志、监控、成本、回滚 | 发布候选版本 | 回归通过且保留失败证据 |
每周必须增加的测试
第 1–2 周测试解析失败、超时与非法字段;第 3–4 周测试无答案、错误引用、同义问题与超长文档;第 5–6 周测试非法工具参数、重复执行、权限不足和无限循环;第 7–8 周测试并发、重启、配置缺失、模型不可用和旧版本回滚。
进阶到高级阶段
完成 8 周主线后,再选择一个高级主题投入 4–8 周:大规模索引和混合检索、领域微调与数据治理、多 Agent 并行调度、推理性能优化或企业级权限审计。一次只选一个,并用真实瓶颈决定方向;没有流量和数据证据时,不要为了“高级”而增加分布式组件。
八、生产级项目验收
项目应能回答:
- 输入数据是否有权限和版本?
- 测试集覆盖哪些成功与失败场景?
- 模型或检索失败时如何降级?
- 工具调用怎样限制和审计?
- 一次成功任务的延迟和成本是多少?
- 新版本怎样回归、灰度和回滚?
当这些答案能从代码、日志和文档中找到,而不只是口头说明,项目才具备作品集价值。下一步进入作品集、简历与求职。