传统企业AI落地:从大模型到RAG与Agent的工程化路径

📅 发布时间:2026/8/31 18:38:27
传统企业AI落地:从大模型到RAG与Agent的工程化路径
马斯克有关「AI 浪潮已至传统企业承压」的表态在圈内引发了不小的讨论。有人把它理解成一句行业预言也有人把它当成某种技术焦虑的放大器。但如果放到过去两年大模型落地的情况里看这句话真正值得琢磨的地方不是「AI 会不会改变行业」——这一点基本已经没有争议了——而是它到底在哪些环节、以什么方式对传统企业造成了真实的压力。这篇文章想聊清楚三件事一是传统企业承压的底层原因不只是算力贵、人才缺更深层的其实是组织流程和信息流转方式还没跟上二是大模型能力很强但距离企业可用的系统还有一段工程化距离中间缺的是 RAG、Agent、工作流、评测这些基础设施三是企业现在应该用什么路径去承接 AI 能力先做什么、不做什么、怎么验证效果。文章会给出代码示例和工程建议尽量让读者读完不仅知道「压力在哪」还能知道「下一步怎么动」。1. 传统企业承压的本质不是算力问题是组织流程问题很多人一听到「AI 浪潮已至」第一反应是 GPU 不够用、模型不够强、数据不够多。但从企业落地的实际看传统企业承压的根源往往不在技术侧而在组织流程侧。大模型本质上改变的是信息处理成本。过去写一份客服回复、生成一份合同摘要、整理一份行业调研报告需要由具体的人花几个小时完成现在一个 LLM API 调用可能几秒钟就能给出初稿。这意味着企业的岗位分工、审批节点、知识管理方式都会因为「信息处理变便宜」而发生连锁变化。如果企业还是按过去的流程运转——信息层层上报、知识散落在个人电脑和聊天记录里、决策依赖少数人的经验——那么 AI 能力再强也很难渗透进来。更关键的是AI 的引入会改变决策速度。过去一个市场活动方案从起草到审批可能要走一周现在 AI 能十分钟生成三个方向的方案剩下更重要的是判断力。这时候流程不够灵活的企业就会感到「承压」不是员工不努力而是节奏本身被外部环境拉快了。所以传统企业承压的本质是「外部信息处理成本已经下降但内部组织流程还没来得及重构」之间的矛盾。这个判断是后续所有技术方案讨论的前提。2. 大模型和企业应用之间隔着一层工程化基础设施从 ChatGPT 出现到现在很多企业尝试过直接拿通用大模型处理业务问题结果是「演示惊艳落地困难」。原因不是模型不行而是模型能力和业务场景之间存在一个工程化的鸿沟。这个鸿沟具体表现为四个问题问题表现背后原因知识时效性模型不知道企业最新政策、产品参数训练数据有截止时间企业私有知识不在模型内幻觉模型一本正经给出错误答案生成式模型天生倾向「补全」而不是「查证」权限隔离员工问到了不该看的数据模型没有和企业的身份认证、权限体系打通效果不稳定同一问题两次回答差异大温度参数、Prompt 变化、模型版本更新都会影响输出这些问题不是靠换一个更大的模型就能解决的。比如知识时效性企业不可能每次业务规则变化都去微调一次模型权限隔离也不只是提示词里写一句「不要泄露机密」就能做到的必须在系统层面做拦截。所以更稳妥的路径是不要把大模型当成一个「知道所有事的答案机」而是把它当成一个「能理解和生成语言的推理引擎」。企业的私有知识、实时数据、权限规则应该通过工程手段接到模型外面而不是指望模型自己学会。这正是 RAG检索增强生成和 Agent 架构这几年快速发展的根本原因。3. 企业最容易踩的 AI 落地误区先选模型再想场景和不少做企业数字化的人聊下来发现一个共性误区很多企业一上来就纠结「用哪个大模型」把大部分精力花在模型选型上却连「到底要解决什么问题」都没想清楚。这是典型的顺序颠倒。模型选型当然重要但它应该排在场景定义和效果评测之后。正确的顺序是先定义一个足够具体、边界清晰的业务问题再想清楚「模型在这个问题里承担哪一部分」然后用最小成本验证这条路走不走得通最后才谈得上选哪个模型、部署在哪里。举个例子一家制造业企业想做「设备维修知识助手」。如果一开始就讨论「用 GPT 还是开源模型」很容易陷入无休止的对比。但如果先把场景拆清楚维修手册在哪里、老师傅的经验怎么沉淀、问答的准确率怎么评估、答错了有什么后果——技术选型的答案反而会自然浮现。还有一个常见的误区是「什么都想自动化」。AI 能做的和适合做的是两回事。在客服、文档处理、代码辅助这类高频率、低风险的场景里AI 能显著提效但在涉及大额资金审批、法律条款最终确认、医疗诊断这类高风险决策里AI 更适合做辅助材料准备而不是做最终决策者。把这个边界划清楚企业才不会被「AI 什么都能干」的宣传带偏。4. 从模型到工程企业承接 AI 能力的最小路径抛开天花乱坠的概念一个传统企业要把大模型能力真正用起来最少需要经历四个阶段。每个阶段都有明确的目标和验证方式。4.1 先跑通一个 LLM API 调用很多企业卡在第一步不是因为没有技术能力而是因为内部流程太重连一次 API 调用都要审批很久。其实第一步不需要大动干戈只需要让开发团队用最少的代码把大模型接口调通验证「生成能力 企业网络环境」是否可用。这一步的核心目标是确认企业网络环境能访问模型服务确认返回结果的格式能解析确认基本延迟在可接受范围。不要在这一步引入复杂的框架用一个 Python 脚本就够了。# 文件路径demo/llm_basic_call.py import requests import json def call_llm(prompt: str, api_key: str, base_url: str) - str: 调用兼容 OpenAI 格式的 LLM 接口。 参数: prompt: 用户输入文本 api_key: 服务方提供的 API 密钥 base_url: 模型服务地址例如 http://your-gateway/v1 url f{base_url}/chat/completions headers { Authorization: fBearer {api_key}, Content-Type: application/json } payload { model: your-model-name, messages: [ {role: user, content: prompt} ], temperature: 0.3 } resp requests.post(url, headersheaders, jsonpayload, timeout30) resp.raise_for_status() result resp.json() return result[choices][0][message][content] if __name__ __main__: # 请替换为实际可用的密钥和网关地址 answer call_llm( prompt请用一句话解释什么是大模型微调。, api_keysk-your-key, base_urlhttp://your-gateway/v1 ) print(answer)这段代码虽然简单但它把几个关键问题都串起来了如何携带身份认证、如何构造请求体、如何解析返回结果、如何设置超时。跑通这个脚本企业就具备了使用大模型的最基本能力。4.2 引入 Prompt 模板管理而不是在代码里拼字符串第一步跑通后很快会遇到一个新的问题业务方会频繁调整提问方式、补充回答要求、修改输出格式。如果这些变化都改代码开发和业务之间会形成严重的耦合任何一次提示词调整都变成一次发布流程。更工程化的做法是把 Prompt 做成模板并纳入配置管理。这样业务人员可以通过后台调整模板内容开发人员只需要保证模板渲染逻辑稳定即可。# 文件路径demo/prompt_template.py from string import Template from pathlib import Path # 通过从文件读取的方式把模板与代码分离 TEMPLATE_PATH Path(__file__).parent / templates / retrieval_qa.txt def load_template() - Template: return Template(TEMPLATE_PATH.read_text(encodingutf-8)) def build_qa_prompt(question: str, context_chunks: list[str]) - str: 将用户问题和检索到的资料片段拼装成一个完整的问答提示词。 template load_template() context \n\n.join(context_chunks) return template.substitute( questionquestion, contextcontext )模板文件templates/retrieval_qa.txt的内容可以是你是一名企业知识库问答助手。请严格根据以下资料片段回答问题。 【资料片段】 $context 【用户问题】 $question 要求 1. 只能使用资料片段中的信息回答禁止编造。 2. 如果资料中没有答案请回答资料中未找到相关信息。 3. 回答控制在200字以内。把 Prompt 从代码中抽离出来看起来只是一个组织方式的变化但对后续迭代效率的影响非常大。业务方可以直接调整措辞和约束条件而开发方只需要保证模板变量正确、渲染稳定。4.3 用 RAG 接入企业内部知识当企业发现模型回答总是「缺最新信息」时就要考虑 RAG 了。RAG 的核心思路很简单先根据用户问题从企业知识库中检索出相关片段再把片段拼进 Prompt让模型基于片段回答。这样回答就有了事实依据幻觉风险大幅降低。# 文件路径demo/simple_rag.py from sentence_transformers import SentenceTransformer import numpy as np import faiss class VectorStore: 一个极简向量检索实现演示 RAG 的检索部分。 生产环境建议使用 Milvus、Elasticsearch 或云厂商向量数据库。 def __init__(self, model_name: str BAAI/bge-large-zh-v1.5): self.encoder SentenceTransformer(model_name) self.index None self.chunks [] def add_chunks(self, chunk_list: list[str]) - None: embeddings self.encoder.encode(chunk_list) dimension embeddings.shape[1] if self.index is None: self.index faiss.IndexFlatIP(dimension) self.index.add(np.asarray(embeddings, dtypenp.float32)) self.chunks.extend(chunk_list) def search(self, question: str, top_k: int 3) - list[str]: question_vec self.encoder.encode([question]) scores, ids self.index.search(np.asarray(question_vec, dtypenp.float32), top_k) return [self.chunks[i] for i in ids[0]] # 使用示例 if __name__ __main__: store VectorStore() store.add_chunks([ 企业报销流程员工在OA系统提交申请经部门负责人审批后财务在3个工作日内打款。, 企业年假制度入职满一年员工享有5天年假每增加一年工龄增加1天上限15天。, 总部地址北京市海淀区中关村软件园二期。 ]) result store.search(报销需要多久到账) print(result)这个示例演示的是 RAG 流程里的「检索」部分。实际生产环境还需要处理文档解析、切片策略、权限过滤、重排序等环节。但先把检索跑通至少能让企业看到「AI 回答可以基于自有知识」的效果。4.4 用 Workflow 代替随意编排当 RAG 已经能回答问题企业会进一步希望 AI 能完成多步骤任务比如「查询库存 → 生成补货建议 → 发送审批通知」。这时候就需要 Workflow 或 Agent 机制。这里要泼一点冷水从工程稳定性角度看传统企业优先考虑确定性 Workflow而不是完全自由的 Agent 自主规划。确定性 Workflow 指的是把步骤写死每一步调用什么工具、什么条件下走哪个分支都由开发人员预先定义。Agent 自主规划虽然更灵活但输出不确定性更高适合探索性场景不适合带有审计要求的业务流程。用一个对比来说明维度确定性 Workflow自主 Agent步骤控制开发人员预设模型自主决定稳定性高中低可审计性高低适合场景报销审批、工单处理、报表生成开放式研究、方案构思、探索分析传统企业在初期阶段优先把确定性 Workflow 跑稳比追求「全自动 Agent」要务实得多。5. 完整示例搭建一个企业制度问答机器人把上面的思路串起来这里给出一个最小可用的企业制度问答机器人示例。它包含知识库构建、检索、LLM 回答三个核心模块。# 文件路径qa_bot/qa_bot.py 企业制度问答机器人最小实现 功能 1. 从本地目录加载制度文档。 2. 将文档切分为文本块并向量化。 3. 用户提问时检索最相关的文本块。 4. 调用 LLM 生成基于检索结果的回答。 import os from pathlib import Path from typing import List import faiss import numpy as np from sentence_transformers import SentenceTransformer class KnowledgeBase: def __init__(self, data_dir: str, model_name: str BAAI/bge-large-zh-v1.5): self.data_dir Path(data_dir) self.encoder SentenceTransformer(model_name) self.index None self.chunks: List[str] [] def load_documents(self): 加载 data_dir 下的所有 txt 文件并将每个文件作为一个知识块。 for file_path in self.data_dir.glob(*.txt): content file_path.read_text(encodingutf-8) self.chunks.append(content) embeddings self.encoder.encode(self.chunks) self.index faiss.IndexFlatIP(embeddings.shape[1]) self.index.add(np.asarray(embeddings, dtypenp.float32)) def retrieve(self, query: str, top_k: int 3) - List[str]: query_vec self.encoder.encode([query]) scores, ids self.index.search(np.asarray(query_vec, dtypenp.float32), top_k) return [self.chunks[i] for i in ids[0]] def build_prompt(query: str, chunks: List[str]) - str: context \n\n.join(chunks) prompt f 你是一名企业制度问答助手。请仅根据以下资料回答问题。 【资料】 {context} 【问题】 {query} 要求 1. 只使用资料中的信息。 2. 如果资料不足请说明资料中未找到对应信息。 3. 回答简洁不超过200字。 return prompt def main(): # 初始化知识库 kb KnowledgeBase(data_dir./docs) kb.load_documents() # 模拟用户提问 query 员工年假怎么计算 related_chunks kb.retrieve(query, top_k2) print(--- 检索到的资料 ---) for i, chunk in enumerate(related_chunks, start1): print(f[{i}] {chunk[:200]}...) prompt build_prompt(query, related_chunks) print(\n--- 生成的 Prompt ---) print(prompt) if __name__ __main__: main()运行方式cd qa_bot pip install sentence-transformers faiss-cpu mkdir docs # 把企业制度文档放到 docs 目录下 python qa_bot.py预期输出会包含两部分一部分是从知识库检索出的原始资料片段另一部分是拼接好的 Prompt。这个示例没有直接调用 LLM方便读者先独立验证检索效果。检索没问题之后再把之前写好的call_llm函数接进来就能形成完整的问答闭环。这个示例的价值不在于功能多完整而在于它把「企业知识 → 向量检索 → Prompt 构造 → 模型生成」的链路展示清楚了。修改哪一部分、验证哪一部分都有明确边界。6. 企业落地 AI 的评测机制没有评测就没有迭代很多企业做完 demo 之后就不知道该往哪个方向迭代了。原因往往是没有建立评测机制。没有评测就说不清「现在的回答比之前的回答好在哪」没有评测也就无法判断某次优化到底是变好了还是变坏了。一个务实的企业级评测体系至少要包含三层第一层是「用例集」。整理一批覆盖典型业务场景的测试问题比如客服场景 50 题、制度问答 30 题、文档摘要 20 题。这些问题应该来自真实业务而不是技术团队凭空想的。第二层是「指标」。自动指标可以用 BLEU、ROUGE、回答相似度这类常用指标但要注意这些指标只能衡量「接近程度」无法很好衡量「回答是否错误但自信」。所以更关键的是第三层。第三层是「人工抽检」。每周或每轮迭代后由业务方对模型回答进行抽样评分重点看是否出现幻觉、是否遗漏关键信息、表达是否专业。这个环节不能省因为大模型输出的质量问题往往要靠领域专家才能判断。评测机制建立后后续的 Prompt 优化、RAG 切片调整、模型版本升级都有了可以依赖的「尺子」。如果没有这把尺子所有的优化都是凭感觉。7. 传统企业 AI 改造中的五个工程建议结合前面几节的分析这里给出五条对传统企业最务实的工程建议每一条都对应实际落地中常见的坑。7.1 身份认证和权限边界必须在第一版就考虑很多项目在 demo 阶段不涉及权限问题因为数据都是测试数据。但一旦进入生产环境AI 系统能访问到哪些数据、什么角色能问什么问题、回答内容有没有越权这些都是合规风险。更稳妥的做法是在架构设计阶段就把权限校验放在 LLM 调用之前的网关层而不是依赖模型自己判断。7.2 知识库切片策略要结合文档结构设计RAG 的效果很大程度取决于切片方式。如果一刀切按字数切片很可能会把完整的一个制度条款切得七零八落检索到的内容不完整。更好的做法是先理解文档结构比如按章节、条款、表格边界来切。如果输入材料中没有说明具体文档规范可以先从「保留段落完整 设置重叠窗口」开始再根据评测结果调整。7.3 效果不稳定时先固定参数再找原因大模型的输出天然有随机性。同一个问题temperature 设置为 0 和 0.7得到的答案可能差异很大。在企业场景里如果业务方反馈「回答忽好忽坏」第一步不是去调 Prompt而是确认生成参数是否固定、模型版本是否一致、检索结果是否稳定。先把变量控制住再谈优化。7.4 日志和审计是上线的前提AI 问答系统上线前需要记录每一次提问、检索到的资料、模型返回的内容、最终是否被用户采纳。这些日志不仅是排障依据也是后续数据飞轮的基础。建议从第一天就按结构化方式记录不要等项目上线后再补。7.5 灰度发布和回滚机制必须有AI 系统的优化不是一次到位的。Prompt 调整、模型升级、知识库更新都可能让整体效果变好或变坏。所以建议做好版本快照每次变更都能快速回滚到上一个稳定版本。哪怕只是调整了一个 Prompt 模板也应该走「评测 → 灰度 → 全量」的流程。8. 压力之下企业最需要的是把 AI 当工程问题对待回到开头马斯克那句话。AI 浪潮给传统企业带来的压力本质上不是「别人有 AI 我没有」的焦虑而是「信息处理成本下降后组织能不能快速适应」的挑战。从工具层面看LLM API、RAG、Workflow、Agent 这些技术已经足够成熟企业不需要从零造轮子。从工程层面看提示词管理、检索优化、评测机制、权限边界、灰度发布才是决定 AI 项目能不能从 demo 走向生产的关键。真正值得投入的是把 AI 当作一个持续迭代的工程系统而不是一次性交付的项目。如果你所在的团队正处在「考虑引入 AI」的阶段比较务实的起点是找一个高频率、低风险、知识边界清晰的场景用最小代码跑通检索增强问答的链路再逐步扩展。这条路不一定最快但每一步都能看到结果也最容易让整个组织建立起对 AI 的合理预期。