简介:本文从“老板与员工”的类比切入,拆解大模型应用中提示词、上下文、记忆、智能体、检索增强生成与工具调用协议的底层逻辑,并据此给出一套可落地的智能体应用部署方案,覆盖资源规划、组件部署、配置要点、上线验证、问题排查与运维优化,帮助开发者与运维人员把“只会文字接龙”的模型稳定部署为可持续对话、会用工具的线上服务。
本文要部署的对象,是一套基于大语言模型(LLM)的智能体应用服务。部署完成后,系统应达到以下效果:用户发起提问后,系统能够自动携带历史对话(记忆)、检索相关知识库内容(检索增强生成),由智能体编排服务调用大模型完成推理,并按需调用联网搜索、业务接口等外部工具,最终返回准确、可追问、可执行任务的回答。
这套部署任务适合的读者包括:后端开发者、运维工程师、系统架构师,以及希望将大模型能力落地为线上服务的企业技术团队。
在动手部署之前,需要先建立一个基本认知:大语言模型的本质是“文字接龙”——根据已有内容预测下一个字。它天然只具备单次对话能力,不能主动追问、不能上网、不能操作工具。我们要部署的所有周边组件,本质上都是在工程层面把“只会接龙的模型”包装成“可以持续对话、会查资料、会用工具的优秀员工”。理解这一点,部署过程中的每一个组件选型才会有依据。
部署架构源于对模型能力的逐层补齐,建议按以下六条主线理解:
Prompt 与 Context 的区分。每次发给模型的内容统称为提示词(Prompt),其中既包含背景信息,也包含最终指令。工程上需要把背景信息单独管理,称为上下文(Context)。这决定了部署时必须有独立的提示词模板与配置管理机制,而不是把所有内容硬编码在代码里。
Memory 的实现。模型本身没有记忆,所谓多轮对话,是每次提问时把历史对话放进上下文里“伪装”出来的。因此部署架构中必须包含会话存储组件,负责保存和读取对话历史;当历史过长时,还需对其进行总结压缩,以控制上下文长度。
Agent 的诞生。模型不能上网、不能操作工具,解决方式不是让模型自己去做,而是部署一段代理程序:它解析模型的需求、调用工具、再把结果回填给模型。这段代理程序就是智能体编排服务,是整个部署的核心模块。需要警惕的是,早期不少所谓智能体只是在提示词上做了包装,并没有真实的工具执行链路,部署验收时应以“是否具备真实的工具调用通路”作为判断标准。
RAG 的引入。除了联网搜索,业务往往还需要检索本地文档。传统关键词检索难以命中语义相近的内容,因此需要部署向量数据库:将文档切分、向量化后入库,查询时按语义相似度召回。这套机制即检索增强生成(RAG)。
Function Calling 的约定。编排服务直接解析模型的自然语言输出非常困难,因此需要在请求中约定:模型必须按照固定的、死板的格式(如 JSON)回复工具调用意图,方便程序解析。本质上是前后端约定的接口格式,部署时要为每个工具准备清晰的参数定义。
模型上下文协议类的工具规范。如果每个工具的调用逻辑都耦合在编排服务里,系统会越来越难维护。更好的做法是把工具独立部署为服务,并通过一套统一协议(如业内常见的模型上下文协议)让编排服务能够发现工具列表、了解调用方法。这决定了工具服务需要按标准接口规范对外暴露两类能力:工具发现与工具调用。
综合以上逻辑,目标架构为:用户 → 接入层(网关)→ 智能体编排服务 → 大模型推理服务,编排服务同时连接会话存储、向量数据库与各工具服务。
| 组件 | 承担的职责 | 通用部署形态 |
|---|---|---|
| 接入层/API网关 | 鉴权、限流、路由、HTTPS卸载 | 负载均衡加网关服务 |
| 智能体编排服务 | 组装上下文、调用模型、解析输出、调度工具 | 无状态容器服务,可水平扩展 |
| 大模型推理服务 | 提供文字接龙能力 | GPU服务器自建,或接入托管模型服务 |
| 会话存储 | 保存对话历史,支撑多轮对话 | 数据库加缓存组合 |
| 向量数据库 | 知识库语义检索 | 向量数据库实例 |
| 文档处理流水线 | 文档清洗、切分、向量化、入库 | 异步任务或消息队列 |
| 工具服务 | 联网搜索、业务查询等外部能力 | 独立部署,按统一协议注册 |
| 日志与监控 | 链路追踪、指标采集、异常告警 | 日志服务加监控告警 |
如果选择公有云部署,可在百度智能云等云平台上申请云服务器、容器服务,并按需开通向量数据库、对象存储、日志服务、监控告警等通用产品类别,按上述清单组合使用。
步骤一:初始化基础环境。 创建云服务器或容器集群,打通内网互通,安全组仅放行必要端口,统一运行时与依赖版本。
步骤二:部署大模型推理服务。 自建方式需拉起推理服务、配置健康检查接口,并压测吞吐与延迟;托管方式则在云平台开通模型服务,获取接入地址与密钥并配置到编排服务的环境变量中。接入地址与密钥严禁写入代码库。
步骤三:部署存储组件。 数据库中建立会话历史表(会话ID、角色、内容、时间戳);缓存用于热点会话加速;向量数据库创建集合并定义向量维度与相似度度量方式。
步骤四:构建知识库。 文档清洗、切分(控制块大小与重叠度)、调用向量化模型生成向量、写入向量库,并建立增量更新与删除机制,保证知识库可持续维护。
步骤五:部署智能体编排服务。 核心是主循环逻辑,示意如下:
def handle(user_input, session_id):history = 会话存储.读取docs = 向量库.检索context = 模板.组装(系统提示词, history, docs, user_input)for _ in range(最大工具轮数):resp = 推理服务.调用(context, 工具Schema列表)if resp.要求调用工具:result = 工具服务.调用(resp.工具名, resp.参数) # 带超时与重试context += 格式化工具结果else:会话存储.追加return resp.最终回复return 兜底回复
步骤六:配置函数调用约定。 为每个工具编写名称、功能描述与参数Schema,示意如下:
{"name": "web_search","description": "联网搜索,用于获取模型训练数据之外的时效性信息","parameters": {"type": "object","properties": {"query": { "type": "string", "description": "搜索关键词" }},"required": ["query"]}}
步骤七:部署并注册工具服务。 工具独立成服务,按统一协议提供“工具列表发现”与“工具调用”两个接口,权限最小化,并登记到编排服务的工具清单配置中。
步骤八:接入层与安全配置。 配置网关路由、HTTPS证书、鉴权方式、限流阈值与访问白名单。
步骤九:联调与灰度上线。 测试环境全链路联调通过后,先灰度小流量观察指标,再逐步放量;全程保留旧版本与回滚脚本。
这次部署的本质,是围绕一个“只会文字接龙”的模型逐层补齐工程能力:用会话存储补记忆,用向量数据库补知识检索,用编排服务补执行能力,用函数调用约定补人机接口,用统一的工具协议补生态扩展。部署完成的验收标准,是系统能稳定完成“持续对话、查资料、用工具”三类任务;后续运维重点则集中在监控告警、容量成本、安全合规与版本回滚四条主线上。