你会得到什么
一张分层概念地图,知道每个词解决什么问题,不再“术语堆砌”。
核心思维
从“写 prompt”升级到“定义规范、构建闭环、评估结果”。
工程目标
把 AI 从一次性回答器,变成能持续完成任务的系统。
适配对象
面向 iOS/Apple 开发者,覆盖课堂项目与团队协作场景。
目录
- 这节课想解决什么问题
- 整体路线图:五个台阶
- 第一阶:LLM
- 第二阶:Tool Calling
- 第三阶:RAG
- 第四阶:Agent
- 第五阶(上):Skills
- 第五阶(下):MCP
- vibe coding:一种工作方式
- vibe coding 实战:六条对抗熵增的机制
- 现代编程范式的四个转变
- 面向 iOS/Apple 的成长路径
- 总结:完整概念地图
1) 这节课想解决什么问题
把“会用 AI”升级为“会设计 AI 工作流”
很多同学已经会用 ChatGPT / Claude / Cursor 写代码,但在工程层面还会卡在三个关键问题:能不能验证、能不能复用、能不能团队协作。
- 为什么有时编译通过,有时出现不存在的 API?
- Agent 和普通对话到底差在哪?
- RAG / Tool Calling / MCP 是并列概念还是上下层关系?
本讲义目标就是把这些问题压缩成一套可执行框架。
2) 整体路线图:五个台阶
五层不是替代关系,而是叠加关系
3) 第一阶:LLM
LLM 是聪明的大脑,但天生“孤立”
- 断网:知识冻结在训练截止日。
- 没手:不能直接运行 `xcodebuild` 或改你项目文件。
- 没记忆:超出上下文窗口后不会自动保留长期经验。
“幻觉”不是偶然 bug,而是概率生成机制导致的结构性风险:它会优先生成“像答案”的文本,而不是“被验证的事实”。
4) 第二阶:Tool Calling
给模型一双手:从“能写”到“能验证”
Tool Calling 的核心是:模型声明要调用什么工具,外部程序实际执行,再把结果回传给模型继续推理。
常见工具类型
终端编译、测试执行、文件系统、数据库查询、HTTP 请求、搜索引擎。
带来的质变
把“文本建议”升级为“工程闭环”:写完即跑、失败即修、可追踪可复现。
5) 第三阶:RAG
给模型一双眼:先查证再回答
RAG(检索增强生成)解决的是“知识来源不可信”的问题。模型先检索你的知识库,再基于检索片段生成回答。
- 可放入 README、架构约定、API 文档、历史踩坑记录。
- 可显著减少“风格漂移”和“项目内 API 幻觉”。
Tool Calling 关注什么
执行动作与实时结果,例如编译、测试、调用 API。
RAG 关注什么
回答依据与知识正确性,例如规范、设计决策、接口约束。
6) 第四阶:Agent
从“一问一答”到“持续做事”
Agent 的关键不是“会说话”,而是能在多步任务里持续循环:观察、思考、行动、再观察。
四大组件
- Planning & Reasoning:任务拆解和动态调整
- Memory:情节/语义/程序记忆
- Tools:能操作真实环境
- Environment:文件、Git、CI、外部服务
真实局限
- 长链路任务易跑偏
- 早期误判会在后续放大
- 幻觉触发错误行动链
- 需要人工设置关键检查点
7) 第五阶(上):Skills
把“会做”变成“稳定可复现地做”
Skills 的价值是把团队隐性经验固化为可执行规则,避免同类任务每次都凭个人习惯随机发挥。
my-skill/
SKILL.md
scripts/
templates/
assets/模块创建 Skill
自动生成 Model / ViewModel / View / Tests,强制 MVVM 约束。
质量检查 Skill
统一跑 SwiftLint、格式化、测试,并输出质量摘要。
PR 生成 Skill
自动产出改动说明、风险点、review 重点和变更记录。
团队收益
新成员直接复用流程,减少“靠口传”的培训成本。
8) 第五阶(下):MCP
工具接入标准化:统一插头,而非重复造轮子
MCP(Model Context Protocol)解决的是“工具集成碎片化”:同一工具接入一次,多个 AI 应用可复用。
MCP Server
工具提供方,封装认证、权限和数据转换,并暴露标准能力。
MCP Client
AI 应用侧,发现并连接 Server,给模型暴露可用能力并回传结果。
- `Tool Calling` 是“模型如何调用工具”的机制层。
- `MCP` 是“工具如何标准化接入与复用”的协议层。
- `RAG` 主要负责“读取可靠知识”,MCP 还能执行写操作。
9) vibe coding:一种工作方式
它是交互范式,不是单一技术
vibe coding 的本质是“意图驱动 + 快速迭代”,你描述目标感觉,AI 产出代码,然后根据运行结果继续对话修正。
适合场景
Demo、PoC、学习探索、hackathon、小工具。
高风险场景
长期维护核心模块、性能敏感路径、安全敏感逻辑、多人共享代码。
10) vibe coding 实战:六条对抗熵增的机制
以下六条机制,说来说去对抗的都是同一个东西——上下文的熵增。你不治这个,迭代越快,崩得越快。每一条都是可以立即落地的工程手段,而不是"写在 prompt 里祈祷 AI 听话"。
多模型对审:Plan 阶段就把坑填完
用 Opencode 的 plan mode 生成方案文档,再把文档交给另一个高能力模型做评审。每一个需求点都要经过五六个来回的质疑和补全,这样打磨出来的 plan 交给执行模型,几乎一次性通过,不用返工。
核心逻辑:写代码的成本远高于审方案的成本,把反复修改的循环前移到纯文本阶段,是最划算的投资。讨论一个普通的需求,都可以把上下文几乎吃光——把这些消耗花在 plan 阶段而不是代码阶段,性价比最高。
分形文档 + 强制同构
根目录放一份全局地图,每个模块放一份成员清单和接口说明,每个文件头部声明依赖和职责。三层是折叠关系,AI 从任意文件进入,三次 Read 就能拿到完整上下文。
这个思路的本质是利用 Opencode 的 instructions 文件强制加载机制,播种一套文档。但光有文档不够——每次代码变更后必须强制回环检查:文件头的依赖声明还对不对,模块文档的成员清单要不要更新。文档和代码是同一事物的两个相,任何一相变了另一相没跟上,三轮会话后 AI 就在错误上下文上越写越离谱。
Hook 自动拦截,别靠 prompt 约束
把项目规范写成自动检查脚本挂在 hook 里,AI 写出违规代码时写入瞬间被拦截打回。你在 system prompt 里写一百遍"不要这样做",不如工程化拦它一次。AI 没有记忆力,但 hook 有。
举个例子,利用 Hook 机制强制规范了需要使用特定 UI 组件库,结果整个项目生成的任何页面,完全没有逃逸。Opencode 支持自定义 hooks,在 .opencode 配置中设置 pre-commit、post-edit 等钩子脚本,实现同样的拦截效果。
Plan 文件持久化,别信对话记忆
Opencode 的 plan mode 生成的 plan 文档,默认可能散落在系统文件夹下。通过配置 plan 的存储路径,就能让每个项目的 plan 落在每个项目的文件夹内。
另外 plan 文档默认是不带 checklist 的,在默认的 plan 中加入 checklist 跟踪进度,完成一项就回写文件。会话中断后,新会话读文件从断点恢复。文件系统才是唯一可靠的状态源。这点非常重要。
质量红线必须量化
单文件 ≤ 800 行,单函数 ≤ 30 行,嵌套 ≤ 3 层,分支 ≤ 3 个。不是建议,是硬阈值。AI 对"函数要短"的理解飘忽不定,但对"不超过 30 行"执行得非常稳定。
所有审美判断都要降维成可判定谓词,这是跟 AI 协作的基本功。要有架构洁癖、代码洁癖——让 AI 有洁癖是一件几乎没有成本的事情。
渐进式上下文加载
别每次把所有文档一股脑灌进去。改 bug 只加载目标模块文档,做架构决策才加载全局地图。上下文窗口是稀缺资源,信息过载和信息不足一样有害。
像设计数据库索引一样设计 AI 的信息检索路径——命中率比覆盖率重要。就算有了大上下文窗口,熵增问题可以缓解,但仍然不能根除,所以还是需要掌握渐进式加载的技巧。
11) 现代编程范式的四个转变
1. Code-first → Spec-first
先定义验收标准与边界,再让 AI 实现,不要让 AI 猜需求。
2. 文件生成 → 系统编排
关注完整交付链:检索、生成、验证、修复、文档、PR。
3. 一次性 Prompt → 可复用资产
把高频流程沉淀成 Skills,把工具接入标准化为 MCP。
4. 能跑就行 → 持续评估
持续检查覆盖率、性能、可维护性与边界行为,不只看“当前通过”。
12) 面向 iOS/Apple 的成长路径
把 LLM 用好(基础)
你要能清晰描述输入/输出/边界,并能审查和手改 AI 代码。
接入 Tool Calling(验证闭环)
每次生成后都跑编译与测试,养成“先验证再接受”的习惯。
建设 RAG(项目知识)
把架构约定、API 说明、命名规范和历史坑文档化并可检索。
升级 Agent(多步任务)
给出完整目标,设置关键检查点,让 Agent 做执行与反馈闭环。
沉淀 Skills(团队规范)
把高频流程和质量要求固化为技能包,降低团队协作波动。
标准化 MCP(统一工具接入)
把个人“本机可用”升级为团队“可复用、可维护、可扩展”。
13) 总结:完整概念地图
一句话总览: 现代 AI 编程不是“让 AI 帮你写几段代码”,而是构建一个可计划、可执行、可验证、可复用的工程系统。
- LLM 决定“生成能力”。
- Tool Calling 决定“执行与验证能力”。
- RAG 决定“知识可靠性”。
- Agent 决定“多步任务完成能力”。
- Skills + MCP 决定“团队级复用与治理能力”。
