Agent Developer Roadmap
Agent Developer

LLM 基础:理解概率引擎的工程边界

核验日期:2026-07-16。本文解释应用开发所需的稳定机制,不用参数规模或榜单替代项目评测。模型上下文、功能、价格与数据政策会变化,采用时以供应商当前模型卡和 API 文档为准。

大语言模型(Large Language Model,LLM)的核心接口很简单:给定已有 Token 序列,计算下一个 Token 的概率分布。聊天、结构化输出和工具调用都建立在这条接口之上。模型擅长从训练分布和当前上下文中生成连贯模式,却不天然拥有实时事实、数据库事务、用户权限或“只执行一次”的保证。

从文本到下一个 Token

Tokenizer 把字符串转换为词表中的整数。Token 不是字符或单词:同一个词可能被拆成多个片段,空格、大小写、语言和代码符号都会改变分词。应用的上下文限制、输入费用和输出费用按 Token 而非 JavaScript string.length 计算,因此上线前要用目标模型对应的 tokenizer 或供应商 usage 做测量。

Embedding 层把离散 token id 映射为向量。Transformer 的自注意力让当前位置根据先前位置形成加权表示;前馈网络、残差连接和归一化继续变换表示。现代模型可能使用不同位置编码、稀疏专家、混合注意力或多模态编码,应用开发者不应把某个实现细节写成所有模型的契约。稳定事实是:推理受有限上下文、训练分布、解码策略和服务实现约束。

注意力权重不是可靠的事实证明或自然语言“思维过程”。即使某个 token 对另一个 token 权重高,也不能据此证明因果。应用审计应依赖输入、来源、工具结果、输出和可重放状态,而不是要求模型暴露隐藏推理。

上下文窗口不是长期记忆

上下文窗口容纳系统指令、开发者指令、用户消息、历史、工具描述、检索片段、工具结果和待生成输出。标称窗口很大不等于每个位置都能同等可靠地影响答案,也不等于应把所有历史原样塞入。长上下文增加费用和首 Token 延迟;无关内容会稀释关键约束;不可信历史和文档会扩大注入面。

上下文管理需要显式预算:先保留安全策略与当前任务,再保留完成任务所需事实、近期状态和高价值证据;其余内容摘要、检索或丢弃。摘要是有损派生数据,必须带来源版本和生成方法。长期偏好放入受权数据库,任务 checkpoint 放入持久状态;不能依赖模型“记住”。

KV cache 会缓存已处理序列的中间表示以避免每生成一个 token 都重算全部前缀。它能改善重复前缀或连续生成的性能,但不改变上下文内容的信任等级,也不能让修改过的前缀免费复用。缓存命中、保存期限和计费由服务实现决定,应从 usage/trace 验证。

生成参数与非确定性

模型先产生 logits,服务再通过解码得到 token。温度调整分布锐利程度,top-p 等方法截断候选;停止序列、最大输出 token 与结构化约束进一步限制结果。参数为零通常减少随机性,却不构成跨时间、跨硬件或跨模型版本的位级确定性承诺。后端批处理、浮点顺序、模型更新和工具结果都可能改变输出。

事实抽取和工具参数通常使用低随机性与严格 Schema;创意任务可以允许更高多样性,但仍要受内容和费用边界约束。不要通过无限重试挑一个“看起来正确”的答案:它增加成本、选择偏差和尾延迟。恢复应有错误分类、有限次数和总 deadline。

参数/条件主要作用不能保证
temperature/top-p控制候选分布与多样性正确、无偏或可复现
max output tokens限制单次输出总任务成本和 Agent 步数
stop在匹配序列时停止JSON 一定完整、语义一定完成
seed(若提供)在支持范围内辅助复现跨版本、跨区域完全一致
structured output约束输出形状字段事实正确、用户有权限

训练、适配与推理的分工

预训练从大规模数据学习 token 统计模式;监督微调让模型模仿任务示例;偏好优化等训练后方法调整行为。应用 Prompt 在推理时提供当前任务和上下文,RAG 提供可更新外部知识,工具连接确定性系统。几者解决不同问题。

当问题是“知识经常更新、需要引用或受租户权限控制”,优先 RAG/工具;当问题是“输出格式不稳定”,先用结构化约束和验证;当问题是“固定任务风格、术语或决策模式在大量样例上稳定存在”,才评估微调。微调不是数据库同步机制,也不会自动删除基础模型记忆。训练数据需要许可、PII、删除、偏差与污染治理,模型 artifact 也要版本、评测和回滚。

微调前建立对照方案:冻结评测集,记录当前模型、Prompt、RAG 和工具结果;估算高质量样例与维护成本;划分训练/验证/测试,避免相同模板和近重复文档泄漏;比较质量、延迟、token、拒答和安全指标。若一个更短 Prompt 或确定性函数已解决问题,不引入训练流水线。

Embedding 与生成模型不是一回事

Embedding 模型把文本、图片或其他对象映射到向量,使相似对象在某种训练目标下更接近。向量适合召回、聚类和去重,但距离不是事实一致性、授权或因果。生成模型的 token embedding 是内部层;用于检索的外部 embedding API 有自己的模型、维度、归一化和版本,不能无迁移地混用。

余弦相似度常用于方向比较。阈值不是跨数据集通用常数:语料语言、文本长度、领域、负例难度和 embedding 版本都会改变分布。应在项目标注 query-document 对上测 recall@k、precision、nDCG 或 MRR,并保存索引版本。

能力、知识与权限三条边界

模型“能推导”不等于“知道当前事实”。训练截止日期之后的信息、私有数据、快速变化的版本和精确报价需要检索或工具。模型“输出一个函数调用”不等于“有权执行”:应用根据当前 principal、tenant、resource 和 action 决定授权。模型“会写代码”也不等于代码安全:任何生成代码都处在不可信输入一侧,执行前需要审查、沙箱、网络/文件权限和资源限制。

把模型返回的置信措辞当作风格,不当作校准概率。若业务需要概率,必须用标注数据做校准并定义阈值损失;更常见的做法是让系统基于证据覆盖、检索分数、验证结果和任务风险决定回答、澄清、拒绝或升级人工。

延迟、吞吐与成本

用户感知延迟至少包含排队、输入处理、首 Token 时间、逐 Token 生成、工具/RAG 往返和重试。流式输出改善感知,不减少总计算;慢工具可能使已输出的推测文本与最终事实冲突,所以工具型回答通常先取得关键证据再输出结论。

记录 input/output/cached/reasoning 等供应商可见 usage 类别、模型延迟、tool latency、总 wall time 和费用。并发限制按租户与系统总量实施,队列有限;超过预算返回可恢复状态,而不是把请求无限挂起。成本优化先删无关上下文、压缩工具描述、缓存稳定前缀/检索、选择合适模型,再考虑复杂路由。

模型路由必须可评测。按“简单问题用小模型、困难问题用大模型”听起来合理,但困难度分类器本身会错。保存路由理由、候选能力、回退次数和最终质量;高风险任务不可仅因成本自动降级到未达安全门槛的模型。

常见失败的定位

输出事实错误:先查来源是否存在、是否被检索、是否进入上下文、引用是否支持主张,再查模型。格式错误:查是否用了原生结构化输出、Schema 是否受支持、运行时是否二次验证。指令遗漏:查优先级冲突、上下文裁剪和长上下文位置。重复/不终止:查 Agent 状态与终止条件,不只修改措辞。延迟飙升:分解排队、prefill、generation、检索和工具 span。

版本漂移表现为相同输入在一段时间后质量改变。保存模型标识和系统指纹(若服务提供),对 canary 数据集持续回归;不要假设别名永远指向同一 artifact。升级先离线评测,再 shadow/canary,监控错误、安全、成本与尾延迟,保留回滚。

最小实验

选择二十个真实任务,分别构造:无外部事实、给定短上下文、长而含干扰上下文、需要最新事实、需要工具、存在恶意文档。固定应用版本重复运行,记录轨迹而非只看最终文案。实验不为模型排名,它要识别哪些任务必须检索、调用工具或人工确认,并找出上下文和费用上限。

验收答案应能说明:Token 计量为何不同于字符;上下文为何不是记忆;temperature 为零为何不等于严格确定;Embedding 距离为何不等于真相;何时 RAG、工具、微调各自更合适;如何观察一次请求的延迟和版本漂移。

参考资料

上一节:专栏导读 · 下一节:Prompt 与结构化输出

在 GitHub 上编辑此页

本页目录