
“Ask HN: What‘s Next for LLMs?”这类问题每隔几个月就会出现一次。我的理解里这个问题的重点不是预测下一家会发布多大的模型而是回答一个更实际的问题模型能力已经明显超过演示阶段之后普通开发者和中小团队下一步该往哪里投入。现在讨论里出现频率最高的东西已经不是某个模型的名字而是本地推理、Agent、RAG、MCP、精度取舍、LLM 网关这说明大家的视线正在从“模型能不能做”转向“系统能不能稳定做”。接下来这篇不打算做宏大预测只从工程实践角度拆一下我认为接下来半年最值得关注的几个方向。1. 别只看模型参数LLM 下一站是工程化落地1.1 能力不是唯一变量运行环境和使用成本更影响落地过去两年大家最关心的是模型能不能写代码、能不能做数学题、能不能处理长文档。模型能力确实在涨但真正把 LLM 放进业务的人会发现跑通一条 Demo 和跑通一个生产任务之间的差距非常大。差距主要体现在三块资源约束模型变大显存、内存、推理延迟、单次调用成本都在涨。很多团队不是选不起大模型而是算不好账。输出可靠性同一个提示词不同参数、不同上下文、不同输入格式下输出可能完全不一样。生产环境不能接受“偶尔好用”。系统集成LLM 只是大脑它还要接文档库、数据库、API、业务系统、权限体系。这些工作才是真正消耗开发时间的地方。所以“What’s Next”不再是一个模型问题而是一个工程问题。谁会做质量评估、谁会做成本控制、谁会做工具编排、谁会做权限隔离谁才能把模型用到业务里。1.2 单点能力走向系统工程推理、检索、工具、编排各管一段现在的 LLM 应用已经很少是“发一个 Prompt等一个回答”的简单形态。更常见的架构是分层处理推理层模型本身可能是云端 API也可能是本地部署模型。数据层文档切分、向量化、检索、知识库更新这层决定了模型能不能回答“你的私有内容”。工具层搜索、数据库查询、接口调用、代码执行这层决定了模型能不能“干活”。编排层把推理、检索、工具按业务需求组合起来处理多轮对话、多步任务、失败重试。如果你的项目还停留在“调 API 聊天”接下来要补的不是更大的模型而是后面三层。这也是为什么各种 LLM 框架、Agent 框架、MCP 协议、LLM 网关会冒出来。2. 本地推理成为标配精度和显存怎么平衡2.1 精度选择fp32、fp16、bf16 不是越准越好搜索热词里出现了一组很典型的关键词fp16、fp32、bf16。很多新手会把精度当成“越高越好”但实际工程里这是一个资源博弈。fp32数值范围大训练和推理的参照基准但内存占用高。生产环境很少用全程 fp32 跑大模型。fp16内存减半推理速度快但表示范围有限容易出现溢出。小模型上影响可能不明显大模型上风险更高。bf16指数范围接近 fp32数值稳定性比 fp16 好适合大模型推理和训练但尾数精度低。量化INT8、INT4 进一步压缩模型体积和显存但会带来一定精度损失。实际判断标准很简单先跑通任务再看输出质量是否可接受最后再决定是否降低精度。如果显存不够优先考虑量化版本。如果任务对数值非常敏感比如代码生成、数学推理、结构化抽取不要一开始就把精度压太低。混合精度部署是常规做法哪个层用高精度、哪个层用低精度需要根据任务做测试。不要一上来就把精度拉满也不要一上来就压到最低。先用中等精度的量化版本跑通再根据失败案例决定是否提精度。2.2 本地推理的典型路径Mac、Ubuntu、通用管理器“本地跑 LLM”已经不只是极客玩法。很多团队选择本地推理主要是三个原因数据敏感、调用成本、离线环境。目前常见的本地路径有三条Mac 环境Apple Silicon 机型可以直接用 Metal 加速配合专门为 Mac 设计的推理引擎7B 到 13B 级别的模型在 16GB 统一内存机器上可以勉强跑。注意“能跑”和“跑得舒服”不是一回事低内存机器不要开长上下文。Ubuntu / Linux NVIDIA这是最常规的服务器路线。先确认驱动和 CUDA 环境再选择一个推理引擎或模型管理器。下载模型之后先用最小文本请求测试启动再逐步加长上下文和并发。本地模型管理器LM Studio、Ollama 这类工具把模型下载、启动、API 暴露封装得比较友好适合做实验和原型。它们的意义不是替代推理引擎而是把“本地部署”的门槛降下来。如果你是第一次做本地部署建议按这个顺序来确认机器能跑什么规模的模型先不下载大模型。选一个 7B 左右的中小型模型跑通流程。验证 API 输出、token 数、响应时间。再考虑接入知识库或工具调用。2.3 本地化之后embedding 和向量检索才是知识库的入口只把模型放到本地并不等于完成本地化。真正支撑业务的是“模型 私有数据”的组合。要处理私有数据就绕不开 embedding 和向量检索。很多项目跑不起来不是模型不行而是文本向量 API 没有配置好。常见的失败原因包括embedding 服务的地址、密钥或模型名填错。向量维度不匹配新模型输出的维度和现有向量库配置的维度不一致。切分策略不对文档切得太碎检索结果没有上下文切得太大又可能超出模型上下文窗口。没有做召回质量评估向量相似度高不等于答案是用户要的。我的建议很简单知识库项目先不要追求复杂框架。先把“加载文档 → 切分 → 向量化 → 检索 → 构造 Prompt → 生成回答”这条链路打通用几十个真实问题做一轮测试再决定要不要上重排序和 Agent。3. 从单模型到多模块Agent、RAG、MCP、编排框架3.1 Agent 的下一步是可控性而不是更多工具LLM Agent 的热度一直很高。搜索词里也有大量相关内容比如 llm agent、llm powered autonomous agents、llm cadre。Agent 的方向是对的但很多人把它理解成“给模型一堆工具让它自己跑”。实际经验是工具越多失控风险越大。接下来值得投入的方向不是“让 Agent 做更多事”而是“让 Agent 不做超出边界的事”。具体包括给 Agent 定义清晰的子任务不让它同时做太多决策。每一步工具调用都要有输入检查、输出校验和失败分支。多步任务要设置总步数上限防止模型陷入死循环或重复调用。权限默认收窄模型需要执行敏感操作时回到人工确认。如果你要做一个 Agent 原型我建议先手动把流程跑一次再让 Agent 执行同样流程。对比两者差异比直接让 Agent 自由发挥更有效。3.2 RAG 的瓶颈通常在数据整理而不是模型RAG 已经成为 LLM 应用里的标准组件。它解决的核心问题是模型不知道你的私有数据RAG 把相关数据在回答前找出来塞给模型。但 RAG 看起来简单做起来非常容易翻车。关键不在生成那一步而在“检索前”和“检索后”数据整理你的文档是 PDF、Word、Markdown、数据库不同格式清洗方式不同。表格式内容、扫描件、带复杂排版的文档直接按段落切分效果很差。切分策略按固定长度切分会切断语义按标题或段落切分能保留结构信息。混合策略通常更稳。召回质量有时候不是模型答错而是检索出来的内容本来就是错的或不足的。先用“检索结果是否相关”做评估再调 Prompt。重排序当召回结果很多时可以加一个 rerank 环节把最相关的内容排到前面再让模型生成。如果你发现 RAG 效果不好不要第一时间怪模型。先看检索结果对不对再看上下文存了多少内容。绝大部分 RAG 调优调的是数据链路不是模型算法。3.3 MCP 把“接工具”标准化异构服务才有统一入口MCPModel Context Protocol最近在开发圈讨论很多。它的核心思路是让 LLM 应用与外部工具、数据服务之间有一个标准化的协议不需要为每个工具单独写一套集成逻辑。一句话解释如果说 HTTP 是网页的标准接口MCP 想做的是模型与工具之间的标准接口。实际落地时MCP 的价值体现在你不需要为每个数据库、每个 API 写死一套调用方式。工具可以按 MCP Server 的形式暴露出来模型应用按统一方式发现和调用。不同语言写的服务通过 MCP 对接 LLM 时边界更清晰。搜索词里有一条“实现 mcp client 与 llm 连接实现抓取网页内容功能”这正好是 MCP 的典型场景模型需要读取网页数据但模型本身不能直接访问网络于是通过 MCP Client 去连接一个负责抓取网页内容的 MCP Server。如果你要动手验证 MCP建议选一个简单工具开始比如天气查询、文件读取、网页抓取。先跑通“模型理解任务 → 选择工具 → 工具返回结果 → 模型总结回答”这整条链路再扩展到复杂业务系统。3.4 网关与编排框架业务系统接入 LLM 的工程底座搜索词里有llm gateway java、springaimcpragagent这说明业务系统接入 LLM 时不再满足于直接调用 API而是需要一层工程化封装。LLM 网关解决的是几个非常具体的问题密钥管理不要把 API 密钥散落在各个客户端里网关统一管理。模型路由与切换不同任务可以走不同模型不必改业务代码。限流与熔断防止某个任务消耗大量 token导致其他服务不可用。日志与审计记录每次请求的 prompt、响应、token 数、耗时出了问题能回溯。如果你的项目已经进入多人协作、多模块调用模型阶段我建议先设计网关层而不是把模型调用逻辑写在业务代码里。网关不是“高级功能”而是可维护性的基础。编排框架负责的是更高一层把 RAG、Agent、工具调用、多轮对话组合成业务流程。Java 生态里 Spring AI 就是这种思路它让 LLM 接入能遵循 Spring 体系里的配置、依赖注入和事务边界。Python 生态里也有各种 Agent 编排框架但核心不在框架名而在“框架是否让你更容易加日志、改流程、做降级”。4. 生产环境里最难的不是跑通而是稳定、安全和可观测4.1 输出异常先查输入格式、上下文与拒识策略LLM 应用上线之后比模型“不聪明”更常见的问题是“不稳定”。我遇到过很多次看起来像模型问题的 bug最后定位出来的原因五花八门输入文本编码不对模型读到乱码。用户输入被截断上下文不完整。Prompt 里没有说明输出格式模型自由发挥。请求参数里 temperature 设置太高输出随机性强。工具调用返回的 JSON 格式不合法模型没有正确解析。搜索词里有一组很关键的表达llm fc输出/拒识。FC 通常指 Function Call。这其实是当前 Agent 应用里最容易出错的地方模型需要决定调用哪个函数、填入什么参数但经常出现字段名不对、参数缺失、该拒绝调用时却硬调、不该拒绝时反而拒绝。排查顺序建议这样先看原始输入确认格式、编码和长度。再看模型原始输出不要只看经过后处理的结果。检查 Prompt 是否明确说明了工具输入输出的 JSON Schema。用一个固定输入重复多次确认输出是否稳定。最后再调整参数或换模型。输出不稳定时先不要改模型先改输入和评价标准。4.2 权限边界防止 Agent 被“过度授权”LLM 应用最难的安全问题不是模型泄露数据而是模型被赋予过高的工具权限。搜索词里有一条exploiting llm apis with excessive agency翻译成工程语言就是模型调用工具时权力范围过大攻击者可能通过构造特殊输入诱导模型执行超出原本意图的操作。这类问题的防护方向是工程性的不是靠提示词就能解决工具默认只读不做写操作。数据库连接使用最小权限账号。文件访问限定在指定目录。高风险操作必须人工确认。模型提示注入要作为安全测试用例覆盖。对所有外部输入做长度限制、内容校验和转义。更稳妥的做法是把“模型可以调用什么工具”和“模型可以调用哪些数据范围”分开设计。模型可以做决策但真正的执行边界由系统控制而不是模型自己控制。4.3 可观测性日志、指标、预算缺一不可生产环境跑 LLM如果只看“用户有没有拿到回答”那离事故就只有一步之远。至少要做到四个维度的记录请求日志每条请求的模型名、Prompt 版本、输入长度、输出长度、耗时、错误码。成本指标每天每家模型的 token 消耗、费用估算按业务线或功能模块拆分。质量指标抽样记录用户反馈、回答不相关率、工具调用失败率、拒答率。性能指标首次响应时间、吞吐量、排队长度、模型降级次数。这些指标不需要一开始做得很重。先用日志文件或数据库记录最关键的字段再逐步做成可视化面板。但不要等到出了事故才补。可观测性不是给后台团队交差用的它是做模型迭代的输入。没有日志你连问题是什么都说不清。5. 接下来半年建议把精力放在这几件事上5.1 先选一个能闭环的小场景不要一上来就搭“通用智能助手”。你很可能发现它什么都想做但什么都做不深。我更建议先选一个小而明确的场景比如私有文档问答。客服工单自动分类和摘要。数据库查询的自然语言接口。代码仓库的变更说明生成。网页内容抓取后的结构化解析。这些场景的共同点是边界清楚数据可控结果可以人工验证。把一个场景打磨到稳定可上线比做十个半成品有价值得多。5.2 把评估集和质量标准提前定下来很多人调 LLM 应用靠的是“感觉”。这会导致一个问题无法判断某个改动到底是变好还是变坏。正确的做法是提前准备一个评估集至少几十条真实问题涵盖正常输入、边界输入、错误输入。每次改动 Prompt、模型、切分策略或参数都拿同一套问题跑一遍记录输出差异。评估标准可以分为几类回答是否完整。是否严格按输出格式返回。是否出现幻觉或不相关结论。工具调用是否成功。拒绝策略是否正确。平均响应时间和 token 消耗。有了评估集模型升级才不是“看新闻换新模型”而是“拿数据对比之后再做决定”。5.3 工具层与数据层保持可替换现在的 LLM 圈子变化太快。今天最好的模型三个月以后可能不是最划算的选择。如果你在业务代码里写死了某个模型的调用方式后续切换成本会很高。保持可替换性的手段很朴素所有模型调用都走统一接口或网关层。Embedding 模型与向量库解耦维度变化时能快速重新向量化。知识库的文档源与切分逻辑分开这样换模型不必重新清洗文档。工具调用尽量标准化优先用 MCP 这类协议而不是每个工具单独写一套解析逻辑。在代码里避免使用供应商特有的 SDK 强依赖。这样做不是不看好某个模型而是为了让你的业务能够在模型快速迭代时仍然稳定运行。回到最开始的问题LLM 的下一步是什么我的答案很朴素下一步不是某个更聪明的模型而是围绕模型建立起来的一整套工程体系。谁能把推理、数据、工具、权限、成本、质量都管好谁就能把 LLM 真正变成业务的一部分。从今天开始先跑通一个最小闭环再围绕这个闭环补日志、评估、权限和成本控制比等待下一个“颠覆性模型”更现实。