现在很多人一谈到 AI 时代,要么亢奋要么焦虑,两种情绪都不太能帮你做出正确的决定。过去一年我把大量工作流切换到 AI 上之后,反而越用越冷静,越用越清楚一件事:这项技术真正的分水岭,不在模型参数大小,不在谁家又发布了什么新版本,而在使用者能不能依次完成祛魅、适应、重新定义这三步。祛魅是拆掉神坛,适应是改变工作姿势,重新定义则是把人和机器的边界画到对的位置。这篇文章不聊宏大叙事,只说我实际踩过的路、调过的参、翻过的车,以及最后沉淀下来的方法。
1. 祛魅:先弄明白 AI 到底是个什么“物种”
1.1 LLM 不是“会思考”,而是“很会接话”
我以前遇到过一件哭笑不得的事。团队里一位同事让 AI 解释公司某套系统的报错原因,AI 给了一段逻辑通顺的排查方案,看起来非常专业,但实际上把两套完全不相关系统的术语缝在了一起,差点误导了一上午的排障方向。
这不是某个模型不行,而是大语言模型的工作机制决定的。它本质是在做“下一个词”的预测:输入一段文字之后,模型根据海量训练文本中学到的统计规律,不断生成概率最高的后续内容。你可以把它理解成一位极其擅长接话的会议参与者,你说完上半句,它总能接出听起来合理、甚至文采不错的后半句。但接话接得流畅,并不等于它真的理解了你这句话背后的物理世界。这也是业内人士常说的“幻觉”问题的根源。
生活化类比会更清楚。问一个没去过某城市的人“这座城市哪里好玩”,他可以根据各种游记拼出一份像模像样的攻略,可你要是真照着走,很可能踩坑。大模型对很多专业问题也是这种状态:它见过足够多“像答案的话”,但它没有亲手验证过这些答案。理解这一点,是整个祛魅过程的第一步,也是一切理性使用的前置条件。
1.2 祛魅的真正收益:把工具当工具,而不是当权威
对 AI 祛魅,不是否定它,恰恰相反,是为了在正确的位置上最大程度用好它。早年间很多人面对搜索引擎,不会因为搜出来的第一条结果就全盘照做;面对 AI 生成的内容,也应该保留同样的批判距离。祛魅之后,你不会再把 AI 的初稿当成可以原封不动发出去的成品,也不会把 AI 的自信语气当成事实依据。
祛魅带来的一个真实好处,是“认知平权”。以前做一个行业分析报告,至少需要几个人花好几天收集资料、整理框架、反复打磨措辞。如今 AI 可以在一分钟内生成一份结构完整的初稿,把过去只有专业咨询公司能提供的文本组织能力交到了普通个体手里。虽然严谨度需要你把关,但起点已经完全不同。我所在的团队原来每周要花大半天整理竞品动态,后来改成把各渠道信息丢给 AI 先做摘要和归类,再由同事补充观点,整个流程被压缩到四十分钟左右。这不是魔法,是认知工具的下放。
祛魅之后的第二个收益,是提升你的“质疑效率”。正因为知道 AI 会一本正经地胡说八道,你才会在关键结论处多问一句“这个说法有没有来源”,从而真正守住质量底线。
1.3 拆开能力边界:AI 擅长什么,不擅长什么
我给很多刚开始接触 AI 的朋友做过一张能力分层表,把任务分成“可以放心当辅助”“必须人工复核”“尽量不要直接问”三类。在实际使用中,这张表能避免大部分灾难。
| 任务类型 | AI 实际表现 | 我的建议 |
|---|---|---|
| 文本归纳、摘要、翻译 | 整体流畅好用 | 可大幅提效,但需核对关键数字和专有名词 |
| 代码生成与补全 | 写脚手架、单点功能熟练 | 作为结对编程伙伴,必须运行测试验证 |
| 多轮对话与头脑风暴 | 能提供多个视角 | 适合用来发散候选方案,别直接当决策 |
| 严格数学推理 | 几步以内尚可,复杂推导容易出错 | 别用对话模型算数值结果,交给代码或计算器 |
| 长文本一致性 | 几千字以内尚可,超过一定篇幅容易前后矛盾 | 让它先出大纲,再分章节逐段生成 |
| 真实世界动态信息 | 知识截止时间之外的内容可能胡说 | 涉及事实的部分接实时检索工具 |
举例来说,我从来不让 AI 直接替我算月底绩效汇总里的加权分数,因为这类任务一旦模型在中间某一步把公式理解偏了,结果错得毫无征兆。相反,让它写 SQL 语句、做数据清洗的预处理脚本,我会觉得省力又靠谱。认清这条能力边界,才能把 AI 放在对的工位上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 适应:把 AI 揉进工作流的三个姿势
2.1 提示词不是玄学,是“写需求文档”
很多人觉得“会聊天”就能用好 AI,实测下来差距大得惊人。同一个模型,有人输入“帮我写个活动方案”,拿回来的是一堆正确的废话;有人输入一段带着背景、受众、预算、风格要求和交付格式的说明,拿回来的东西几乎可以直接改改就用。区别不在于模型偏袒谁,而在于后者把任务说清楚了。
我的习惯是把每次提问都当成给自己的下属写需求文档:背景是什么、任务是什么、约束条件有哪些、希望以什么格式输出。不需要套用什么神秘公式,就是把这段对话当成一次严肃的工作委托。
举个例子。不带上下文的提问是“帮我写一封道歉邮件”。AI 会基于典型场景生成一封平淡无奇的信。换一种方式提问:
背景:我是行政部同事,原定周一上午 10 点使用的会议室因系统重复预订无法使用,我已临时协调到隔壁小会议室。
任务:给需要使用该会议室的业务团队发一封说明邮件,告知变更并致歉。
要求:语气诚恳、不找借口,不展开系统故障细节,说明新会议室位置及后续我全程在场协助。
格式:正文控制在 200 字以内,首段表达歉意,第二段说明变更,第三段告知支持方式。
这样问出来的邮件,不仅语气准确,连怎么处理后续都替你安排好了。所谓提示词工程,底层的本质就是“把需求写清楚的能力”。你现在可能已经看出,这种能力和你是不是懂技术无关,和你会不会表达需求有关。
2.2 选型不是选最强,而是选最合适
每次有新模型发布,总有人陷入“换更贵模型才能解决问题”的误区。但在我实际项目里,多数工作流瓶颈并不在模型聪明程度,而在于任务定义不清晰或数据组织有问题。回到工作场景,我会给出这样的选型建议。
常见通用问答和头脑风暴,优先用云端大模型;代码开发场景,优先用带代码上下文的模型或 IDE 插件;涉及企业内部文档的制度问答、产品手册问答,应该优先考虑“本地模型 + 私有知识库”的组合。尤其是企业内部数据敏感度较高的时候,数据不离开本地带来的安全感,比单纯追求模型能力强得多。
我用开源的 Qwen2.5 系列或者 Llama3.1 系列跑过不少内部问答场景,配合本地向量数据库,效果虽达不到云端顶级模型的丰富度,但在限定资料范围内完全不输。云端 API 的优点是开箱即用,缺点是涉及敏感数据时要考虑合规要求、按调用量付费、以及可能出现的接口不稳定。本地方案当然也有成本,需要一台配置说得过去的机器或服务器,还需要有人维护模型版本。
建议先列出你最常见的高频任务,再选合适的工具,而不是先选一个“全能王”,再想办法让所有需求都靠它完成。很多时候,把工具范围缩小,反而更容易让工作流稳定下来。
2.3 AI 负责第一稿,人负责两条线
适应 AI 的关键一步,是把“交给 AI 直接做”改成“让 AI 做第一稿,人做复核和修正”。这里说的第一稿不只是文字,还包括代码、方案、话术、摘要、表格逻辑等等。用 AI 做初稿,最大的价值是帮我们把空白页恐惧抹掉,让你从零到一的速度快很多。
但初稿之后的工作,绝对不能省。我把复核拆成两条线。第一条线叫事实线:文中的数据口径对不对、有没有来源、逻辑是否自洽。第二条线叫价值线:这句话是否能代表你想表达的意思,是否符合团队的沟通风格,是否对当前受众有效。事实线解决“对不对”,价值线解决“好不好”。两条线都过不了,AI 初稿就只是草稿。
从流程上看,这很像新来了一个高学历但缺少业务经验的实习生。你不会因为实习生写了份初稿就原样发给客户,你一定会先划掉不合适的部分,再补上它不知道的信息。把 AI 当成这个实习生,你的身份就从“亲自打字的人”变成“把关和定调的人”。这个转变听起来简单,做起来却是大多数人是否真正用明白 AI 的分水岭。
3. 实操:从零搭一套内部知识库问答助手
3.1 为什么我会选择 RAG 而不是微调
我用一个完整项目来演示整套思考过程。团队当时面临的问题是产品手册和排障文档分散在几十个文件里,新同事经常在群里问重复问题,老员工反复回答消耗大量精力。我的目标是做一套内部知识库问答助手,让新同事自己提问就能拿到尽可能准确的答案。
项目刚立项时也有同事提议做模型微调,说“把文档都拿去训练一遍,模型不就都记住了吗”。我把方案对比后放弃了这个方向。微调的本质是让模型学会某种风格、某种输出习惯,它并不适合频繁变更的事实型知识。每次手册更新都要重新训练模型,成本高、周期长,而且训练之后你很难知道模型到底“记没记住”某条新规定,排障困难。
我选的是 RAG,全称叫检索增强生成。它的工作方式很容易理解:把大量文档提前切成小块、转成向量并存入向量数据库。用户提问时,系统先根据问题去知识库里检索最相关的几个片段,再把这些片段连同问题一起交给大模型生成答案。类比起来,微调像是让学生把课本背进脑子里,而 RAG 是允许学生考试时翻书,并且能标注“这道题在教材第几章”。对业务频繁更新的场景,翻书策略明显更可靠。
3.2 基于 Ollama、LangChain 和 Chroma 的完整落地过程
我演示一版可以跑通的技术路线,用的是 Ollama 协助管理本地模型,LangChain 做编排,Chroma 做向量库。如果你的机器没有独立显卡,跑 7B 到 8B 量级的开源小模型也能有可用的效果,只是速度会慢一些。
第一步,安装依赖并启动 Ollama 服务。需要提前把大模型和嵌入模型拉到本地:
bash复制ollama pull qwen2.5:7b
ollama pull bge-m3
这里第一行是负责“生成回答”的语言模型,第二行是负责把文本转成向量的嵌入模型。嵌入模型听起来抽象,你可以理解成“给每种语义生成一串代表坐标的编码”,语义相近的文本,在向量空间里距离更近。选嵌入模型时,推荐优先考虑对中文支持较好的模型,例如 bge-m3。
第二步,读取文档并把它们切分成小块。我提前把各类文档统一转成了 markdown 或 txt 格式,方便后续处理。
python复制from langchain_community.document_loaders import DirectoryLoader
loader = DirectoryLoader("./docs", glob="**/*.md")
docs = loader.load()
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
chunk_size=512,
chunk_overlap=64,
separators=["\n\n", "\n", "。", "!", "?", ".", " ", ""]
)
chunks = splitter.split_documents(docs)
切块这一步经常被人忽略,但它直接决定了检索质量。块太大,一段文字里混入多个话题,检索时容易把噪音带进来;块太小,语义不完整,模型缺乏上下文。512 个字符左右是我在中文文档场景里试过比较稳的起点,64 个字符的重叠可以避免切块把关键语义从中间截断。
第三步,生成向量并存入 Chroma。首次运行会较慢,毕竟要把每个文本块都过一遍嵌入模型。
python复制from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import Chroma
embeddings = OllamaEmbeddings(model="bge-m3")
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="./chroma_store"
)
第四步,创建检索器和问答链。这里的关键是给大模型写清楚约束条件,而不是让它自由发挥。
python复制from langchain_community.chat_models import ChatOllama
from langchain.prompts import ChatPromptTemplate
from langchain.schema.output_parser import StrOutputParser
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
template = """你是一个内部知识库问答助手。
请只依据下面提供的资料回答用户问题。
如果资料中没有明确提到,请回答“根据现有资料无法回答”。
不要编造,不要引用资料之外的常识。
资料内容:
{context}
用户问题:{question}
"""
prompt = ChatPromptTemplate.from_template(template)
llm = ChatOllama(model="qwen2.5:7b", temperature=0.2)
def rag_answer(question):
docs = retriever.get_relevant_documents(question)
context = "\n\n".join([d.page_content for d in docs])
chain = prompt | llm | StrOutputParser()
return chain.invoke({"context": context, "question": question})
实际使用时,我还会在 prompt 里强调一句“如果可以,请在回答末尾列出你依据的文档片段或章节名称”。这个细节显著降低了幻觉概率,因为模型一旦被要求给出来源,编造答案的倾向就会下降。
3.3 让结果更可靠:检索参数和生成参数的调优
项目上线后,我一共调过三轮参数,每一轮都有明确目标。
首先说温度(temperature)。在知识问答场景,我会把它调低到 0.1~0.2,让模型更集中地依赖资料原文而不是发散发挥。若做创意文案或头脑风暴,温度可以调高到 0.7 以上,但知识库场景追求稳定,越低越好。
其次说检索数量 top-k。最初我用 k=2,回答经常漏掉关键步骤,因为问题涉及的答案可能分散在两个以上的文本块里。后来改成 k=4,覆盖率上来了,但也出现了新的问题:返回的片段越多,越有可能混入不相关内容,模型如果被噪音干扰,回答就会变得前后矛盾。最终我根据内部文档的切块粒度,把 k 固定在 3,并在工程上增加了阈值过滤,相似度低于指定阈值时强制放弃该片段。
最后是切片重叠长度。如果文档中有表格、分点列举等内容结构,只切 64 个字符的重叠往往不够。我会对表格类文档单独加大 chunk_overlap 到 128,避免表格标题被切到上一块末尾导致信息错位。这些参数没有统一标准,需要针对你实际文档的类型做小样本实验。
3.4 上线后的实际效果和局限
把这套系统放到团队里试运行两周后,我统计了一下聊天记录里的问答情况。大概 80% 的“这个错误代码是什么意思”“报修流程怎么走”这类单点检索问题,AI 能给出准确答案,并且能提供来源章节。剩下 20% 的问题,集中在需要跨多章节综合判断的场景,AI 偶尔会给出一份看似全面但顺序混乱的排查方案。
最典型的一次,有人问“设备离线后应该先检查网络还是先换硬件”,相关说明其实分散在网络配置章节和硬件排障章节,由于两段内容之间有矛盾,初始版本的 RAG 只召回了网络章节的文本,导致回答不够完整。后来我把检索策略改成同一问题分别执行两轮检索再做合并,同时在生成提示词中要求“如果检索到多个相关方向,请先对比,再给出排障顺序”,情况立刻有了明显改善。
这个项目给我的最大经验是:AI 落地不是“接个大模型就完事”,而是要持续观察模型在真实问题上的失败模式,再针对失败模式调整检索策略和提示词。它不是一次性的上线,而是一个不断调优的过程。
4. 重新定义:人和 AI 的新分工不是“替代与幸存”
4.1 被重构的是“工序”,不是“岗位”
讨论 AI 对职业的影响时,很多人习惯性问“这个岗位会不会消失”。我的看法是,更精确的问法应该是“这个岗位里的哪些工序会被重构”。拿报表岗举例,过去的核心工作里,从系统导出数据、清洗格式、填模板、对齐口径、发邮件通知,这些工序现在用脚本加 AI 可以完成大半。看起来报表岗危险了,但实际情况是,真正了解报表背后业务意义的同事,把省下来的时间用在了定义指标口径和解读数据异动上,价值反而更大了。
也就是说,每个岗位都是由若干工序组成的。不是每个工序都会被替代,最先被替代的是高重复、规则清晰、产出主要是标准化文本或代码的工序。而需要业务判断、需要跨部门沟通、需要对结果负责的工序,仍在人的这一侧。
我建议每位从业者把自己每周的工作列出来,按“哪些步骤可以交给 AI 做第一版”“哪些步骤必须人来决策”分两类。分完类之后你就会发现,并没有“整个岗位被 AI 干掉”的绝望情境,只有“未来会把更多时间花在判断和决策上”的调整信号。提前看到这一点,是重新定义自己工作的起点。
4.2 人和机器的边界,画在“评价标准”上
在大量协作之后,我对人和机器的分工边界有了更清晰的感受。AI 适合做“规模化生成”,人更适合做“价值判断”。
例如,AI 能在一个下午生成二十版营销文案,但哪一版真正符合品牌语气,需要人来判断;AI 能写出完整的数据分析报告,但哪些指标对老板决策最有用,需要人先定义;AI 能给出上百个活动创意,但哪些创意能落地、能和现有资源匹配,要靠人的经验和嗅觉。机器提供选项,人决定标准,这是我认为比较稳定的协作模式。
如果一定要用一句话回答“谁会被替代”,我更愿意说:只会把任务原样交给 AI、没有判断能力的人,会慢慢被边缘化;而那些能把模糊问题拆解清楚、能写出清晰需求、并能对 AI 产出负责的人,会在这轮变化中积累起更强的杠杆。
4.3 给普通从业者的三条具体出路
第一,从“做执行”转向“定标准”。下次接到任务时,别急着问“怎么做”,先问清楚“做成什么样算好”。这个标准一旦明确,AI 就能成为帮你达标的放大器。
第二,练习把模糊目标翻译成机器可执行的需求。拿写周报举例,不要对 AI 说“帮我写个周报”,而是把你本周做的三件事、每件事的进展困境、下周计划喂进去,并要求它按固定结构输出。这项能力越熟练,你调度 AI 的效率就越高。
第三,建立自己的验收清单。我每次使用 AI 产出关键内容,都会先跑一组专门设计的验证问题,比如把自己已知答案的问题丢给它,看它能不能稳定命中。通过这种小样本验收,你才能知道当前这套方案在哪些场景可信、在哪些场景需要人工兜底。拥有这份“哪些能放心用、哪些不能信”的判断清单,比掌握某个具体工具重要得多。
5. 常见问题与排查技巧实录
5.1 落地 AI 应用时最容易踩到的 6 个坑
做内部工具这几个月,我整理了一张速查表,几乎每一个都是真金白银换来的教训。
| 典型问题 | 深层原因 | 解决办法 |
|---|---|---|
| 模型一本正经地编造政策条款 | 提示词没有约束信息来源 | 限制“只能依据资料回答”,并要求给出章节来源 |
| 回答的内容和用户问题对不上 | 向量检索召回了无关片段 | 检查切块大小、替换嵌入模型、调低 top-k |
| 同一问题每次回答都不一样 | temperature 设置偏高 | 调低到 0.1~0.2,启用固定 prompt 模板 |
| 长文档关键信息总被漏掉 | 文档切块破坏了语义边界 | 按章节结构切分,保持段落完整性 |
| 问法一变就答不出来 | 缺少同义改写机制 | 增加 query 改写步骤,或补充 few-shot 示例 |
| 检索慢、生成慢 | 文档块太多或模型太大 | 做文档预筛、使用量化模型、限制 top-k |
5.2 一次从“答非所问”到“靠谱助手”的 Prompt 复盘
内部知识库上线第一周,有位同事问“如果我的手受伤了,休假怎么算”。模型当时回答了一大段关于工伤流程和劳动法常识的内容,看起来正确但完全不是公司手册里的规定。因为系统根本没有在资料片段里找到相关内容,模型就自作主张地调用了通用知识。
我把提示词改为这个结构:
背景:你是公司行政部负责解答员工制度疑问的助手。
任务:只根据提供的《员工手册》片段回答关于请假和休假的问题。
要求:如果片段中没有直接提到对应情况,明确回答“手册中未找到对应条款”,不要推测。
输出格式:第一句给结论,第二句写依据,并标明原文所在章节。
资料:
修改后,旧问题的回答变成了“手册中未找到对应条款。建议你联系人力资源部确认具体情形”,同时再也不会凭空冒出劳动法条文了。这条 prompt 优化的本质,是给 AI 划定权限边界并强制它表明不确定。
类似的情况在内部问答里非常高频。只要你能让模型时刻记住“知道就是知道,不知道就说不知道”,大部分幻觉问题都会迎刃而解。我给自己设置的硬性检查是:凡是 AI 给出的制度性结论,必须能在原文中找到原话;找不到的,即使语气再笃定,也一律不用。
5.3 判断 AI 输出是否可信的三步自检
面对 AI 的一段输出,我建议你至少问三个问题。
第一,这个结论和你已有的常识是否矛盾?如果它说“公司规定年假必须分五次用完”,而你印象中从没听过这个规则,那就值得警觉。第二,这个结论有没有可追溯的来源?不是“网上都说”这种来源,而是你能定位到具体文档、章节或一条明确逻辑链的来源。第三,你敢不敢把这个判断不加修改地发给你的客户或上级?如果你心里有一丝犹豫,说明这条输出还停留在草稿阶段。
许多 AI 事故的根源,是使用者跳过了这三步自检,错把“流畅的表达”当成了“可靠的事实”。养成这套审稿习惯之后,你会发现自己对模型输出越来越敏感,那种微妙的“这段好像不太对”的直觉会在关键时刻帮你踩下刹车。
最后再分享一个实操中的小技巧:每次调完 prompt 或检索参数,不要凭感觉说效果变好了,而是准备一组固定的测试问题,例如十个你已经有标准答案的问题,跑一遍对比回答好坏。我把这套测试叫做“验收集”,有它兜底,后续再怎么改也不会把系统改坏。把这个小习惯坚持下去,你对 AI 的使用会从碰运气变成可管理、可持续、可迭代的生产能力。
