乐于分享
好东西不私藏

AI项目Leader必修课-万字长文给你构建认知

AI项目Leader必修课-万字长文给你构建认知

第一部分

AI基础认知:建立正确框架

第1章:AI究竟是什么?从规则到智能

• 传统软件与AI的根本区别• 机器学习、深度学习、大语言模型(LLM)的层级关系

• token、涌现能力、幻觉等核心概念

• LLM的能力边界与局限性

1.1 传统软件 vs AI:两种截然不同的思路

在理解AI之前,我们先回头看看传统软件是怎么运作的。

传统软件的核心是规则:程序员把所有逻辑写清楚,计算机严格按规则执行。比如一个垃圾邮件过滤器,开发者可能会写:

if “免费领取” in email.subject:

mark_as_spam()

if “点击链接” in email.body and sender not in whitelist:

mark_as_spam()

这种方式直观、可解释、可预测,但有一个致命弱点:规则是人写的,覆盖不了所有情况。垃圾邮件发送者只需要把”免费领取”改成”免费领 取”(加个空格),规则就失效了。

【核心概念】

机器学习(Machine Learning):不是人来写规则,而是让计算机从大量数据中自己找规律。

给它10万封邮件(标注好哪些是垃圾),让它自己学习”垃圾邮件长什么样”。

【类比】

教小孩认”猫”——你不会给他背一本规则手册(”四条腿+尖耳朵+胡须+会叫”),而是给他看1000张猫的照片。

看多了,他自然就会认。

机器学习的本质就是这样:大量例子 → 自动归纳规律。

1.2 层级关系:机器学习 ⊃ 深度学习 ⊃ 大语言模型

这三个词经常被混用,实际上是包含关系:

层级

是什么

代表技术

机器学习

用数据训练模型的方法论总称

线性回归、随机森林、SVM

深度学习

机器学习的一个子类,使用多层神经网络

CNN(图像识别)、RNN(序列数据)

大语言模型(LLM)

深度学习的一种,专门在文本数据上训练,参数量极大

GPT-4、Claude、Gemini、DeepSeek

【核心概念】

神经网络(Neural Network):受人脑启发的计算结构。

由大量”神经元”(数学函数)连接而成,信息从输入层逐层传递,每一层提取更高层次的特征。

“深度”指的是层数多(几十到几百层)。

1.3 大语言模型(LLM)的工作原理

LLM做的事情,说起来非常简单:预测下一个词(token)。

【核心概念】

Token:LLM处理文字的基本单位,不完全等于”字”或”词”。

英文中一个token大约是3/4个单词;

中文中一个token大约是1-2个汉字。

“ChatGPT is great” 大约是4个token。

LLM的训练过程:拿来海量文本(整个互联网、所有书籍……),每次遮住最后一个词,让模型猜是什么词,猜错了就调整模型参数。反复数亿次,模型就”学会”了语言的规律。

所以当你问LLM”今天天气怎么样”,它做的事情是:根据你的问题,找到”最可能跟在后面的词”,然后一个词一个词地输出。它不是在查数据库,而是在概率采样。

【关键洞察】

LLM是”有创造力的概率机器”,不是”精确的查询系统”。

这解释了为什么它有时会”编造”不存在的事实——它是在找”最可能跟着出现的词”,而不是在”查真实答案”。

1.4 什么是”涌现能力”?

早期的语言模型,参数量小,只会做简单的文本续写。当模型做到足够大(几十亿、几百亿参数),一些在训练时从未明确设计的能力,突然”涌现”出来:

l数学推理:能做多步骤数学题

l逻辑推理:能分析逻辑谬误

l写代码:能理解编程语言并生成代码

l类比思维:能举一反三

【核心概念】

涌现能力(Emergent Ability):当系统规模超过某个临界点,突然出现的、在小规模时完全不存在的能力。

这不是设计出来的,而是”量变引起质变”。

【类比】

往杯子里倒水,前99%的水是液态的;

但当水冻成冰(达到临界点),突然出现了”固态”这个新性质——这不是逐渐出现的,而是突变。

LLM的涌现能力也是类似的突变。

1.5 LLM的能力边界与局限

了解LLM的限制,比了解它能做什么更重要。在做技术选型时,不了解局限性会导致项目失败。

局限性

原因

应对方法

幻觉(Hallucination)

模型在找”可能的词”,不在查”真实的事”

RAG(引入外部知识库)/ 要求引用来源

知识截止日期

训练数据有截止点,不知道之后发生的事

联网搜索工具 / RAG

无持久记忆

每次对话独立,不记得上次说什么

外部记忆系统(第3章展开)

计算错误

模型本质上是语言模型,不是计算器

调用计算器工具 / Code   Interpreter

上下文限制

每次能”看到”的内容有限(下一章展开)

Context   Engineering / 分段处理

【核心概念】

幻觉(Hallucination):LLM生成看起来合理但实际上不正确的内容。

比如你问它某篇论文的作者,它可能会”编”一个听起来像真名字的名字,且说得很自信。

这是LLM的固有局限,不是bug,是架构特性。

• 传统软件靠规则;AI靠从数据中学习规律——这是根本区别

• 大语言模型(LLM)是深度学习模型,核心机制是”预测下一个token的概率”

• Token是LLM处理文字的基本单位,不等于一个字或词

• 涌现能力是规模扩大后突然出现的能力,不是设计出来的

• LLM的三大固有局限:幻觉、知识截止、无记忆——理解这些是用好AI的前提

第2章:从LLM到AI助手——中间发生了什么?

• Prompt、System Prompt、User Prompt的概念与区别

• Context Window是什么,为什么重要

• Temperature等关键参数的含义

• ChatGPT/Claude背后的工作原理

• RAG的初步认识

2.1 Prompt:给LLM的指挥棒

【核心概念】

Prompt:给LLM的输入文本。

从最简单的”今天天气好吗”,到复杂的系统级指令,都叫Prompt。

Prompt的质量直接决定输出的质量——”垃圾进,垃圾出”在LLM里同样适用。

一个完整的Prompt通常由两部分构成:

类型

谁设置

作用

例子

System Prompt

开发者/产品方

角色设定、行为约束、背景信息

“你是一个代码审查专家,只回答编程相关问题,回答必须简洁”

User Prompt

最终用户

具体的任务指令

“帮我审查这段Python代码”

【类比】

System Prompt像一家公司的”员工手册”——告诉AI它是谁、能做什么、怎么做事;

User Prompt像员工收到的”工单”——具体这次要做什么。

手册定角色,工单定任务。

2.2 Context Window:AI的工作记忆

【核心概念】

Context Window(上下文窗口):LLM每次处理时能”看到”的全部内容总量,以token计量。

包括System Prompt + 历史对话 + 当前提问 + 要生成的回答。

超过这个限制,早期的内容就会被”遗忘”或报错。

常见LLM的Context Window大小(2025年数据):

模型

Context Window

大约能放多少内容

GPT-4o

128K tokens

约10万字(一本薄书)

Claude 3.7   Sonnet

200K tokens

约15万字(一本厚书)

Gemini 1.5 Pro

1M tokens

约75万字(几本书)

【类比】

人的工作记忆(短期记忆)大约能同时保持7±2件事。

Context Window就是AI的工作记忆——它能”同时看着”的内容是有限的。

超过了,就开始忘;

要么需要你提醒,要么就出错。

Context Window的重要性:

l决定AI能理解多少背景信息:一次性给它10万字文档,它能理解全文;如果只有1000 token,只能看一小段

l影响多轮对话的连贯性:长对话后,早期的信息可能被”挤出”context

l是Agent设计的核心约束(后面章节会深入)

2.3 关键参数:Temperature与TopP

调用LLM的API时,有几个参数控制输出行为:

【核心概念】

Temperature(温度):控制输出的随机性/创造性。

数值范围通常0~2。

→ Temperature=0:每次输出几乎相同,最确定、最稳定(适合需要准确答案的场景) → Temperature=1:平衡创意与准确(默认值) → Temperature=2:非常随机,可能离题(不推荐用于生产)

【类比】

Temperature就像人回答问题时的”发挥空间”。

Temperature=0,像考试做选择题,按最确定的答案填;

Temperature=2,像脑洞大开的创意写作,天马行空。

写SQL用低temperature,写广告文案用高temperature。

2.4 ChatGPT/Claude背后的工作原理

我们每天用的AI助手(ChatGPT、Claude、Kimi……),不只是一个LLM,而是一个系统:

用户输入

安全过滤(屏蔽违规内容)

组装完整Prompt = System Prompt + 对话历史 + 用户输入

LLM(核心:预测token)

输出后处理(格式化、安全过滤、流式输出)

用户看到的回答

这说明:”AI助手”和”LLM”不是同一件事。LLM只是核心引擎,外面包了一层工程系统。

2.5 RAG:让AI能查阅外部知识

【核心概念】

RAG(Retrieval-Augmented Generation,检索增强生成):让LLM在回答问题前,先从外部知识库中检索相关内容,然后把检索结果加入Prompt,再生成回答。

这样AI就能”查资料”了,不再只靠训练时的记忆。

【类比】

没有RAG的LLM:像一个从不查书的人,全靠记忆回答——记得的说对,不记得的会乱说。

有RAG的LLM:像一个在旁边摆了一排参考书的人——有问题先查书,再给你答案,准确多了。

RAG解决的核心问题:

l知识截止日期:外部知识库可以实时更新

l私有知识:公司内部文档、代码库,LLM没训练过,但RAG能用

l减少幻觉:有了真实参考资料,乱编的概率大幅下降

RAG的工作流程(简化版):

1. 预处理:把文档切片 → 向量化(转成数字) → 存入向量数据库

2. 查询时:用户问题 → 向量化 → 在数据库中找最相似的片段

3. 生成:相关片段 + 用户问题 → 一起发给LLM → LLM生成带参考依据的回答

• Prompt是给LLM的输入:System Prompt设定角色,User Prompt给出任务

• Context Window是AI的工作记忆,有上限,决定AI能同时”看到”多少信息

• Temperature控制输出的随机性:准确型任务用低temperature,创意型任务用高temperature

• ChatGPT/Claude是”LLM + 工程系统”,不只是裸模型

• RAG让AI能查阅外部知识库,解决幻觉和知识截止的问题

第二部分

AI Agent:从问答到自主完成任务

第3章:什么是AI Agent?

• Chatbot与Agent的本质区别

• ReAct循环(Reason-Act-Observe)的工作方式

• 工具调用(Tool Use)是怎么回事

• Memory三层架构

• 为什么Agent需要Planning和Human-in-the-Loop

3.1 从Chatbot到Agent:一次本质跃迁

很多人把AI Agent理解为”更聪明的Chatbot”,这是一个根本性的误区。

Chatbot的工作方式是:你问 → 它答 → 结束。每次交互是独立的,它不会主动做任何事情,也不会自己判断”任务是否真的完成了”。

Agent的工作方式完全不同:给它一个目标,它自己规划路径、调用工具、观察结果、调整策略,直到目标达成。

维度

Chatbot

AI Agent

交互模式

一问一答,做完就走

接到目标→自主循环→直到完成

工具使用

偶尔调用一个API

自主选择、组合多个工具

记忆

对话内短暂记忆

三层记忆(情景/语义/程序)

规划

无规划,直接响应

先规划(write_todos),再执行,持续修订

子任务

不派发子任务

可生成子Agent,隔离执行

完成判断

模型自己说”完成了”就完成了

每个todo项必须check-off验证

【类比】

Chatbot像一个”只接电话的客服”——你问什么答什么,挂了电话就忘了;

Agent像一个”项目负责人”——你告诉他目标,他自己拆任务、调资源、跟进进度,直到项目真的完成。

3.2 ReAct循环:Agent的心脏

【核心概念】

ReAct(Reason-Act-Observe)循环:Agent的核心运行机制。

每一轮:先推理(Reason)应该做什么,再行动(Act)调用工具,然后观察(Observe)工具返回的结果,基于结果再推理下一步。

循环往复直到任务完成。

用一个完整的例子走一遍——任务:”帮我分析这季度的销售数据,找出异常”:

[Reason] 我需要先获取这季度的销售数据,然后进行分析

[Act]调用工具:query_database(“SELECT * FROM sales WHERE quarter=’Q1 2026′”)

[Observe] 返回:12000条记录,包含门店、产品、金额等字段…

[Reason] 数据量不大,我可以直接分析。先看整体趋势,再找异常

[Act]调用工具:analyze_data(data, method=”trend_analysis”)

[Observe] 返回:总销售额环比下降8%,华北区门店下降最明显(-23%)

[Reason] 华北区异常显著,需要深入看华北区的具体数据

[Act]调用工具:query_database(“…WHERE region=’华北’ ORDER BY sales ASC”)

[Observe] 返回:北京朝阳门店销售额从60万跌到12万,跌幅80%

[Reason] 单店跌幅过大,可能是数据问题或门店运营问题,需要提醒用户

[Response] 发现异常:北京朝阳门店本季度销售额下降80%(60万→12万),

显著异常,建议核实数据准确性和门店运营情况。

这就是ReAct循环的全过程。Agent并不是一次性给出答案,而是边做边想,根据每一步的结果调整下一步的行动。

3.3 工具调用(Tool Use):让Agent能”动手”

【核心概念】

工具调用(Tool Use / Function Calling):LLM本身只能输出文字,工具调用让它能”做事”。

开发者预先定义好工具(函数名+参数说明+返回值格式),LLM在推理时自行判断何时调用哪个工具、传什么参数。

常见的工具类型:

l搜索工具:web_search、查文档

l代码执行:run_python、execute_sql

l文件操作:read_file、write_file、list_directory

l外部API:发邮件、发Slack消息、操作数据库

l子Agent派发:让另一个Agent完成子任务

【类比】

LLM的语言能力是”大脑”,工具是”手”。

大脑没有手什么都做不了;

光有手没有大脑也不知道做什么。

工具调用让Agent同时有了”大脑”和”手”。

3.4 Memory:Agent的记忆系统

Agent需要记住信息——但记什么?怎么记?借鉴认知科学,Deep Agent有三层记忆:

层级

存什么

类比

实现方式

情景记忆(Episodic)

过去发生了什么(事件/交互历史)

“上次他让我做代码审查,我漏掉了安全漏洞”

向量数据库(Chroma/Qdrant)

语义记忆(Semantic)

什么是真的(事实/知识)

“Python的GIL限制多线程性能”

RAG(第2章)+ 知识图谱

程序记忆(Procedural)

怎么做事情(行为规范/工作流)

“做代码Review时,先看diff再看周边文件”

System Prompt +   Skill文件(第7章)

【关键洞察】

RAG就是语义记忆系统;

Skill(第7章)就是程序记忆系统。

理解了Memory三层,你就理解了为什么需要RAG、为什么需要Skill——它们各自服务于不同类型的记忆需求。

3.5 Planning:为什么Agent需要先规划?

一个常见的Agent失败模式是:直接开始行动,做着做着忘了最初的目标;或者做完了第一步以为任务完成了,其实还差很多。

解决方案是显式规划(Planning):

1.接到任务后,先把任务拆解成子步骤,写入待办列表(write_todos)

2.逐步执行,每完成一步就check-off

3.所有步骤check-off才能宣告任务完成

【核心概念】

write_todos机制:把规划写入文件系统(而非context内存),避免长任务中规划被”挤出”context窗口。

这是Agent可靠完成复杂任务的关键工程实践。

3.6 Human-in-the-Loop:关键决策点的人工参与

【核心概念】

Human-in-the-Loop(HITL):在Agent执行过程中的关键决策点,强制暂停等待人类审批,再继续执行。

不是”全程人工监控”,而是”关键节点人工把关”。

哪些操作需要HITL?

l修改生产数据库配置

l删除数据或文件

l发送邮件/消息给外部

l部署到生产环境

l花费超过阈值的资源

【类比】

自动驾驶L2级别:大多数时候AI自己开,但遇到复杂路况(施工、暴雪、复杂交叉口)系统会提示司机接管。

HITL在Agent中的作用完全类似——”高风险操作前,移交人类决策”。

【注意】

EU AI Act 2026年8月2日生效,高风险AI系统(涉及医疗/金融/关键基础设施)法律要求必须有Human-in-the-Loop机制。

这不只是工程最佳实践,正在成为法规要求。

• Agent ≠ 聪明的Chatbot:Agent是自主循环执行到目标达成,Chatbot是一问一答

• ReAct循环(Reason→Act→Observe→Reason)是Agent的核心机制

• 工具调用让Agent从”只能说”变成”能做事”

• 三层记忆:情景(RAG历史)/ 语义(RAG知识)/ 程序(Skill)——对应后续两章

• Planning(显式规划+check-off)防止Agent”自以为完成了”的失败

• Human-in-the-Loop是高风险操作的必要安全机制

第4章:多Agent系统——让Agent组团工作

• 为什么需要多个Agent协作

• 四种多Agent编排模式及其类比

• MCP协议的深入解释(为什么是AI的USB-C?)

• A2A协议与MCP的区别

• 常见失败模式与防御策略

4.1 为什么需要多个Agent?

单个Agent有三个根本限制,推动了多Agent架构的出现:

4.Context Window限制:一个Agent同时看的内容有限,超大任务塞不下

5.并行能力限制:单Agent只能串行做事,大量子任务需要并行

6.专才vs通才:一个”什么都做”的Agent,不如多个”专做一件事”的Agent组合效果好

【类比】

开发一个大型软件,一个全栈工程师单打独斗,不如一个前端+一个后端+一个测试+一个DevOps的团队高效。

多Agent是”AI团队协作”,每个Agent有自己的专责领域。

4.2 四种编排模式

模式1:Sequential(流水线)

Agent A做完,把结果交给Agent B,B做完交给C,依次串行。

【类比】

工厂流水线:零件先到冲压车间→焊接车间→喷漆车间→装配车间,每个环节只做自己的事。

适合:有明确依赖关系的任务(数据清洗→分析→报告生成) 优势:可预测、易调试 劣势:无法并行,速度慢

模式2:Parallel Fan-Out/Fan-In(并行汇聚)

主Agent把任务分发给多个子Agent(Fan-Out),子Agent并行执行,主Agent汇聚结果(Fan-In)。

【类比】

学校分组讨论:老师把一个大问题分给5个小组同时讨论(Fan-Out),然后各组派代表汇报,老师综合所有观点(Fan-In)。

适合:独立子任务(同时分析5个部门的报告、同时审查5个代码文件) 优势:速度快,N个Agent同时工作 注意:Fan-In聚合逻辑需要精心设计

模式3:Hierarchical/Supervisor(层级管理)

Supervisor Agent负责拆解任务、分配给下属Agent、汇聚结果;下属Agent专注执行。

【类比】

项目经理+执行团队:项目经理不亲自写代码,而是分配任务、跟进进度、整合交付物。

适合:企业级复杂任务,权责需要清晰划分 优势:清晰的权责边界,易于扩展 注意:Supervisor的调度逻辑设计要花心思

模式4:Adaptive/Magentic-One(自适应)

没有固定结构,Agent根据任务动态决定下一步找谁合作、用什么工具。

【类比】

SWAT特种部队:没有固定剧本,遇到情况动态调配人员和资源,灵活响应。

适合:开放式探索(不确定如何解决的问题) 优势:灵活 注意:难以调试,结果不稳定,不适合生产关键路径

4.3 MCP协议:AI的USB-C

在讲MCP之前,先理解一个问题:没有统一标准时,Agent连接工具有多痛苦?

假设你有3个AI Agent,10个工具(数据库/Slack/GitHub/邮件/日历……),每个Agent要连接每个工具,需要单独开发集成代码。这是 3×10=30 个集成。再加5个Agent、10个工具,就是 8×20=160 个集成。这就是N×M问题——随着工具和Agent数量增加,集成工作量爆炸式增长。

【核心概念】

MCP(Model Context Protocol):Anthropic提出的开放协议,标准化Agent与外部工具/数据源的连接方式。

工具方实现一次MCP Server;

Agent方实现一次MCP Client;

之后任何Agent都能连接任何工具。

把N×M问题变成了N+M问题。

【类比】

USB-C出现之前:每个设备用不同接口(Micro-USB/Lightning/proprietary),需要一堆不同的数据线。

USB-C出现之后:一个接口,连所有设备。

MCP对AI世界的意义完全一样:一个协议,连所有工具。

MCP的三个角色:

lMCP Server:工具/数据源方实现(如GitHub的MCP Server提供”看issue、提PR”等能力)

lMCP Client:Agent的一部分,知道如何通过MCP协议调用工具

l协议规范:Linux基金会AAIF负责维护,保证互操作性

实际例子:

MCP Server

提供的能力

MCP-GitHub

读代码、看PR、创建Issue、合并分支

MCP-Slack

发消息、读频道、@人

MCP-PostgreSQL

查询数据库、执行SQL

MCP-Filesystem

读写本地文件、列目录

4.4 A2A协议:Agent之间的HTTP

【核心概念】

A2A(Agent-to-Agent)协议:由Google发起(50+合作伙伴)的协议,标准化Agent之间的通信方式。

MCP是Agent连接”工具”的标准,A2A是Agent连接”其他Agent”的标准。

两者互补,不是替代关系。

维度

MCP

A2A

连接对象

Agent ↔ 工具/数据源

Agent ↔ Agent

类比

USB-C(设备接口)

HTTP(服务器间通信)

发起方

Anthropic →   Linux基金会AAIF

Google + 50+合作伙伴

关系

互补,共同构建完整的Agent生态

4.5 常见失败模式与防御策略

失败模式

表现

防御策略

Context Rot(上下文腐化)

对话越来越长,早期关键信息被挤出或被”淹没”

每N轮主动压缩;结果存文件;70%满时触发摘要

Infinite Loop(无限循环)

Agent反复调用同一工具却没有进展

步数硬限制;语义去重检测;第三次相同行动触发HITL

Premature   Closure(过早结束)

第一步做完就宣告任务完成

write_todos强制check-off每个子项

Memory   Incoherence(记忆冲突)

多个Agent并发写同一数据导致冲突

原子写操作;namespace所有权;版本控制

• 多Agent架构的驱动力:Context限制 + 并行需求 + 专才效应

• 四种编排模式:Sequential(流水线)/ Parallel(并行汇聚)/ Hierarchical(层级管理)/ Adaptive(自适应)

• MCP:工具连接标准化(USB-C类比),把N×M问题变成N+M

• A2A:Agent间通信标准化(HTTP类比),与MCP互补

• 多Agent系统常见失败:Context腐化 / 无限循环 / 过早结束 / 记忆冲突——每种都有对应防御

第三部分

AI编程:工程化落地

第5章:AI时代的编程方式变了

• Software 1.0/2.0/3.0三大范式的含义

• LLM作为新操作系统的类比框架

• 六大AI编程新模式(Vibe Coding、Context Engineering等)

• 什么是Context Engineering,为什么是核心技能

• AI编程”快了什么,慢了什么”的现实评估

5.1 Software的三次范式革命(Karpathy框架)

OpenAI创始人之一Andrej Karpathy(前特斯拉AI总监)在2025年的演讲中提出了一个深刻的框架:软件正在经历第三次范式革命。

范式

“代码”是什么

“编程”怎么做

时代

Software 1.0

人类写的指令(Python/Java/C++)

人类手工写代码,定义每一行逻辑

1950s至今

Software 2.0

神经网络权重(数字参数)

管理训练数据 + 设计优化器,让模型学习行为

2015年起(深度学习兴起)

Software 3.0

LLM的Prompt和Context

用自然语言”编程”,Prompt就是程序

2024年起(LLM普及)

【关键洞察】

三种范式共存,不是替代关系。

一个现代AI项目:用Python代码(1.0)调用模型API,模型本身是训练好的神经网络权重(2.0),Agent的行为由Prompt和Skill文件控制(3.0)。

三者同时运行。

5.2 LLM = 新操作系统

Karpathy的另一个深刻类比:LLM正在扮演”新操作系统”的角色——管理资源、调度任务、提供统一接口。

传统操作系统

LLM对应

系统内存(RAM)

Context Window(工作记忆)

CPU/进程调度

LLM推理和Agent编排

外存/硬盘

文件系统 + 向量数据库

系统调用(syscall)

Tool Use / MCP协议

多进程

Sub-Agent

用户态/内核态

人工干预区域 / AI自主区域

程序(.exe)

Prompt + Skill文件

这个类比帮助你理解:为什么Context Window管理这么重要(就像内存管理);为什么工具调用需要标准化协议(就像系统调用需要ABI)。

5.3 六大AI编程新模式

模式1:Vibe Coding(直觉编程)

【核心概念】

Vibe Coding:用自然语言描述意图,让AI生成代码,人类专注在”感觉对不对”上,而不是盯着每一行代码。

Karpathy本人用这种方式,在不懂Swift的情况下做出了iOS应用。

适合:快速原型、MVP、个人项目、探索性开发 不适合:生产关键系统、安全敏感代码、长期维护的大型项目

核心风险:”感觉对了”不等于”真的对了”。

模式2:Generation-Verification Loop(生成-验证循环)

AI生成→人类验证→反馈修改→再生成→再验证……快速循环。关键是让验证步骤尽量轻量(视觉diff而不是读10000行代码)。

模式3:Context Engineering(上下文工程)

【核心概念】

Context Engineering:精心设计”给AI的信息套餐”——什么信息放进去、以什么顺序放、放多少量。

它已经取代”Prompt Engineering”成为AI工程师的核心技能。

Context Engineering的四个基本操作:

lWrite:把关键信息(代码规范、业务背景)主动写入context

lSelect:从大量信息中挑最相关的放入(RAG的核心)

lCompress:把冗余信息压缩成摘要

lIsolate:不同任务用不同context,防止互相干扰

【关键洞察】

AI表现不佳,十有八九不是”模型不够强”,而是”给模型的context不够好”。

Context Engineering就是解决”给AI什么信息、怎么给”的学问——这是当前AI工程师最重要的技能之一。

模式4:Agent-First Design(Agent优先设计)

现代软件要为两类用户设计界面:

l人类界面:视觉化、直觉化(按钮、图表、表单)

lAgent界面:结构化、文本化(API文档、MCP Server、llm.txt)

模式5:Partial Autonomy / Autonomy Slider(可调节自主度)

AI不是”要么全自动、要么全手动”,而是一个滑块:按任务复杂度和风险程度,灵活调节AI自主程度。低风险任务:完全自动;高风险操作:必须人工审批。

模式6:Agentic Coding(Agent化编程)

不同于随性的Vibe Coding,Agentic Coding是结构化workflow + AI执行:先有清晰的任务规划(或Spec),然后Agent按计划执行,人类监督关键节点。

5.4 AI编程的现实:快了什么,慢了什么?

变快了 ✅

仍然慢 ⚠️

核心业务逻辑、自定义功能

认证系统(OAuth/SSO/MFA)

原型和MVP

支付集成(Stripe/微信支付)

标准框架任务(CRUD/API)

生产级部署(K8s/CI-CD/监控)

单文件编辑和重构

跨系统数据一致性

写文档和注释

性能优化和安全审计

【注意】

“最后一公里”仍是瓶颈:Demo看起来很惊艳,但MVP→Production之间有巨大的gap。

认证/支付/部署这些”胶水层”AI仍然很难做好。

不要被demo迷惑,要评估完整落地成本。

5.5 古法 vs AI编程——概念对照

古法概念

AI时代对应

变化本质

编写代码

Vibe Coding /   Agentic Coding

人→描述意图,AI→生成实现

代码评审

Generation-Verification   Loop

从”逐行读”到”验证AI产物”

写需求文档

Spec(SDD)

需求文档变成AI可执行的Spec

README.md

SKILL.md

给人类读的 → 给AI读的操作手册

.gitignore

llm.txt /   .cursorrules

控制人类工具行为 → 控制AI行为

架构设计

Context架构 +   Agent架构设计

设计的对象包含了”给AI的信息结构”

调试(Debug)

AI Archaeology(AI考古)

理解AI自己生成的代码往往需要”反向工程”

• Software 1.0/2.0/3.0三种范式共存:代码/权重/Prompt同时存在于现代AI项目

• LLM是新操作系统:Context Window=内存,工具=系统调用,Sub-Agent=多进程

• 六大新模式:Vibe Coding / Generation-Verification / Context Engineering / Agent-First Design / Autonomy Slider / Agentic Coding

• Context Engineering是当前最重要的AI工程技能——给AI好的信息,比换更大的模型更有效

• AI编程快的是”核心逻辑”,慢的是”最后一公里”(认证/部署/跨系统集成)

第6章:SDD规格驱动开发——给AI编程加上纪律

• Vibe Coding的隐患和代价

• SDD(规格驱动开发)的核心理念与三层分级

• SDD的四步工作流

• SDD与TDD的关系

• 如何写好Spec,常见误区

6.1 Vibe Coding的代价

Vibe Coding很爽,尤其是刚开始的时候。你描述一个想法,AI马上给你一个可以运行的原型。但随着功能叠加,麻烦来了:

lScope creep(范围蔓延):每次”顺便再加一个功能”,架构越改越乱

l语义漂移:团队对需求的理解不断偏移,AI生成的代码也跟着偏移,错误越积越深

l不可维护:AI生成的代码没有一致的设计哲学,六个月后自己都看不懂

l无法协作:没有清晰的需求文档,多人协作时各自理解不同,冲突频发

【类比】

Vibe Coding建系统,就像凭感觉盖房子——先搭一个房间,感觉不错;

再加一个房间,又加阳台,再改厨房……最后结构越来越复杂,墙都不知道哪堵是承重墙,拆哪堵都危险。

6.2 什么是SDD?

【核心概念】

SDD(Spec-Driven Development,规格驱动开发):在写代码之前,先写一份人类可读的”规格文档(Spec)”,清楚描述”要做什么、约束是什么、怎么验证对了”,然后用这份Spec指导AI生成代码。

核心理念:规格先行,意图明确,AI实现。

【核心概念】

Spec(规格文档):不是代码,不是注释,而是用结构化的自然语言描述的行为约束文档。

一个好的Spec包含:功能描述、前置条件、约束限制、输入/输出示例、验收标准。

它同时可以被人类理解和被AI执行。

对比一下有无Spec的差别:

维度

无Spec(Vibe Coding)

有Spec(SDD)

输入给AI的

“加个文件上传功能”

“支持JPEG/PNG,单文件≤10MB,存S3,上传者可删除,管理员可以看所有人的”

AI的理解

猜测,可能和你想的不一样

基于明确约束生成,偏差小

验收方式

“看起来能用”

按Spec的验收标准逐项核对

六个月后

没人知道当初为什么这么做

Spec就是活的需求文档

6.3 SDD三层分级

SDD不是非此即彼,而是一个成熟度光谱:

层级

特征

适用场景

风险

Spec-First(规格先行)

写Spec→指导构建→Spec可能被遗忘,后续不维护

AI辅助初始开发、探索阶段

Spec与代码逐渐脱节

Spec-Anchored(规格锚定)

Spec持续维护,与代码同步,BDD场景成为自动测试

生产级功能、长期维护系统(推荐甜点)

需要额外维护成本

Spec-as-Source(规格即源)

Spec是唯一人类编辑的产物,代码完全从Spec自动生成

API   stub/OpenAPI/嵌入式代码生成

工具链要求高,适用范围窄

【常见误区:Spec-Once】

写完Spec就扔掉,代码快速演化,但Spec不更新。

三个月后Spec成了废纸,和代码完全不匹配。

这是最常见的”伪SDD”——有Spec的名,没Spec的实。

Spec必须和代码一起维护。

6.4 SDD的四步工作流

Step 1: Specify(规格)

→ 写清楚”做什么”:功能描述 + 前置条件 + 约束 + 验收标准

→ 格式推荐:Given/When/Then(BDD风格)

Step 2: Plan(规划)

→ AI(或人)基于Spec,分解实现步骤

→ 确认技术方案、识别依赖、估算工作量

Step 3: Implement(实现)

→ AI按Spec和Plan生成代码

→ 人类专注于验证,而不是写代码

Step 4: Validate(验证)

→ 按Spec的验收标准逐项核对

→ 不符合的地方回到Step 1修订Spec,再循环

6.5 如何写好Spec?

一个好的Spec包含五个要素:

7.功能描述:这个功能做什么(用户视角,而不是技术视角)

8.前置条件:什么情况下这个功能才工作(用户已登录?文件存在?)

9.约束限制:不能做什么、边界在哪里(文件大小限制、并发数量等)

10.场景举例:给3-5个具体例子(正常案例 + 边界案例 + 异常案例)

11.验收标准:怎么验证”做对了”(可检验的、明确的标准)

一个Spec示例(文件上传功能):

# 文件上传功能 Spec

## 功能描述

用户可以上传图片文件,系统将文件存储到S3,并记录文件所有权。

## 前置条件

– 用户已登录(持有有效JWT Token)

– 用户有上传权限(非封禁状态)

## 约束限制

– 支持格式:JPEG、PNG(不支持GIF、WebP、PDF)

– 单文件大小:≤10MB

– 每用户每天上传限额:50个文件

– 文件名:自动重命名为UUID,不保留原始文件名

## 场景

Given 已登录用户上传一个8MB的JPEG文件

When 文件上传完成

Then 返回状态200和文件URL;文件出现在用户的文件列表

Given 用户上传一个12MB的PNG

When 文件超过大小限制

Then 返回状态400,错误信息”文件大小超过10MB限制”,文件不存储

## 验收标准

– [ ] 正常上传JPEG/PNG成功

– [ ] 超大文件被拒绝且有明确错误信息

– [ ] 上传的文件在S3中可访问

– [ ] 文件归属关系正确记录在数据库

6.6 SDD与TDD的关系

【核心概念】

TDD(Test-Driven Development,测试驱动开发):先写测试,再写代码,测试通过即完成。

Red(测试失败)→ Green(测试通过)→ Refactor(重构)三步循环。

核心是从单个函数/方法的行为出发设计代码。

SDD与TDD的关系:

lTDD是微观(单元级):关注单个函数的输入输出行为

lSDD是宏观(feature/系统级):关注整个功能的行为约束

lTDD是SDD在单元级的特例:测试代码就是”代码级的Spec”

维度

TDD

SDD

关注范围

单个函数/方法(微观)

整个feature/系统(宏观)

“Spec”形式

测试代码(可执行)

自然语言文档(可读)

验证时机

每次保存自动运行测试

手动对照Spec验收,或BDD自动化

AI时代变化

AI可以从Spec自动推导单元测试

Spec成为AI代码生成的输入

推荐组合方式:

l快速原型阶段:Vibe Coding,不需要TDD也不需要SDD

l生产级feature:Spec-Anchored SDD + 从Spec推导BDD场景(测试)

lAPI接口:Spec-as-Source (OpenAPI),合约测试自动生成

【关键误区】

测试通过 ≠ 软件正确。

如果Spec本身写错了,TDD只会”忠实地验证一个错误的规格”。

Spec的质量需要和代码一样认真review。

• Vibe Coding的隐患:Scope creep、语义漂移、不可维护——生产系统需要更多纪律

• SDD核心:规格先行,先定义”做什么和约束”,再让AI实现

• 三层分级:Spec-First(入门)→ Spec-Anchored(甜点,推荐)→ Spec-as-Source(高阶)

• TDD是SDD的微观版:测试=代码级Spec;两者互补,不是非此即彼

• 最常见陷阱:写完Spec就不维护(Spec-Once),导致Spec与代码脱节

第7章:Skill——给Agent的”操作手册”

• Skill的本质:过程性知识的结构化封装

• Skill的三阶段加载机制

• SKILL.md的标准格式

• 如何写好Skill(三条设计原则)

• Skill vs MCP vs .cursorrules的区别

• OpenClaw与Skill生态,以及安全风险

7.1 从一个类比开始理解Skill

想象一个场景:你新招了一个实习生,非常聪明,但什么都不懂公司的流程。

第一种方式:每次他来问你”代码Review怎么做”,你口头给他讲一遍。明天他再来,你再讲一遍——效率极低。

第二种方式:你给他一份操作手册,写清楚”代码Review先看什么,发现什么类型的问题怎么报告,哪些是必须修复的,哪些可以忽略”。他按手册做,不用每次来问你。

Skill就是这份操作手册,只不过读者是AI Agent。

【核心概念】

Skill(智能体技能):一种以SKILL.md为核心的开放格式,用于封装AI Agent的过程性知识——告诉Agent”如何做某类任务”。

它是结构化的、可移植的、可版本化的”Agent操作手册”。

【核心概念】

过程性知识(Procedural Knowledge):知道”怎么做”,而非”是什么”。

例如”酱油是调味品”是陈述性知识;

“炒菜时先热锅再下油,油温七成热时放配料”是过程性知识。

Skill封装的是过程性知识。

【关键洞察】

回忆第3章的Memory三层:程序记忆(Procedural Memory)存的就是”行为规范/工作流”。

Skill文件就是实现程序记忆的工程化方式——把隐性的经验知识,编写成Agent能理解和执行的显性文档。

7.2 Skill的四类内容

内容类型

说明

例子

蒸馏时

触发条件

什么时候该用这个Skill

“当用户要求Code   Review时”

✅ 必须保留

核心步骤

先干什么,后干什么,顺序不能乱

“1.先看diff   2.再看周边文件 3.最后看测试覆盖”

✅ 顺序不能乱

硬约束

什么绝对不能做

“绝不能直接给用户明文密码”

✅ 原封不动

辅助说明

背景、例子、解释性文字

“以下是几个常见错误模式示例……”

⚠️ 可压缩

7.3 Skill的三阶段加载机制

一个Agent可能有几十个Skill可用。如果把所有Skill的全文都塞进context,context window会被撑爆。所以Skill采用”按需加载”机制:

阶段1 – Discovery(发现):

仅加载 name + description(每个Skill约50字)

判断当前任务与哪个Skill最相关

节省 context token

阶段2 – Activation(激活):

当任务与某Skill高度匹配

将该Skill的完整 SKILL.md 加载到 context

阶段3 – Execution(执行):

Agent按照Skill指令执行任务

按需加载 scripts/ references/ assets/ 中的支撑文件

【关键洞察】

这是Context Engineering的典范应用:有100个Skill,但大多数时候只激活1-2个,其余只占50字左右的”目录条目”。

按需加载让Agent可以”拥有很多能力”而不”撑爆context”。

7.4 SKILL.md格式详解

一个标准的SKILL.md文件分两部分:

第一部分:YAML Frontmatter(必须有)

name: code-review# Skill的唯一名称,Discovery时用

description: ># 简介,50字以内,Discovery阶段加载

Review code for quality issues, security vulnerabilities,

and spec compliance. Triggered when user asks for code review.

license: Apache-2.0

allowed-tools: Read Bash(git:*) Bash(grep:*)# 允许调用的工具(安全边界)

metadata:

author: your-team

version: “1.2”

第二部分:Markdown正文(Skill的实质内容)

# Code Review Skill

## 何时使用

当用户明确要求 Code Review,或提交了代码变更请求时触发本 Skill。

## 工作流程

1. 先用 git diff 查看变更范围

2. 阅读被修改文件的上下文(周边代码)

3. 检查是否符合 Spec(如有)

4. 检查安全漏洞(SQL注入/XSS/硬编码密钥等)

5. 检查代码质量(命名/复杂度/重复/注释)

6. 检查测试覆盖是否充分

## 约束与规则

– 必须按上述顺序执行,不能跳过安全检查

– 发现高危漏洞时,立即标注 [CRITICAL] 并停止其他检查

– 绝不修改用户未要求改动的文件

– 输出格式必须是:Summary / Issues(分级)/ Suggestions

## 输出格式

**Summary**: 一句话总结变更内容

**Issues**:

– [CRITICAL] 问题描述

– [WARNING] 问题描述

– [INFO] 问题描述

**Suggestions**: 可选的改进建议

7.5 如何写好Skill:三条设计原则

原则1:写过程,不写答案

错误做法:把某道具体题目的最终答案塞进Skill(这不是过程性知识) 正确做法:告诉Agent”遇到这类问题时,先做什么,再做什么,怎么判断结果”

原则2:聚焦任务类,不追求百科全书

一个Skill应该覆盖一类相似任务的稳定工作流,而不是把所有知识塞进一个Skill。 功能边界越清晰 → 触发越稳定 → 负迁移越少(负迁移:用了Skill反而让不相关任务变差)

原则3:把确定性逻辑下沉

长文档、校验脚本、模板文件放进 scripts/ references/ assets/ 目录,SKILL.md只放核心流程。不要把所有东西堆进SKILL.md正文。

7.6 好Skill vs 坏Skill

维度

好Skill ✅

坏Skill ❌

长度

<1500字,精炼

>3000字,什么都往里塞

聚焦度

一个任务类

十几页背景知识+技巧合集

触发条件

明确(”当用户要求Code   Review时”)

模糊(”用于开发相关场景”)

步骤

有序、有优先级、有判断分支

随意罗列,没有执行顺序

约束

硬约束清晰(”绝不能……”)

只有建议(”最好……”、”尽量……”)

可验证性

有回归样例集,能测试效果

无法验证,靠感觉

支撑文件

脚本/模板放 scripts/   assets/

所有内容全堆进SKILL.md正文

7.7 Skill vs MCP vs .cursorrules 区别

维度

Skill (SKILL.md)

MCP

.cursorrules/.clinerules

本质

过程性知识包(”如何做”)

工具连接协议(”用什么做”)

项目级约束规则

格式

YAML + Markdown

JSON Schema(工具定义)

纯文本规则

可移植性

高(跨平台开放标准)

高(开放协议)

低(工具特定)

加载方式

三阶段按需加载

启动时注册

每次对话直接注入

编写者

领域专家/团队

工具/服务开发者

项目负责人

解决什么

Agent”怎么工作”

Agent”连接什么工具”

Agent在这个项目中遵守什么规则

【关键洞察】

三者不互斥,而是互补的层次: .cursorrules 定义”在这个项目中,你要遵守什么规则” MCP 定义”你能连接什么工具” Skill 定义”你应该怎么用这些工具完成某类任务” 三者一起,构成完整的Agent行为约束体系。

7.8 为什么GitHub上出现了大量Skill?

三个驱动因素:

12.Anthropic 2025.12发布Skill为开放标准:任何AI工具都可以读取同一份SKILL.md文件,跨平台可移植性成为现实(就像npm package可以在任何Node环境用)

13.SkillsBench论文(2026)证明Skill是工程变量:不是”可有可无的提示词”,而是能单独测量、显著提升Agent完成率的资产。论文关键发现:人工策划的好Skill,让小模型逼近大模型裸跑的效果

14.降本增效的现实需求:小模型+好Skill能替代更贵的大模型,企业有强烈动机投入Skill开发

7.9 OpenClaw与Skill生态

【核心概念】

OpenClaw:一个开源的AI Agent桌面客户端,采用Skill-first架构——Agent的能力扩展主要靠加载Skill文件,而不是配置更多工具。

社区有 awesome-openclaw-skills 仓库,收集了44+可复用的Skill。

【安全警告】

Skill安全风险(Cisco/1Password 2026年报告): 恶意的SKILL.md可能嵌入恶意payload,指示Agent执行危险操作(”tool poisoning攻击”)。

OpenClaw给了Agent shell权限,意味着恶意Skill可以让Agent执行任意系统命令。

使用第三方Skill时务必审查内容,就像审查第三方npm包一样认真。

• Skill = Agent的操作手册,封装过程性知识(怎么做),不是陈述性知识(是什么)

• 三阶段加载(Discovery→Activation→Execution)是Context Engineering的典范应用

• SKILL.md由YAML Frontmatter(元数据)和Markdown正文(内容)两部分构成

• 三条设计原则:写过程不写答案 / 聚焦任务类 / 确定性逻辑下沉

• Skill vs MCP vs .cursorrules:过程知识 vs 工具协议 vs 项目规则——三者互补

• 使用第三方Skill需要像审查第三方代码一样谨慎,防止tool poisoning攻击

第四部分

AI+数据:专项深入

第8章:数据工程的AI化——从手动到自主

• Text-to-SQL的能力与局限

• Context Layer的概念及其与传统语义层的区别

• Data Agent成熟度分级(L0-L5)

• 各数据子领域当前的位置

• 为什么Context Layer是数据Agent跃迁的关键

8.1 数据工程师的现实痛点

在谈AI化之前,先看看数据工程师日常的痛苦:

l业务方问”今天GMV多少”,数据分析师要写SQL、跑查询、做表格,30分钟起步

l数据Pipeline挂了,花2小时定位是哪个节点出错,再花1小时修复

l数据质量告警一天几百条,大部分是噪音,但真正的问题不能漏

l新来的数据分析师要花3个月才能搞清楚哪张表是”真正对的”那张表

AI有没有可能改变这些?正在改变,但程度不一。

8.2 Text-to-SQL:AI数据分析的第一步

【核心概念】

Text-to-SQL:用自然语言查询数据库。

用户输入”今天各区域销售额是多少”,AI自动生成对应的SQL语句并执行,返回结果。

无需用户懂SQL,降低数据获取门槛。

听起来很美好,但实际落地发现一个根本问题:

【Text-to-SQL的致命局限】

AI只知道”数据库有什么表、表有什么字段”,但不知道”这个字段的业务含义”。

比如: → 数据库里有 revenue 字段,但这是ARR(年度经常性收入)还是run rate(流水)? → 数据库里有 user_id,但这是app用户ID还是CRM用户ID?不同系统的user_id是否一致? → 有 sales_amount,但2025年1月起美国区切换了CRM系统,之前的数据在旧表,之后的在新表 这些”部落知识”不在数据库Schema里,AI不知道,所以会给出技术正确但业务错误的SQL。

8.3 Context Layer:解决AI数据理解的”语境”问题

【核心概念】

Context Layer(上下文层):给数据系统加上”业务语境”的一层中间层。

包含:指标的业务定义、实体的身份关系、历史变更依赖、隐性的”部落知识”、数据治理规则。

它让AI不只知道”数据有什么”,还知道”数据代表什么意思”。

【类比】

没有Context Layer的数据系统,就像给一个刚来公司的实习生一本数据字典(字段名+数据类型)。

他知道有 revenue 这个字段,但不知道这是哪种口径的收入,不知道有没有什么特殊处理规则,不知道哪段历史数据有问题。

Context Layer就像一本完整的”数据文化手册”——数据是什么、怎么产生的、有什么坑、不同时期有什么特殊规则。

Context Layer vs 传统语义层:

维度

传统语义层(如LookML)

现代Context Layer

覆盖范围

仅指标定义(维度/指标/计算逻辑)

指标+实体+历史依赖+部落知识+治理规则

维护方式

数据团队手工写YAML/LookML

自动从查询历史构建+人工精修+AI辅助更新

连接方式

直连BI工具(Looker/Tableau)

API/MCP供AI Agent实时调用

形态

静态,定期人工更新

活的,持续演进,能从Agent反馈自更新

AI时代定位

不够用(缺少部落知识和历史依赖)

AI数据Agent的必需基础设施

8.4 Data Agent成熟度分级(L0-L5)

SIGMOD 2026 Tutorial(arXiv 2602.04261v1)提出了Data Agent的正式分级体系:

级别

名称

人类角色

Agent角色

典型例子

L0

无自主

完全手动

无参与

手写SQL,人工跑查询

L1

AI辅助

人执行+验证

建议者(无状态,一问一答)

Copilot补全SQL;ChatGPT帮写查询

L2

部分自主

设计pipeline,审批每步

执行者(感知环境+调工具+有记忆)

Agent自动执行查询,人看结果

L3

条件自主

监督者(审批关键步骤)

编排者(自主设计+执行pipeline)

Agent自主设计数据清洗pipeline,人审批方案

L4

高度自主

只处理异常

主动发现问题+自主治理

Agent主动发现数据质量问题并修复

L5

全自主

仅设目标

生成式数据科学家(发明新方法)

Agent自主研究新的分析方法

8.5 各子领域当前位置

子领域

当前L级

代表系统

主要瓶颈

数据库管理(DBA)

L1→L2

Rabbit/R-Bot/GaussMaster

调错参数影响全系统,需要可靠rollback机制

数据清洗/准备

L2

CleanAgent/MegaTran

跨源异构需要深度schema理解,Context   Layer缺失

数据分析

L2→Proto-L3

Data Interpreter/DeepAnalyze

分析意图的深层理解(业务问题≠技术查询)

数据Pipeline编排

L1→L2

dbt AI   Agent/Databricks Genie

自主设计pipeline需要完整的Context   Layer

【关键洞察】

Context Layer是数据Agent从L1→L2→L3跃迁的绝对瓶颈。

没有Context Layer,Agent只能”盲操作”(执行已知的SQL模板),不能”智编排”(自主设计完整的数据处理方案)。

这和代码工程的 .cursorrules / SKILL.md 是完全对齐的——都是”给Agent的结构化context”,都是跃迁的地基。

• Text-to-SQL局限:AI知道Schema,不知道”业务含义”——Context Layer解决这个问题

• Context Layer = 数据系统的业务语境层,包含指标定义/部落知识/历史依赖/治理规则

• Data Agent L0-L5:从”完全手动”到”全自主”——当前大多数团队在L1→L2之间

• Context Layer是所有数据Agent自主化跃迁的基础设施,必须先建好

第9章:研发自动化成熟度——你的团队在L几?

• 研发通用L0-L5自动化成熟度分级

• 各工种当前成熟度评估

• 为什么”最后一公里”最难

• 数据工程从L1到L3的演进路径

9.1 研发通用L0-L5分级

类比自动驾驶的成熟度分级(L1辅助→L2部分自动→L3条件自动→L4高度自动→L5全自动),研发的AI自动化程度也可以分级:

级别

名称

人类角色

AI角色

代表工具

L0

无AI辅助

完全手动写代码

传统IDE(无AI)

L1

AI辅助

人类主导一切决策和执行

给建议/补全代码

GitHub Copilot、代码补全

L2

AI执行+人审批

审批每一个步骤

执行但每步需确认

Cursor、Windsurf(Accept   per file)

L3

AI自主+人抽查

定期审查,关键节点干预

大部分自主执行

Claude Code、Codex   CLI

L4

AI高度自主

仅处理异常情况

完成整个任务,包括测试和部署

Devin(委派模式)

L5

全自主

只设定目标

完全自主端到端

愿景,尚未实现

9.2 各工种当前成熟度(2026年4月评估)

工种

当前L级

说明

卡点

前端开发

L2→L3

原型/UI组件可达L3,生产级仍L2

复杂状态管理、跨组件依赖

后端开发

L2

CRUD/API可达L2+,架构设计仍L1

分布式一致性、复杂事务

代码审查

L2→L3

AI审查质量被广泛认可

深层业务逻辑理解

测试

L2

单元测试生成较好,E2E仍L1

E2E场景覆盖需要深度业务理解

DevOps/部署

L1→L2

“最后一公里”仍严重依赖人工

环境差异、权限管理、回滚策略

数据分析

L1→L2

需要Context Layer才能从L1跳L2

业务语境理解(见第8章)

数据工程

L1→L2

Pipeline编排/调度仍高度手动

Context Layer缺失+影响范围大

9.3 为什么”最后一公里”最难?

“最后一公里”指的是从MVP(最小可行产品)到真正生产部署之间的那段距离。它包括:

l认证系统:OAuth 2.0/SSO/MFA/Session管理——每个业务需求都不一样,安全边界复杂

l支付集成:对接各种支付平台、对账、退款、异常处理——测试环境和生产环境差异巨大

l生产部署:Kubernetes配置、CI/CD流水线、监控告警、灰度发布——基础设施复杂度高

l跨系统数据一致性:多个系统之间的数据同步、分布式事务——没有银弹

【关键洞察】

AI在”核心业务逻辑”上速度最快——因为这部分有大量训练数据,问题有清晰边界。

但”最后一公里”往往是每个公司特有的、环境特定的、历史积累的——AI没有足够的相关训练数据,无法泛化。

这就是为什么”AI写代码”的效率提升在MVP阶段最明显,但不能简单外推到完整产品交付。

9.4 数据工程从L1到L3的演进路径

阶段

目标

需要的基础设施

业界代表实践

Phase 1建地基

L0→L1的基础

数据可观测性(Observability)+   结构化Metadata

Monte Carlo/Acceldata:数据质量监控;dbt:结构化metadata和lineage

Phase 2接工具

L1→L2的跃迁

Agent工具接入 + 执行反馈闭环

Databricks   Genie/Snowflake Cortex:Agent可自主执行SQL并反馈结果

Phase 3建Context

L2→Proto-L3

Context Layer +   Human-in-the-Loop

dbt AI   Agent/Acceldata Agentic:结构化context + 关键步骤审批

Phase 4自主编排

Proto-L3→L3

因果推理 +   Meta-reasoning

学术突破仍在路上,当前最弱领域

Phase 5愿景

L3→L4

内在动机 + 自主治理

3-5年目标,当前未实现

• 研发L0-L5:从完全手动到完全自主,当前大多数团队在L1→L2之间

• 前端/代码审查进度最快(L2→L3),DevOps/数据工程最慢(L1→L2)

• “最后一公里”难因为它是公司特有、环境特定的,AI缺少足够训练数据

• 数据工程演进的五阶段:建观测→接工具→建Context→自主编排→L4愿景

• Context Layer(第8章)是数据工程从L1到L2的关键跃迁点

第五部分

前沿进阶:加深认知

第10章:蒸馏——AI知识的压缩与传递

• 为什么大模型”犯的错”有价值(暗知识)

• 模型蒸馏的Teacher-Student框架

• DeepSeek-R1案例:1.5B模型做数学题

• Skill蒸馏:给Skill文件”瘦身”

• 蒸馏的灰色地带

10.1 从一个反直觉问题出发

我问你一道数学题,你答对了,给我说”答案是42″。

旁边的大模型也回答了,它输出的概率分布是:42(92%)、43(4%)、41(2%)、100(0.5%)……

问题:哪个信息量更大?

直觉上是”答对了”更有用。但Geoffrey Hinton在2015年说:概率分布更有价值——因为里面藏着”类别相似性关系”。43比100更接近42,这个信息在硬标签(对/错)里完全看不到,但在概率分布里清清楚楚。

【核心概念】

暗知识(Dark Knowledge):Hinton 2015年提出的概念。

大模型输出的概率分布中,”错误答案的概率”包含了大量隐含信息——类别间的相似性、概念的模糊边界、特殊情况的判断。

这些信息被称为”暗知识”,因为它隐藏在概率里,肉眼看不到。

10.2 模型蒸馏:让小模型学大模型的”智慧”

【核心概念】

模型蒸馏(Knowledge Distillation):用大模型(Teacher)的输出来训练小模型(Student)。

Student学的不是”对/错”的硬标签,而是Teacher输出的完整概率分布(软标签/soft targets)。

结果:小模型能超越”只看硬标签训练”的能力上限,接近Teacher的能力。

【类比】

徒弟学厨——方式A:师傅只说”这道菜你做的对/错”;

方式B:师傅说”这道菜80%像粤菜,15%有川味,5%有点像闽菜,整体偏向清淡……”。

方式B传递的信息量远大于方式A。

这就是蒸馏的核心:学”老师对世界的理解方式”,而不只是学”正确答案”。

三种蒸馏路径:

路径

学什么

特点

响应蒸馏

Teacher的输出概率分布(最后一层)

最简单,只需要Teacher的最终输出

特征蒸馏

Teacher中间层的特征表示

传递更深层的理解,效果更好

注意力蒸馏

Teacher的注意力模式(关注哪些词)

传递”关注什么”的能力

10.3 DeepSeek-R1:蒸馏的教科书级案例

DeepSeek-R1是671B参数的大模型(671亿参数),训练成本极高,部署需要专用服务器。但通过蒸馏,它的”推理能力”被压缩进了更小的模型:

蒸馏后的模型

参数量

MATH-500分数

对比

R1-Distill-Qwen-1.5B

15亿

83.9分

手机都能跑!

R1-Distill-Qwen-7B

70亿

92.8分

超越很多更大模型

R1-Distill-Qwen-32B

320亿

94.3分

打平OpenAI o1-mini

一个1.5B的模型,在数学推理基准上拿了83.9分。这不是因为1.5B的模型天然有这个能力,而是671B Teacher的推理模式被”蒸”进去了。

10.4 蒸馏为什么重要?

l降本:1.5B模型的推理成本是671B的1/100以下

l边缘部署:小模型可以在手机/边缘设备上运行,不依赖云端

l推理提速:小模型响应更快,适合实时场景

l私有化部署:不需要把敏感数据发给大模型API

10.5 Skill蒸馏:给Skill文件”瘦身”

Skill蒸馏和模型蒸馏完全不同,不要混淆:

维度

模型蒸馏

Skill蒸馏

操作对象

神经网络模型(数十亿参数)

Skill文档(几百到几千字)

解决问题

大模型推理成本太高

Skill文件太长,占用太多context

方法

用大模型输出训练小模型

用LLM压缩文档,保留语义

目标

小而能干的模型

短而精准的Skill文件

【类比】

Skill蒸馏不是”重新练功”,而是”把口诀从一本厚书压成一张小抄”。

功夫还是那套功夫,只是更轻量、更容易装进口袋(context window)。

Skill蒸馏的三关验证:压缩后的Skill必须通过三个检验:

15.任务不变:原Skill能完成的任务,压缩版还能完成(不能因为压缩丢失能力)

16.顺序不乱:关键步骤的执行顺序不能颠倒

17.硬约束不丢:”绝不能泄露API密钥”这类硬约束,必须原封不动保留

【走火入魔的Skill蒸馏】

把一个500字的Skill蒸馏成”Review code for bugs. Be concise.”——表面上极度精简,实际上信息丢失殆尽。

Agent不知道先看什么、怎么分级、输出什么格式。

蒸馏的目标是”短而精准”,不是”短而空洞”。

10.6 蒸馏的灰色地带

2026年2月,Anthropic披露:三家中国AI实验室对Claude发起了”工业级蒸馏攻击”——用24000个假账号,生成1600万条对话数据,用这些数据训练自家模型,试图把Claude的能力蒸馏过去。

【法律与伦理警告】

蒸馏自己的大模型叫降本增效;

蒸馏别人的大模型叫侵权。

技术层面:完全相同的操作。

法律层面:天壤之别。

大多数商业模型(OpenAI/Anthropic/Google)的服务条款明确禁止”用API输出训练竞品模型”。

在选型和使用开源模型/商业模型时,必须仔细阅读许可证和使用条款。

10.7 蒸馏的本质:知识的压缩传递

跳出技术细节,蒸馏的本质是:知识从”大/复杂”向”小/简洁”的压缩传递,同时保留关键信息。

l师傅带徒弟 = 人类版蒸馏(多年经验→短期教学)

l写教材 = 蒸馏(领域知识→结构化课本)

l写SOP/Checklist = 蒸馏(操作流程→精简步骤表)

l写Skill = 蒸馏(隐性的专家经验→显性的结构化文档)

lCode Review的评论 = 蒸馏(代码判断→精简反馈)

AI把这个过程加速了几个数量级:用几天GPU时间,把671B参数模型的推理能力”蒸”进1.5B的小模型。

• 暗知识(Dark Knowledge):大模型的概率分布里藏着类别相似性关系,比硬标签信息量更大

• 模型蒸馏:Student学Teacher的软概率分布,获得超出自身规模的能力

• DeepSeek-R1案例:1.5B模型MATH-500拿83.9分,蒸馏让小模型做到大事

• Skill蒸馏:文档压缩,不是模型训练——目标是”短而精准,不丢约束”

• 蒸馏别人的模型在法律上是侵权——使用前仔细阅读许可证

第11章:统一视角与团队落地建议

• 所有概念的统一框架:知识的结构化/压缩/传递/供给

• 框架与工具生态全景

• 数据工程团队三步走

• 代码工程团队三步走

• 场景速查表

• 7条核心建议

11.1 回头看:所有概念的统一本质

走完11章,我们看了很多概念:LLM、Agent、ReAct、MCP、A2A、Context Engineering、Vibe Coding、SDD、TDD、Skill、Context Layer、Data Agent、蒸馏……

这些概念表面上分散,但有一个共同本质:知识的结构化、压缩、传递、供给。

概念

本质作用

类比

Prompt

给LLM的知识输入

工单

RAG

从外部检索相关知识

查参考书

Context   Engineering

精心设计知识的供给方式

图书馆管理员

SDD Spec

宏观级的过程性知识

项目章程

.cursorrules

项目级的约束知识

项目规范手册

SKILL.md

任务级的过程性知识

操作手册

Memory(三层)

存储不同类型的知识

图书馆分区

Context Layer

数据领域的业务语境知识

数据文化手册

蒸馏

知识的压缩传递

教学/写教材

MCP

标准化知识/能力的获取通道

USB-C接口

【最终洞察】

AI工程的本质是:给AI提供恰好足够、高质量的知识。

不是比谁用的模型更大(虽然模型很重要),而是比谁能更好地: ① 结构化自己团队的过程性知识(Skill/Spec) ② 把业务语境清晰地传递给AI(Context Layer / .cursorrules) ③ 在合适的时候给AI合适的信息(Context Engineering) ④ 用合适的协议连接合适的工具(MCP/A2A) 做好这四件事,比换更贵的模型更有效。

11.2 框架与工具生态全景(2026年)

框架

定位

适合场景

LangGraph

生产级Stateful   Agent首选

复杂、有状态的Agent系统

AutoGen

多Agent对话协调

Debate/Review/讨论型多Agent

CrewAI

角色团队分工

有明确角色分工的Agent团队

smolagents (HF)

代码优先Agent

让Agent生成并执行Python代码

Claude Agent SDK

“给Claude一台电脑”

终端原生、深度推理任务

OpenAI Agents   SDK

极简多Agent编排

快速上手、Handoff优先场景

11.3 代码工程团队三步走

阶段

目标

具体行动

Step 1(现在)建强项目Context

让AI Agent真正理解你的项目

① 写好   .cursorrules(编码规范/架构约定)② 建立项目级 SKILL.md(常见任务的操作手册)③ 维护 llm.txt(给AI的项目说明文档)

Step 2(接下来)从Vibe过渡到SDD

给AI编程加上纪律

① 简单任务:继续Vibe   Coding② 生产级功能:Spec-First SDD③ 长期维护系统:Spec-Anchored SDD + BDD场景自动化

Step 3(中期)Skill资产化

把经验知识沉淀为可复用资产

① 把反复使用的工作流写成SKILL.md②   语义化版本管理 + 回归样例集③ 定期蒸馏优化(压缩+验证)

11.4 数据工程团队三步走

阶段

目标

具体行动

Step 1(现在)建Context   Layer地基

让数据Agent真正理解你的数据

① 建数据Catalog(表/字段的业务含义)②   建lineage(数据血缘关系)③ 记录”部落知识”(历史特殊规则)④ 统一暴露为API/MCP

Step 2(接下来)从L1逐步给Agent松绑

安全地提升自主程度

① 先:Agent写SQL,人审核再执行②   再:Agent执行SQL,人看结果③ 再:Agent自主调参,人看报告④ 关键步骤始终保留HITL

Step 3(中期)为Agent建”刹车和方向盘”

让自主化安全可控

① Spec-Anchored:数据pipeline有Spec②   BDD场景从Spec推导,CI自动验证③ 异常处理升级HITL机制

11.5 场景速查表

场景

编程模式

数据Agent模式

Skill策略

快速原型/探索

Vibe Coding

L1:Copilot辅助

不需要Skill,直接给描述

标准Feature开发

Spec-First SDD

L2:执行+人审批

轻量SKILL.md,聚焦该任务类

生产级长期系统

Spec-Anchored +   BDD

L2→Proto-L3

聚焦Skill + 回归样例集

API/微服务

Spec-as-Source   (OpenAPI)

L3:编排+审批

Contract Skill +   MCP

数据分析任务

Context   Engineering

L2:Agent执行+人验证

Context Layer + 分析Skill

安全关键/合规场景

Spec-as-Source +   Formal verification

强制HITL

安全约束Skill + 审计日志

11.6 7条核心建议

18.不要被Demo迷惑 Karpathy说过”这是Agent之十年的开端,不是Agent之年”。完美的Demo ≠ 生产部署。评估AI工具时,不只看Demo效果,要问:这能真正集成到我的生产系统吗?

19.先建Context,再给自主权 Context Layer / .cursorrules / SKILL.md 是所有自主化跃迁的地基。跳过这一步,直接让Agent”自由发挥”,结果通常是灾难性的。先把AI能理解的”语境”建好,再逐步提升自主程度。

20.Human-in-the-Loop是L3的核心安全机制 从L2到L3,关键不是”去掉人”,而是”把人放到更重要的位置”——从”每步都看”变成”关键决策才审批”。EU AI Act也在要求这一点。

21.Skill是资产,不是一次性Prompt 好的Skill需要像代码一样:版本管理、回归测试、持续维护。把团队的过程性知识写成Skill,是长期竞争力的来源,而不是一次性的”AI提示词技巧”。

22.Context Engineering是最重要的新技能 给AI好的信息,比换更贵的模型更有效。培养团队的Context Engineering能力:怎么写.cursorrules / SKILL.md / Spec,怎么设计RAG的检索逻辑。这是2025-2026年最值得投入的工程技能。

23.小模型+好Skill可以逼近大模型裸跑 SkillsBench论文证明了这一点。在选型时,不要只看模型大小,要考虑Skill/Context Engineering的成本。有时候用小模型+精心设计的Skill,效果等于甚至超过大模型,成本却低很多。

24.三件事要同步:自主化、Spec、安全 不要”先自动化,再想安全”。数据Agent/代码Agent的自主程度提升,必须同步:Spec(知道做对了没有)、HITL(关键步骤有人把关)、审计日志(出了问题能追溯)。三者缺一不可。

• 所有AI概念的本质:给AI提供恰好足够、高质量的知识——这是AI工程的核心

• Spec/Skill/.cursorrules/Context Layer是不同粒度的”过程性知识包”,本质相同

• 代码团队三步走:建Context → 从Vibe到SDD → Skill资产化

• 数据团队三步走:建Context Layer → 从L1逐步松绑 → 建刹车(HITL+Spec)

• 核心原则:先建语境,再给自主;自主化和安全机制必须同步

• arXiv 2602.04261v1:《Data Agents: Levels, State of the Art, and Open Problems》(SIGMOD 2026 Tutorial) — Data Agent L0-L5正式分级体系来源

• Hinton et al.《Distilling the Knowledge in a Neural Network》(2015) — 模型蒸馏与暗知识的奠基论文

• ReAct: Synergizing Reasoning and Acting in Language Models(Yao et al. 2022) — ReAct循环的原始论文

• SkillsBench(2026):《Benchmarking How Well Agent Skills Work Across Diverse Tasks》— Skill是可测量工程变量的实证

• arXiv 2602.00180:《Spec-Driven Development: From Code to Contract》(2026) — SDD三层分级与决策框架

• Andrej Karpathy at YC 2025:《Software is Changing Again》 — Software 1.0/2.0/3.0、Vibe Coding、LLM=新OS

• Anthropic: Introduction to Claude’s Agent SDK — Deep Agent四大支柱,Sub-Agent机制

• Martin Fowler:《Exploring Gen AI: SDD Tools》(2025) — SDD工具对比

• dbt Labs:《How AI is changing the analytics stack》(2025) — Context Layer的结构化观点

• Manik Hossain:《The Future of Autonomous Data Pipelines》(2026)

• Walter Fan:《蒸馏:AI世界里的”吸星大法”》(2026) — 模型蒸馏与Skill蒸馏全景

• Acceldata:《Autonomous Data Management》(2025)

• Cisco Blog:《Personal AI Agents like OpenClaw Are a Security Nightmare》(2026) — Skill的tool poisoning攻击

• 1Password Blog:《From Magic to Malware: How OpenClaw’s Agent Skills Become an Attack Surface》(2026) — 已确认的恶意Skill案例

• Anthropic Security Report(2026.2):《Detecting and preventing distillation attacks》— 工业级蒸馏攻击披露

• awesome-openclaw-skills (GitHub) — OpenClaw社区Skill集合(44+可复用Skill)

• titanwings/colleague-skill (GitHub) — 自动化Skill生成(”把同事蒸馏成AI”)

• skills-optimizer (GitHub) — Skill蒸馏/压缩工具(号称6:1压缩率)

• GitBook:《智能体AI权威指南》 — Skill规范、三阶段加载机制

• DeepSeek-R1蒸馏模型系列 (HuggingFace) — 1.5B/7B/32B蒸馏模型

• OpenAI:《Model Distillation in the API》 — store=True→Stored Completions→fine-tuning一条龙

• MCP官方文档:Model Context Protocol Introduction — MCP规范、Server/Client架构

• A2A Protocol (GitHub) — Agent-to-Agent协议规范

• Linux基金会AAIF — MCP治理组织

• AI项目Leader知识地图-2025-2026.md(基础版)

• AI项目Leader知识地图-2025-2026-深度版.md(深度版,含L0-L5分级)

• Vibe-Coding-vs-SDD-vs-TDD.md(第6章参考)

• 研发自动化×数据工程演进分析.md(第8-9章参考)

• Skill-vs-MCP-vs-OpenClaw-蒸馏与编写指南.md(第7、10章参考)