版权与内容来源声明
本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 A 中标注来源;引用官方原文保持原样,不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准,标注「待验证」的部分请以你本地环境实际输出为判断依据。本文不推荐任何不合规的软件获取方式,也不对任何收益结果作承诺。转载请注明出处。
第1章 外包人的真本事:在一套跑着的系统里活下来
1.1 外包到底训练了什么
很多人把外包经历当成简历上的"减分项",觉得那是给别人打杂、做边角功能。但从用人方的角度看,外包经历里藏着一种很贵的能力:你能在别人的、已经跑起来的、你并不完全理解的代码库里,把一件事办成。
传统技术岗转 AI 大模型时,最容易产生的误区是:我得先自己从零搭一个 Agent、从零搭一个 RAG,才算"真正会了"。但真实岗位上,大多数公司要你做的可能不是从零搭,而是接手一个已经上线、已经有一堆历史包袱、文档还不全的系统,然后在不搞崩它的前提下,改对地方。
外包出身的人其实天天在做这件事:
- 进组第一周,没人带你从头讲架构,你得自己读代码、读数据库、读线上日志;
- 需求来了,不是让你重做,而是让你在现有流程里"加一个小改动";
- 改完要能交付,不能说我不会,因为客户等着上线。
这套训练,恰好就是大模型岗位里"接手能力"的雏形。
1.2 "读懂别人的代码"本身就是一项稀缺能力
大模型项目有一个特点:它的"代码"不只是一堆函数,还包括提示词、检索策略、向量库、评测集,还有一堆调用外部工具的链路。一个 RAG 系统能跑,靠的是数据流、模型、检索器、重排器几部分咬合在一起。你接手它的时候,最重要的不是马上写新功能,而是先搞清楚:这个系统现在到底是怎么运转的。
会读别人代码的人,能快速回答三个问题:
- 用户的一个请求,是从哪进、到哪出、中间经过了什么?
- 现在线上用的模型、提示词、检索参数,分别在哪配置的?
- 如果我想改一个点,会影响哪些下游?
这三个问题答不上来就动手,是从零搭 demo 的人和接手存量系统的人最大的分水岭。
1.3 为什么这件事在 AI 时代更值钱
从零搭一个 demo,网上教程一搜一大把,新人两周就能照着跑通。但接手一个陌生的大模型系统、还保证不把生产环境搞坏,这件事没法靠教程速成——它靠的是在真实系统里反复踩坑练出来的判断力。
所以本文的核心判断是:岗位真正缺的,是"能在别人的存量系统里定位问题并安全改动"的人。外包经历恰好高强度训练了这件事。你的简历和面试,要展示的应该是"接手能力",而不是"从零搭 demo 的能力"。
第2章 从零搭 demo 与接手存量系统,难点完全不同
2.1 一张表说清两种活儿的差别
| 维度 | 从零搭 demo | 接手存量系统 |
|---|---|---|
| 目标 | 跑通一个能演示的最小闭环 | 在不动原有功能的前提下,改对一个点并安全交付 |
| 最大风险 | 做不出来、跑不通 | 改坏了别的功能、引入回归、线上出事故 |
| 成功判据 | 本地能演示、效果"看起来还行" | 改动可验证、没影响其他路径、能回滚 |
| 常见失败 | 卡在环境、卡在调参 | 顺手重构、没看调用链、没有评测兜底 |
很多转行的人把"接手"当成"从零搭"来做:一上来就想推翻重写得更优雅。结果往往是旧功能崩了,新功能也没交付,还背了事故。
2.2 大模型项目里的"存量"长什么样
你接手的大模型项目,通常不是一张白纸,而是一堆已经成型的零件:
- 一个已经接了公司知识库的 RAG 服务,检索质量忽好忽坏;
- 一个线上跑着的 Agent,偶尔调用工具失败,但大多数时候能跑;
- 一份两年前写的提示词模板,没人敢动,因为不知道动了会怎样。
这些"存量"的共同点是:它们能跑,但脆弱;它们有历史,但没文档;它们需要的是被理解和被最小改动,而不是被重写。
2.3 转行的人最容易踩的坑
把接手当成从零搭,会让你在面试里讲错重点。面试官问"你做过什么",你讲"我搭了一个 RAG",这只能证明你会照教程。但如果你讲"我接手了一个线上的 RAG,发现它检索召回不稳定,我加了一条评测用例锁定行为,然后用最小改动换掉了重排器,没影响其他问答"——这就证明你有接手能力。
记住:demo 谁都能搭,存量系统里的判断力才是稀缺品。
第3章 接手一个陌生 RAG / Agent 项目的前 30 分钟:先看什么
3.1 第一件事:画出数据流
别急着读每一行代码。先搞清楚一条主线:用户的问题是怎么变成答案的。对 RAG 来说,典型链路是:
用户提问 → 向量化 → 检索 → 重排 → 拼上下文 → 大模型生成 → 返回。
你把这条链路在纸上画出来,标出每一步用到的模块名和配置文件位置,就完成了接手第一步。
3.2 第二件事:找到调用链入口
光知道链路还不够,要知道代码里它从哪个文件、哪个函数开始。下面这组命令是接手期很实用的"摸底"动作——当然,具体到你的项目路径要替换:
⚠️代码待验证
tree-L2-I'venv|node_modules|.git'.grep-rn"def "src/|head-50把输出记下来:主入口在哪、检索函数在哪、生成函数在哪。找不到入口就改代码,等于蒙着眼睛走路。
3.3 第三件事:确认有没有评测集和日志
这一步最关键,也最容易被忽略。你要确认两件事:
- 这个项目有没有一套能反复跑的评测(哪怕只有几条用例)?
- 线上出问题时,日志里能不能看到完整的调用轨迹?
如果都没有,你后面任何改动都是"盲改"——你没法证明自己没改坏。Anthropic 在工程博客里明确说过,好的评估能让问题和行为变化在影响用户之前就暴露出来;没有评估,团队只能陷入被动循环,等到生产环境出了问题才发现,修一个故障又引入另一个。这句话放在"接手"场景里再贴切不过:你连"改坏没改坏"都量不出来,还谈什么安全改动。
| 前 30 分钟该确认的 | 怎么确认 | 确认到什么程度算过关 |
|---|---|---|
| 数据流主链路 | 画一张图,标模块 | 能说出"提问到答案"经过了哪几步 |
| 调用链入口 | 找主文件和函数 | 能定位检索、生成分别在哪 |
| 评测集是否存在 | 找 tests / evals 目录 | 知道有没有、在哪、怎么跑 |
| 日志能否看全轨迹 | 看日志配置与字段 | 能查到一次请求的完整过程 |
第4章 最小改动原则:为什么"顺手重构"是接手期最大的坑
4.1 接手期重构的隐性成本
接手一个系统,最危险的冲动是:"这代码写得真烂,我顺手重构一下。"但"顺手重构"在接手期几乎是亏本买卖:
- 你还没完全读懂旧逻辑,重构很容易把隐藏的边界条件改丢;
- 旧代码丑,但它是"线上正在用的丑",它和一堆你不知道的下游咬合着;
- 一旦重构引入回归,你没法快速证明"这不是我这次改动导致的"。
所以接手期的第一条纪律:先不动架构,只做最小改动,并且让改动可验证、可回滚。
4.2 用 SRE 的渐进发布思路保护自己
Google 的 SRE 公开书里讲得很直接:几乎所有服务的更新都分阶段渐进进行,并穿插验证步骤;非紧急发布必须分阶段,把变更应用到小比例流量和容量来降低风险;一旦发现异常,先回滚再诊断,以缩短恢复时间。
这套思路搬到"接手大模型项目"上,就是三件事:
- 用开关把新改动和旧逻辑隔开,别直接替换;
- 先在小的范围(比如一条评测用例、一个灰度流量)验证;
- 出问题能快速关回,而不是现场救火。
下面是一种很轻量的"开关隔离"写法示意:
⚠️代码待验证
feature_flags:new_retrieval:enabled:falserollout_percent:04.3 怎么判断"这件事现在能不能动"
一个简单判据:如果你改完之后,没法用一条已有的评测或一次可重复的请求来证明"没影响其他功能",那这件事现在就别动,或者先补一条评测再动。
| 情况 | 建议 |
|---|---|
| 改动只影响新增功能,有开关隔离 | 可以动,灰度验证 |
| 改动触碰核心检索/生成链路,无评测 | 先补评测,再动 |
| 改动为了"代码更好看"而非解决具体问题 | 接手期别动 |
第5章 把改动变成可验证的:加一条评测用例,比加一百行代码更值钱
5.1 为什么评测用例是接手期最值钱的东西
接手存量系统,真正的护城河不是你写了多少新代码,而是你能不能证明"我改了之后,旧的功能还在"。Anthropic 把评测分成两类:一类是能力评测,问"智能体现在能做什么";另一类是回归评测,问"智能体是否还能处理它以前能处理的全部任务",这类评测的通过情况应接近全部,目的是防住退化。他们还强调,能力评测在通过情况变高之后,可以"毕业"成一套持续运行的回归套件——原来测"能不能做",后来测"还能不能稳定做"。
对刚接手项目的人来说,最有价值的一步,就是给这个陌生系统补上第一条回归用例。它不需要多完美,只要能锁住一个已知正确的行为。
5.2 给陌生项目补一条最小评测用例
假设这个 RAG 系统对一个已知问题一直能答对,你就把它固化成一条测试用例。以后任何改动跑一遍,答错了就说明你改坏了:
⚠️代码待验证
deftest_known_question_still_answered():answer=rag_pipeline.run("退款政策是什么?")assert"7天"inansweror"七天"inanswerassertlen(answer)>20Claude 平台的官方文档也强调,成功的 LLM 应用始于先明确定义成功标准,再设计评测去衡量;好的成功标准要具体、可衡量、可实现、相关。你给接手项目补的第一条用例,就是一次最小的"定义成功标准"。
5.3 把"没改坏"变成可断言的事实
有了评测,你和原来的系统之间就有了一道契约:每次改动都跑一遍,全绿说明没退步,有红说明改坏了。这比你拍胸脯说"我检查过了"靠谱得多,也比"顺手重构"安全得多。
这一条评测,往往是你接手一个项目后,最先能写进周报、写进简历、也最能让同事信任你的东西。
配套评测模板:我整理了一份「给陌生 RAG / Agent 项目补最小评测」的起步模板和几个可直接套用的断言写法,放在资料包里,扫码即可获取:
第6章 怎么把「接手」类经历写进简历与面试
6.1 别写"负责 XX 模块",写"改了什么、怎么确认没改坏、结果如何"
简历里最常见的浪费,是把接手经历写成"负责 XX 模块的开发与维护"。这句话什么都没说。招人方想知道的是:你在一个已有系统里,具体改了哪一点,怎么证明没改坏,结果是什么。
把句式从"负责……“换成"在已有系统里,我做了 X 改动,用 Y 方式验证了没影响其他功能,结果 Z”。
6.2 一个可套用的表达结构
| 旧写法(没信息量) | 新写法(展示接手能力) |
|---|---|
| 负责 RAG 系统的优化 | 接手线上 RAG,定位到重排器召回不稳定,加回归评测锁定行为后最小改动替换,问答准确率回升且无误伤 |
| 参与 Agent 项目开发 | 在已有 Agent 里新增一个工具调用,用开关灰度,出问题可快速关回,未影响主链路 |
| 维护大模型服务 | 补了数条评测用例,把"改坏没改坏"从人工检查变成自动断言 |
上面表格里的条数只是表达结构的示例占位,不是真实统计。你在自己的简历里要填你真实补的条数,宁可写"数条"也不要编具体数字。
6.3 面试时怎么主动讲接手故事
不要等面试官问"你遇到过什么难题"才讲。你可以主动抛一个接手故事:我接手过一个 XX 系统,第一周先画数据流、找入口、确认有没有评测;发现没有评测后我先补了一条,然后用最小改动解决了 XX 问题,全程可回滚。
这个故事展示的不是"我会搭",而是"我能在别人的系统里安全地把事办成"——这正是岗位缺的那类人。
第7章 要补的能力 + 一个可交付练习 + 小结
7.1 外包出身的人要补的三块能力
外包训练了接手和交付,但转大模型还要补三块:
- 大模型基础链路:搞懂 RAG、Agent、Embedding 这些到底解决什么问题,别只会调 API;
- 评测意识:把"改没改坏"变成可断言的事实,这是接手能力的放大器;
- 工程化兜底:开关、灰度、回滚,这些 SRE 的老办法在大模型项目里一样救命。
| 已有能力(外包给的) | 要补的能力 |
|---|---|
| 读别人代码、定位问题 | 大模型链路原理 |
| 在约束下最小改动交付 | 评测与回归意识 |
| 按需求交付、对结果负责 | 渐进发布与回滚兜底 |
7.2 一个可交付练习:接手一个开源 RAG 项目并加一条评测
找一个开源的 RAG 项目,别急着改它,先做三件事:
- 跑通它,确认基线能答;
- 画它的数据流和调用链;
- 给它补一条最小回归用例,锁住一个已知正确的回答。
等你能稳定地"跑通—加评测—做最小改动—全绿交付",你就已经具备了岗位最看重的接手能力。
⚠️代码待验证
gitclone<开源RAG仓库地址>cd<项目目录>pipinstall-rrequirements.txt pytest tests/-q7.3 小结
本文想纠正一个转行误区:大模型岗位不是比谁更能从零搭 demo,而是比谁更能在别人的存量系统里,定位问题、做最小改动、并且安全地交付。外包经历恰好训练了这件事——你过去"在别人跑着的系统里活下来"的能力,正是这个岗位稀缺的那部分。把简历和面试的重心,从"我搭过什么"转到"我接手过什么、怎么确认没改坏、结果如何",你会发现自己比想象中更有竞争力。
接手能力练习包:我把本文提到的「数据流摸底清单 + 最小评测模板 + 渐进发布开关示例」整理成了可照做的练习包,放在资料包里,扫码即可获取:
附表 A:本文引用事实与出处对照表
| 事实 | 出处 | 本文位置 |
|---|---|---|
| 好的评估能帮助团队更自信地交付智能体;没有评估容易陷入被动循环——只在生产环境发现问题,修一个故障又引入另一个 | Anthropic《Demystifying evals for AI agents》https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents | 第3章、第5章 |
| 回归评测问"智能体是否还能处理它以前能处理的全部任务",通过情况应接近全部;能力评测通过后能"毕业"为持续运行的回归套件 | 同上 | 第5章 |
| 成功的 LLM 应用始于明确定义成功标准,再设计评测衡量;好的成功标准要具体、可衡量、可实现、相关 | Claude Platform《Define success criteria and build evaluations》https://platform.claude.com/docs/en/test-and-evaluate/develop-tests | 第5章、第6章 |
| 几乎所有 Google 服务的更新都分阶段渐进进行并穿插验证;首阶段称为"金丝雀";未通过验证期则自动回滚 | Google SRE《Reliable Product Launches at Scale》https://sre.google/sre-book/reliable-product-launches | 第4章 |
| 非紧急发布必须分阶段,把变更应用到小比例流量与容量来降风险;发现异常先回滚再诊断,以缩短恢复时间 | Google SRE《A Collection of Best Practices for Production Services》https://sre.google/sre-book/service-best-practices/ | 第4章 |
附表 B:术语速查表
| 术语 | 一句话人话解释 |
|---|---|
| RAG | 检索增强生成:先去知识库查资料,再把资料喂给大模型生成答案,让回答有依据 |
| Agent | 智能体:能自己调用工具、分步完成任务的程序,不是只答一次就结束 |
| Embedding | 把文字变成一串数字向量,方便按"意思相近"去检索 |
| 评测 / Eval | 给系统出一组成绩单式的考题,自动判断它答得对不对 |
| 回归评测 | 专门测"以前能做对的,现在还做不对",防止改出新毛病 |
| 灰度 / 金丝雀 | 先把新改动放给一小部分流量用,没问题再逐步放大,出问题就缩回 |
| 回滚 | 新改动出问题时,快速退回到上一个能用的版本 |
写在最后:这篇用到的资料
写这篇文章时,我把自己过去在外包项目里"接手别人系统"的那套方法,和 Anthropic、Google SRE 关于评测与渐进发布的官方文档对照着又理了一遍,顺手也整理了几份配套的东西:
- 大模型学习路线图:从零基础到能自己动手做 Agent,按阶段说明每一步该学什么、哪些可以先跳过
- 《LangChain + LangGraph + MCP 智能体开发实战》视频课:7 个模块,从私有化部署、Embedding+RAG 到 MCP+Agent 全流程
- AI 大模型知识库(在线可查):Agent Skills 从入门到落地、Claude Skills 完全指南等专题,按目录浏览即可
- 640 套 AI 大模型行业报告 + 经典 PDF 书籍:看行业落地案例和别人怎么做的时候用得上
- 大模型零基础到精通教学视频:跟着敲一遍,比只读文档快得多
资料是我自己整理的,放在下面这个码上,扫码即可获取:
添加时备注「AI」,优先通过。
资料按「先路线、再动手、最后查漏」的顺序整理好了,建议先看学习路线那一份,照着它挑一条适合自己当前基础的路径再往下看。