qinghuan

AI IN PRACTICE / FROM ZERO TO AGENT

Agent 应用工程:从入门到交付。

使用现有模型,逐步构建检索、工具、状态、评测与可部署的应用。

36篇笔记 · 25 篇必会主线
零基础起点 / 单元 01

先分清 AI、机器学习、语言模型与 Agent

用分类问题分清 AI、机器学习、语言模型和 Agent,再判断自己的任务是否需要模型。

从零开始学习

贯穿学习的项目

自己的 Java 学习助手

把笔记变成可检索的知识,为回答附上证据,用一组真实问题验证效果。

查看项目验收要求 ↗

按目标选择路线,共同基础只学一次

Agent 应用工程

用现有模型做应用:让它查资料、调用工具,并处理出错、权限和部署。最后做一个能实际使用、能检查结果的 Java 学习助手。

模型训练与 Agent 算法研究

从数学和小模型实验开始,理解模型怎样学习、怎样改进。最后写一份别人能重做、能看懂比较结果的实验报告。

两条路线按各自前置知识起步,无需先读完另一条路线。只做应用可沿工程主线推进;以研究为目标可直接从数学开始。

已掌握基础时,按文章开头的“本篇重点”阅读;重复的余弦推导与注意力 Java 演示默认折叠,完整代码仍可展开。

查看 12 组交叉主题:已学什么,这次补什么
主题与共同基础应用工程侧重训练研究侧重
向量与相似度

点积、范数、余弦与稳定计算统一以数学篇为主读;掌握后不重复做同类数值练习。

先核对查询和文档的编码模型版本、归一化方式与索引是否兼容;换模型或迁移索引后检查检索结果,再用标注样例确定并检验相似度阈值。阅读应用篇 ↗推导并计算 L1 / L2 / L∞ 范数、点积和余弦,再用相近数相减的例子检查浮点抵消误差,学习稳定计算。阅读研究篇 ↗
注意力

Q / K / V、缩放、掩码与 softmax 的基础直觉以 Agent 入门篇为主读,属于应用路线的选修模型背景。

画出 Token 怎样变成注意力输出,说明每个位置能看到哪些上下文、为什么不能提前看到未来内容;按需选学,不要求训练模型。阅读应用篇 ↗先核对矩阵各维的大小,再检查不同框架 API 如何解释掩码、整行屏蔽时怎样处理以及 dropout 的行为;用梯度实验检查被屏蔽信息是否仍影响计算。阅读研究篇 ↗
Token 与 Embedding

Token、上下文窗口、词表与向量表示的术语可复用。

记录请求用了多少 Token、输出是否被截断以及为什么结束,检查调用是否超出预算。阅读应用篇 ↗用 BPE 观察词表怎样建立,再把 Token ID 转成可训练的 Embedding,弄清训练实际接收的输入。阅读研究篇 ↗
概率与 softmax

概率归一化与数值稳定性是共同基础;采样和求梯度是不同任务。

先累计每项概率,再用二分查找选中一次采样结果;检查边界输入和调用预算,观察生成结果的随机性。阅读应用篇 ↗先推导交叉熵与 p − one-hot 梯度,再比较把多条损失求和或取平均(loss reduction)会怎样改变训练。阅读研究篇 ↗
工具调用与轨迹

模型、工具、观察与行动的交互结构相通。

先规定允许调用哪些工具(白名单),再记录调用 ID,处理重复与冲突,并设置执行预算和停止条件。阅读应用篇 ↗按步骤记录观察、动作、奖励和结束原因,区分任务真正结束与预算用尽的截断,再决定哪些内容作为监督训练标签。阅读研究篇 ↗
工作流与决策搜索

任务、状态、依赖与预算是共同语言,固定调度与搜索未知动作分别学习。

画出没有循环依赖的任务图(DAG),找出耗时最长的依赖路径(关键路径),再规定角色、预算和失败后受影响的任务。阅读应用篇 ↗比较 Beam Search 与 MCTS / UCT 怎样选择候选,推演尝试新选择(探索)、利用已有好选择与搜索预算之间的关系。阅读研究篇 ↗
多 Agent 协作

角色之间会交换信息并共享结果;工程编排不等于联合策略训练。

安排固定角色的权限、依赖、通信与结果合并,判断是否需要多个 Agent。阅读应用篇 ↗先观察队友改变策略后,旧经验为什么可能失效;再学集中训练、分散执行(CTDE)和 COMA,检查各成员的动作对策略更新与合作收益分别有什么影响。阅读研究篇 ↗
检索与记忆

检索、证据和上下文选择相通;使用检索器与训练检索器有不同验收目标。

把记忆和有出处的资料交给模型,检查读取权限和上下文长度,再用 Recall / MRR / NDCG 检查资料是否找全、排得是否合适。阅读应用篇 ↗分别为查询和文档生成向量(双编码器),用负样本和对比损失学习区分相关资料,再检查内容选择策略及对新数据的效果。阅读研究篇 ↗
数据划分与评测集

这组原则只学一次:先确定以后要处理哪些新数据,再据此给相关样本分组;同组不跨数据集,测试集不用来调参,并划清时间先后,避免测试内容的相同或近似版本提前进入训练。

写清系统允许和禁止做什么,把同一原始案例的变体归为一组,记录失败类型,并固定回归测试的版本与通过条件。阅读应用篇 ↗只用训练部分学习预处理参数,再复用参数处理其他数据(fit / transform);交叉验证时每折都在训练部分重新拟合。检查新实体上的效果,保存数据及处理结果的版本,并说明评测时哪些任务计入总数。阅读研究篇 ↗
回归与统计评估

先约定实验方法,再用独立样本得到可以比较的结果。

先列出发布必须通过的检查,校准评分器,再比较新旧版本有没有退步,决定能否发布。阅读应用篇 ↗用重复抽样观察分数如何波动,学习 bootstrap、置信区间和 pass@k 各自适用的条件,再说明结论有多大不确定性。阅读研究篇 ↗
失败定位与归因

保留完整的输入、执行步骤和结果;同时发生的变化,不一定就是导致失败的原因。

沿一次请求的完整记录(trace)和各步骤记录(span)查找失败位置与耗时,再结合指标排查线上问题。阅读应用篇 ↗逐步删减仍能触发同一失败的输入,固定其他条件后替换一个环节(反事实实验),检查结果是否变化,以及是否还有其他因素同时影响结果。阅读研究篇 ↗
成本与推理性能

先说清统计哪些调用、哪些阶段,再比较费用、耗时和单位时间处理量(吞吐)。

逐次记录调用费用,缺少用量时标为未知;拆开从请求开始到结束各阶段的耗时,再设置应用预算。阅读应用篇 ↗对比使用与不使用 KV Cache 的结果,分清先处理提示内容(prefill)和逐步生成(decode),再检查查询与键数量不同时的掩码、分页共享及写时复制。阅读研究篇 ↗
配套专题实验:工具版本兼容、证据时效与 MCP 上下文。带完整示例、实际观察记录和独立练习。
10 月 30 日资料补充:缓存、Java 执行、JDBC 与训练验收的 23 篇讲义。按问题选读,附官方来源、示例与待完成的验收练习。

先知道,哪些值得先学

重要程度与难度,分开看。

先沿 P0 主线学习,遇到前置知识先补齐;再按目标扩展 P1、P2。编号是建议顺序,不限制每天的篇数。筛选后的编号会保留,方便回到完整路线。

P0 · 必会主线
后续学习和独立开发反复依赖
P1 · 重点提升
提升工程能力与问题定位能力
P2 · 按需深入
在特定场景下进一步研究

显示 36 / 36 篇

L0 · 零基础

从环境、术语和第一个可运行的例子开始,不预设相关知识。

4 篇
单元01
P0 · 必会主线L0 · 零基础

先分清 AI、机器学习、语言模型与 Agent

用分类问题分清 AI、机器学习、语言模型和 Agent,再判断自己的任务是否需要模型。

AI、机器学习与深度学习的关系 · 训练与推理的区别 · 分类任务与生成任务

单元02
P0 · 必会主线L0 · 零基础

建立能重复运行的 Python 练习环境

跑通第一个 Python 脚本,分清终端、解释器和项目环境,并记录别人怎样重建它。

终端、解释器与源文件 · Python 版本检查 · Windows py 启动器

单元03
P0 · 必会主线L0 · 零基础

用列表、字典和函数处理第一份学习数据

用清洗标题的小任务学习列表、字典、函数和测试,掌握 AI 应用马上会用到的 Python。

字符串与空白清理 · 列表索引与遍历 · 字典取值及缺字段

单元04
P0 · 必会主线L0 · 零基础

看懂 HTTP 请求、JSON 与 API 错误

接模型前先看清请求地址、身份、正文和响应,再处理超时、错误与格式不合格的情况。

API 契约 · HTTP 方法与地址 · 请求头与请求体

L1 · 基础

掌握日常开发的基本方法,能独立完成小功能并解释结果。

9 篇
单元05
P0 · 必会主线L1 · 基础

用向量和相似度建立 Embedding 直觉

先用一组数字亲手算相似度,再理解文本向量如何用于查找相关资料。

标量、向量与矩阵 · 维度与对应位置 · 点积

本篇重点:先核对查询和文档的编码模型版本、归一化方式与索引是否兼容;换模型或迁移索引后检查检索结果,再用标注样例确定并检验相似度阈值。

单元06
P2 · 按需深入L1 · 基础

理解 Transformer 如何利用上下文

从一句话怎样逐步生成出发,理解分词、注意力和上下文,不必先实现整套训练。

文本到 Token 标识 · Token 到向量表示 · 位置与顺序信息

本篇重点:画出 Token 怎样变成注意力输出,说明每个位置能看到哪些上下文、为什么不能提前看到未来内容;按需选学,不要求训练模型。

单元07
P0 · 必会主线L1 · 基础

从一次 LLM 请求理解 Token 与上下文

从一次 Java 请求入手,看清模型收到了什么、返回了什么,以及用量、耗时和失败怎样记录。

消息角色与请求选项 · 上下文窗口 · 输入和输出 Token

本篇重点:记录请求用了多少 Token、输出是否被截断以及为什么结束,检查调用是否超出预算。

单元08
P1 · 重点提升L1 · 基础

控制生成随机性与 Token 预算

分清温度、采样和输出长度各控制什么,再用实际任务比较效果和用量。

候选 Token 分数 · 概率归一化与 softmax · 贪心与采样

本篇重点:先累计每项概率,再用二分查找选中一次采样结果;检查边界输入和调用预算,观察生成结果的随机性。

单元09
P0 · 必会主线L1 · 基础

把模糊需求写成可测试的提示

把任务、资料和通过条件写清楚,再用一致的示例说明应该怎样回答、缺资料时怎么办。

任务目标与验收标准 · 输入资料边界 · 零样本提示

单元10
P0 · 必会主线L1 · 基础

让 AI 按指定格式回答:结构化输出与校验

先约定模型返回哪些字段,再检查格式、业务范围和内容对错,让结果能直接用于应用。

业务字段设计 · Java record 映射 · 文本转换器边界

单元11
P0 · 必会主线L1 · 基础

让结构化结果通过三层校验

数据能解析成 Java 对象后,继续检查必填、空值、范围和资源权限,确认业务上能否执行。

JSON 语法校验 · Schema 结构校验 · 业务语义校验

单元12
P0 · 必会主线L1 · 基础

把原始笔记变成可追溯的检索片段

先把资料读对、清理好、按意思切成片段并记录版本,再生成向量用于检索。

提取、转换与写入 · 原文完整性抽查 · 文档来源和版本

单元13
P0 · 必会主线L1 · 基础

工具调用:执行、返回结果与正确停止

走完“模型提出请求—应用检查并执行—返回真实结果—继续回答”的完整工具调用流程。

工具名称和参数 · 调用 ID 与结果关联 · 应用分派和执行

本篇重点:先规定允许调用哪些工具(白名单),再记录调用 ID,处理重复与冲突,并设置执行预算和停止条件。

L2 · 进阶

把知识串成系统,处理并发、可靠性、检索质量与真实故障。

17 篇
单元14
P0 · 必会主线L2 · 进阶

向量检索:选择距离、建立索引并检查召回

先用逐项比较找出正确结果,再检验近似索引节省了多少时间、漏掉了多少相关内容。

编码模型与维度配置 · 欧氏距离、点积与余弦 · 距离排序方向

单元15
P1 · 重点提升L2 · 进阶

组合关键词、向量检索与重排

结合关键词与语义检索,既找准类名和配置键,也找得到换了说法的资料,再重新排序。

关键词与向量检索互补 · BM25 与向量分数尺度 · RRF 排名融合

单元16
P0 · 必会主线L2 · 进阶

让 RAG 回答能回到原始证据

先从文档里找依据,再生成带真实引用的回答;资料不够时,明确说明还不能下结论。

RAG 检索与生成分工 · 文档章节与版本元数据 · 租户和权限过滤

单元17
P0 · 必会主线L2 · 进阶

单独测量检索召回与排序质量

用固定测试题检查相关资料有没有找到、排得够不够靠前,以及资料外的问题怎样处理。

查询、语料与相关标注 · 文档和片段标注单位 · Hit@k

本篇重点:先检查该找的资料是否找到、排在什么位置,再评估回答质量;用 Recall / MRR / NDCG 按样本类别分别检查,定位遗漏资料的原因。

单元18
P0 · 必会主线L2 · 进阶

把工具定义做成可测试的接口契约

把工具参数、返回值和错误说清楚,再分别测试工具本身,以及模型会不会正确使用它。

工具名称与能力边界 · 输入来源与必填参数 · JSON Schema 输入范围

单元19
P0 · 必会主线L2 · 进阶

提示注入与权限检查:限制工具能做什么

区分资料里的文字与真正的操作授权,在后端检查身份、资源和动作,拦住提示注入带来的越权。

用户、模型与工具信任边界 · 直接提示注入 · 检索和工具中的间接注入

单元20
P1 · 重点提升L2 · 进阶

用 MCP 连接工具,保留应用控制权

看懂应用、连接端和能力服务各负责什么,再实际完成一次工具发现与调用。

Host、Client、Server 职责 · 工具、资源与提示 · JSON-RPC 请求标识

单元21
P1 · 重点提升L2 · 进阶

排查 MCP 初始化、传输与会话问题

按初始化、协商、调用和断线几个阶段检查 MCP,分清本地进程与 HTTP 两种传输方式。

initialize 请求 · 版本与能力协商 · initialized 通知

单元22
P0 · 必会主线L2 · 进阶

用状态机决定哪里需要 Agent

先写清业务要经过哪些步骤,再把需要临场判断的选择交给模型,并限制它能走的路径。

工作流与 Agent 控制权 · 固定节点与动态决策 · 显式状态数据

单元23
P0 · 必会主线L2 · 进阶

不用真实模型也能验证状态机

把状态、事件和合法变化写成可测试的规则,确认完成、取消、重复通知时都走对流程。

状态和事件区分 · 状态转换表 · 纯函数迁移

单元24
P0 · 必会主线L2 · 进阶

分开保存历史、工作记忆与长期偏好

把历史、当前任务信息和长期记忆分开保存,让对话接得上,也给眼前的问题留够空间。

完整历史与工作记忆 · 长期偏好 · 消息条数与 Token 预算

本篇重点:记录记忆中的事实、出处和权限;以完整记忆组为单位选取内容,并检查是否超出上下文预算。

单元25
P0 · 必会主线L2 · 进阶

让执行能重启、重试与等待确认

保存长任务进度,防止恢复时重复操作,并让用户确认对应到具体内容和版本。

持久检查点 · 内存状态与进程重启 · 节点重放

单元26
P1 · 重点提升L2 · 进阶

流式与异步:用背压控制待处理数据

分清先显示一部分与真正完成,处理慢客户端、断线和取消,避免缓存越积越多。

流式与异步的区别 · 增量和完整结果 · 网络分块与事件边界

单元27
P0 · 必会主线L2 · 进阶

建立不会自我欺骗的 Agent 评测集

把真实任务、正确行为和失败类型整理成固定测试数据,让每次改进都有同一把尺子。

任务类型覆盖 · 输入、资料和预期行为 · 禁止行为约束

本篇重点:写清系统允许和禁止做什么,把同一原始案例的变体归为一组,记录失败类型,并固定回归测试的版本与通过条件。

单元28
P0 · 必会主线L2 · 进阶

用评测和执行轨迹判断 Agent 是否可靠

既检查任务有没有做成,也记录检索、决策和工具执行过程,让失败能找到具体原因。

结果和过程分别评估 · Schema 权限预算检查 · 引用支持与人工核对

本篇重点:沿一次请求的完整记录(trace)和各步骤记录(span)查找失败位置与耗时,再结合指标排查线上问题。

单元29
P0 · 必会主线L2 · 进阶

把 Spring 服务接入模型工具

沿用熟悉的 Service、Repository 分层,把小而明确的 Java 业务方法开放为模型工具。

ChatClient 接入 · @Tool 与 @ToolParam · 工具注册

单元30
P0 · 必会主线L2 · 进阶

为学习助手实现接口、存储与测试骨架

用 Java 后端保存任务、步骤和资料,设计发起、查询、取消、确认等接口,为完整项目做准备。

Controller Service Adapter 分层 · 兼容版本与构建配置 · 请求和响应 DTO

L3 · 深入

进入机制、诊断与权衡,用证据判断复杂设计是否必要。

6 篇
单元31
P1 · 重点提升L3 · 深入

让记忆可以纠错、过期并保持隔离

给长期记忆记录来源、版本和有效期,并处理修改与撤回,避免旧信息重新生效。

记忆来源与确认状态 · 事实与推测区分 · 临时要求和长期偏好

单元32
P1 · 重点提升L3 · 深入

管理重试预算、幂等键与并发恢复

分清哪些失败能重试,处理超时后结果未知,并防止重复请求和多个进程执行同一笔操作。

可重试与不可重试错误 · 指数退避和抖动 · 整体截止时间

单元33
P2 · 按需深入L3 · 深入

在预算内拆解任务与协作

把计划写成有输入、结果和先后顺序的任务表,再让真正独立的子任务并行处理。

单代理基线 · 任务独立性和依赖 · 结构化计划

本篇重点:画出没有循环依赖的任务图(DAG),找出耗时最长的依赖路径(关键路径),再规定角色、预算和失败后受影响的任务。 安排固定角色的权限、依赖、通信与结果合并,判断是否需要多个 Agent。

单元34
P1 · 重点提升L3 · 深入

设计评分规则并公平比较两个版本

组合程序检查、人工评审和模型评分,逐题比较新旧版本,说明提升、退步和不确定性。

确定性规则检查 · 硬约束门槛 · 人工评分 Rubric

本篇重点:先列出发布必须通过的检查,校准评分器,再比较新旧版本有没有退步,决定能否发布。

单元35
P1 · 重点提升L3 · 深入

质量、成本与尾延迟:关注等待较久的请求

统计一整次任务的模型、工具用量和等待时间,在质量相同的条件下优化上下文、并发与缓存。

全任务调用量统计 · 输入输出及缓存计量 · 未知用量处理

本篇重点:逐次记录调用费用,缺少用量时标为未知;拆开从请求开始到结束各阶段的耗时,再设置应用预算。

单元36
P0 · 必会主线L3 · 深入

毕业项目:可验证的 Java 学习助手

完成一个 Java 学习助手:查资料、出练习、保存计划,并用测试说明正常与失败时的行为。

授权笔记问答 · 来源引用与资料不足 · 练习题结构化生成

学习笔记 · 整理于 2026.09.26
难度与重要程度服务于学习排序。用练习结果验证掌握情况,再决定是否进入下一篇。