AI AGENT 102 · LEARNING HUB

入门学习站

从「敲网址那一瞬间发生了什么」到「搭一个用上私有数据的 Agent」。标准只有一个:看得懂、分得清
网络底层API 调用Agent 基础RAG动手搭建
🗺️
卡片图谱
五张图卡:一次请求的旅程、API 调用、Agent 地图、RAG 两张。每张可单独细看。
📖
完整笔记
12 章系统笔记,从网络底层到上线安全,复习主力。
🎮
六关闯关
比喻+依赖链+费曼+错题复习,过 80% 解锁下关。检验真懂没。
🎯
下一步是动手
这些是「关于」开发的准备。真正下一步:打开空编辑器写第一行 Python。

卡片图谱

五张知识图卡,点开任意一张细看。每张卡片内右下角可导出 PNG。

完整知识笔记

12 章系统整理,按学习逻辑组织。这是你的复习主力文档。

AI Agent 入门 · 基础知识笔记

一份从「网络底层」到「API 调用」到「RAG / Agent」的完整入门笔记。
按学习逻辑顺序组织,适合长期保存与复习。
核心标准:看得懂、分得清——不求手写实现,但要能判断、能定位。

目录


一、网络底层:一次请求的旅程

你敲下网址按回车,到看见页面——中间那「嗖一下」其实有四步。看懂它,所有 API 调用都不再是黑箱。

核心比喻:寄一封挂号信。 先查到收件人门牌,由可靠运输公司送达,信封上锁谁也拆不开,对方收到后回你一封。

四步链路

步骤是谁干什么比喻
DNS把人好记的名字(deepseek.com)翻译成机器认的数字门牌(IP 地址)查号台 / 查地址
TCP拿着门牌可靠送达:每段要签收回执,丢了自动重发,到了按序号拼回原样挂号信运输公司
HTTPS那个 S=Secure。给数据上锁,密码、API key 加密成乱码把明信片换成密封信
HTTP送达后用「请求-响应」对话:你发请求,对方回内容 + 状态码当面办事

关键概念澄清

DNS:把名字翻译成 IP 地址(数字门牌,如 142.x.x.x)。不是翻译成「网址」——网址是你敲的那个名字本身,IP 是翻译的结果。

IP 地址:那串数字门牌本身,机器之间靠它互相找。

TCP 的「可靠」具体指三件事

  • 签收确认:每段数据送到,对方回一个「收到」回执
  • 丢了重发:没收到回执 = 知道丢了 → 自动重发,直到确认
  • 排序:大数据切成小块分别送,到了按编号拼回正确顺序
一句话:TCP 可靠 = 不丢(丢了重发)+ 不乱(到了排序)+ 确认送达(每段回执)。

为什么调 API 用 TCP 不用 UDP:prompt 丢一个字、乱一个序模型就理解错了,所以要「不丢不乱」的 TCP。视频通话才用 UDP(快比全重要,丢一两帧无所谓)。

HTTP vs HTTPS

  • HTTP(无 S)= 明信片,数据明文,路上每一个经手者(WiFi 提供方、运营商、中间服务器)都能看到内容
  • HTTPS(有 S)= 密封信,数据加密成乱码,只有收件人能解开
  • 加密不是自动的,是 HTTPS 这个 S 带来的。所有正经 API 地址都是 https:// 开头,因为请求头里带着 API key,绝不能明文裸奔

这几个词的正确归位(容易混):

  • HTTP / HTTPS / MQTT → 最上层「应用怎么对话」,彼此平级(MQTT 多用于物联网设备)
  • TCP / UDP → 中间层「怎么可靠运输」
  • IP → 「找到哪台机器」
  • MAC 地址 → 最底层「同一局域网内谁是谁」,平时不用碰

二、HTTP 报文:那坨文本长什么样

curl / Apifox 帮你拼好、真正发到网络上的原始样子:

POST /v1/chat/completions HTTP/1.1     ← 方法 + 地址(第一行)
Host: api.deepseek.com                 ┐
Authorization: Bearer sk-abc123        │ 说明信息(Headers)
Content-Type: application/json         │
Content-Length: 56                     ┘ ← 这行告诉服务器:正文有 56 字节
                                       ← 【空行】= 分界线!
{"model":"deepseek-v4-pro",...}        ← 正文(Body)

两个关键设计

空行:是 Headers 和 Body 之间的分界线。服务器从上往下逐行读,一遇到空行就知道「说明部分结束,下面全是正文」。像写信——抬头信息后空一行才是正文。

Content-Length:告诉服务器正文有多长(单位是字节,不是字符)。服务器读够这么多字节就知道 body 到此结束。

  • 注意:一个中文字在 UTF-8 下占 3 个字节,不是 1 个。
空行 + Content-Length 是一对搭档:空行告诉服务器正文从哪开始,Content-Length 告诉它读到哪结束

curl / Apifox 默默帮你做的事:写好第一行、把 -H 变成 Headers、自动数出 body 长度填 Content-Length、自动加分界空行。所以你用工具时从不操心这些。


三、API 调用基础:四件套

任何 API 调用,拆开都是同一副骨架。换接口只是换地址和换 JSON,骨架不变。

部件是什么怎么认
方法要干嘛GET 取数据;POST 提交、让它干活;PUT/PATCH 改;DELETE
地址(URL)去哪个服务的哪个能力看路径:/chat/completions 聊天,/images/generations 生图
钥匙(Headers)身份验证等说明Authorization: Bearer sk-xxx,那串 key 等于密码,别泄露
数据(Body)真正发的内容一坨 JSON

几个高频 Header

  • Authorization:我是谁(Bearer ,Bearer 是固定认证方式关键字)
  • Content-Type:我发的 body 是什么格式(application/json = JSON)。漏掉它很多 API 会拒收或报 400

状态码:办成没办成的回执

状态码含义谁的锅
2xx(200)成功
4xx你写错了(401 没登录/key 错;403 没权限;404 找不到;429 太频繁)回头查自己
5xx(500/502/503)服务端崩了对方问题,过会再试
口诀:4xx 你错了,5xx 它崩了。 报错时先看响应 body 里的 error.message,比看状态码更精确。

JSON 写法规则

{ "model": "deepseek-v4-pro", "messages": [ { "role": "user", "content": "你好" } ] }
  • {} 装键值对,[] 装列表
  • key 和字符串都必须用双引号(不能用单引号)
  • 最后一项后面不能有逗号(尾逗号是新手 80% 报错的原因)

四、读懂 curl 命令

curl https://你的网关/v1/images/generations \
  -H "Authorization: Bearer 你的key" \
  -H "Content-Type: application/json" \
  -d '{ "model": "gpt-image-2", "prompt": "一只巡检机器人" }'

逐项拆解:

  • curl:命令行发 HTTP 请求的工具。默认发 GET,一旦加 -d 就自动变 POST
  • URLhttps://(加密协议)+ 域名 + 路径(/v1 是版本号,后面是具体能力)
  • 行尾 \:表示「这行没写完,下一行继续」,纯为换行好看。后面不能有空格
  • -H:加一个请求头(header)
  • -d:请求体(data)。外层用单引号包,因为 JSON 内部已用双引号。内容带单引号时用 -d @body.json 从文件读更省心

五、读懂 API 文档:五步套路

拿到任何 API 文档,按这个固定顺序看,永远不乱:

  • URL 和方法 → 这是个什么能力(三秒扫顶部)
  • 鉴权 / Authentication → 怎么证明身份(一般是 Bearer token)
  • Request Body 参数表(最该花时间):

- 先找 required 列表 → 哪些必填

- 再过每个字段的 enum(限定值)和 description(取值范围)

- 特别留意「仅支持 X 模型」这类条件限制(最容易踩的坑)

  • Response 示例 → 返回什么结构,代码怎么解析(注意文档可能有的不一致)
  • 错误码 → 报错时对照排查,优先看 body 的 error.message
读文档遇到「枚举 + description 补充」时,永远以 description 为准,enum 只是常用预设。

六、两类常见 API 对比(图像 vs 聊天)

图像 API(文生图)聊天 API(chat)
必填model + prompt(一句话)model + messages(对话数组)
输入形态单条文本描述带 role 的消息列表
有无状态无(每次独立)无状态,但你要自己拼历史
返回主体data[](图片)choices[](回复)
取结果data[0].b64_json.urlchoices[0].message.content
鉴权Bearer token完全相同

图像 API 要点(以 gpt-image 系列为例)

  • size:常用 1024x1024(方)/ 1536x1024(横)/ 1024x1536(竖)。约束:边长 ≤ 3840、必须是 16 的倍数、长短边比 ≤ 3:1
  • qualitylow(草稿,最快最省)→ 调好 prompt 再切 high(终稿)
  • output_formatpng(默认)/ jpeg / webp(存网站推荐 webp,省流量)
  • response_format:GPT image 系列永远返回 base64,传 url 也无效(只对 dall-e 有效)
  • 实操:试 prompt 阶段 quality=low + n=4 一次出多张挑,定稿再 high + n=1

聊天 API 要点

  • messages 数组:每条 {"role": "...", "content": "..."}。role 三选一:

- system:设定人设和规则,开头放一条

- user:用户的话

- assistant:模型之前的回复

  • role 是固定协议枚举,不是人设——人设写在 content 里
  • 无状态真相:模型「记得」上文,纯粹因为你每次把全部历史又发了一遍
  • 多轮对话:每轮要把上一轮的「问 + 答」都 append 进 messages 再发
  • 关键返回字段

- choices[0].message.content(99% 要的回复)

- finish_reasonstop 正常结束 / length 被 max_tokens 截断 / tool_calls 要调工具

- usage:本次花的 token(直接对应成本)


七、Agent 开发者基础知识地图

按「跟主线相关度」分三梯队,深度只需「看得懂、分得清」。

梯队一 · 紧挨 API,马上会撞到

知识点要点深度
① .env 密钥管理key 放 .env,代码用变量名引用,.env 加进 .gitignore 不上传动手
② 数据库三分类关系型(MySQL,结构化如订单) / 文档型(MongoDB) / 向量型(存语义,RAG 核心)认得
③ Webhook反向 API——不是你去问它,是它有事主动推给你。聚合钉钉/飞书消息靠它认得

梯队二 · 架构判断必备

知识点要点
④ 同步/异步/流式立等可取(同步) vs 给任务号过会再取(异步) vs 打字机式(流式)
⑤ 限流 + 重试每分钟最多调几次,超了 429。反应:放慢频率 + 退避重试
⑥ Token 与上下文窗口每个模型有「能记多长」上限,超了最早内容被挤掉

梯队三 · 工程素养,慢慢渗透

知识点要点
⑦ Git 概念分支(平行宇宙,改坏不影响主线) + 合并(merge)
⑧ 客户端 vs 服务端前端用户可见 → 绝不能放密钥;密钥只能在服务端
⑨ 终端命令行cd(进目录) / ls(看文件) / cat(看内容) / && 串命令
只挑三个立刻补:① .env 密钥管理 → ② 数据库三分类 → ③ Webhook。
暂时别碰(超出基础边界):Docker/容器、OAuth 完整流程、并发多线程、网络底层 TCP/DNS 握手细节。

八、RAG:让模型用上你的私有数据

核心问题:LLM 是 stateless 的,知识截止在训练那刻——它不知道你公司的事,也记不住太多(上下文窗口有限)。

RAG 精髓一句话:回答前,先去你的资料库里捞出最相关的几段,塞进 prompt,再让模型基于这几段回答。

核心比喻:给模型开一场开卷考试。 答题前先翻到相关那几页(检索)→ 摊在桌上(增强)→ 照着资料作答(生成)。

R = Retrieval(检索)  去向量库捞相关段落
A = Augmented(增强)  把资料拼进 prompt
G = Generation(生成) 发给 LLM 基于资料作答

两阶段流水线

阶段一 · 入库(离线,事先做一次)

你的文档 → Chunking 切小段 → 每段 Embedding 转向量 → 存进向量数据库

阶段二 · 问答(在线,每次提问时)

用户问题 → 同一个 Embedding 转向量 → 检索 R 找最近几段
        → 增强 A 拼进 prompt → 生成 G 发给 LLM

关键概念

  • Embedding(向量化):把文字转成坐标,让语义近的文字坐标也近。解决了「关键词搜不到同义不同字」的问题(「报销」能匹配「费用核销」)
  • 向量数据库:专门存向量、并能秒找最近邻(Pinecone / Milvus / 轻量的 Chroma)。就是数据库三分类里的向量型
  • Chunking(分块):长文档切小段再转向量,检索才精准

两个新手必踩的坑

  • 切块大小是手艺:切太大不精准,切太小丢上下文
  • 两阶段必须用同一个 Embedding 模型:否则两张「语义地图」坐标系不同,算距离全乱

RAG vs 微调:选型判断

方式特点适用
改 Prompt最轻,调话术塞不下大量私有数据
RAG中等,喂资料;文档变了重新入库即可,模型不动知识常变的企业场景(推荐)
微调最重,把知识焊进模型;数据一变就得重训,贵又慢改变固定风格/格式
口诀:让模型「知道事实」用 RAG;让模型「改变行为风格」才考虑微调。九成企业问答场景 RAG 是正解。
重要认知:RAG 里真正调 LLM 的只有最后一步 G,前面切块/向量化/检索/拼 prompt 全是工程活——印证「agent 开发大部分是非 LLM 代码」。

九、RAG 进阶:把「能跑」变成「好用」

先承认:照基础流水线搭出的朴素 RAG(Naive RAG)经常答得烂——答非所问、漏关键、瞎编。这是固有缺陷,不是你搭错。毛病集中在三个环节。

环节一 · 切得对不对(Chunking)

  • 按语义边界切:别固定每 500 字硬切(会把一句话/一张表劈开),按段落、标题层级、「第 X 条」这种完整单元切
  • 重叠切分(Overlap):相邻两块各留 ~50 字重复,避免关键信息卡在切口丢失

环节二 · 找得准不准(检索,翻车重灾区)

  • 混合检索(Hybrid Search):纯语义检索对精确编号/专有名词不灵(如「SKU-7782」会漏)。解法是语义路 + 关键词路两路合并。企业数据(全是编号)必上
  • 重排序(Rerank):捞回的 20 段良莠不齐,用更精细的小模型重打分,只留最相关 3-5 段。粗筛快 + 精排准
  • 查询改写(Query Rewriting):用户口语省略(「那上一条呢?」)没法直接检索,先让 LLM 补全成完整查询。多轮对话必备

环节三 · 答得实不实(生成)

  • 强约束 Prompt:防幻觉——「只根据提供的资料回答,没有就说不知道,绝不编」
  • 引用溯源(Citation):答案里标出处(来自哪份文档哪一段),建立信任

Agentic RAG(进阶形态)

朴素 RAG 是「检索一次 → 答一次」死板;Agentic RAG 让 LLM 自己决策:要不要检索、查哪个库、没查够要不要再来一轮、要不要拆子问题。

这就是 agent 思想注入 RAG。企业管理 agent 的最终形态大概率就是它——自己决定该查钉钉记录、查数据库、还是查制度文档。

十、提示工程与 Agent 核心机制

提示工程

  • role:固定协议枚举(system/user/assistant),标记「谁说的」。人设写在 content 里
  • system 提示:上班第一句话——你是谁、按什么规矩干活
  • temperature:创意旋钮。低(接近 0)稳定确定(编码用);高(1+)发散有创意(文案用)
  • 逼出 JSON:prompt 里明确要求 JSON 并给格式示例(光开 JSON 模式不说明,模型可能一直吐空白到卡死)
  • 思维链(CoT):让模型「一步步思考」,复杂推理出错更少
  • 清晰具体 > 模糊:「写一篇 200 字、给小学生、语气温暖的猫科普」远好于「写点关于猫的东西」

Agent 核心机制

  • Function Calling(工具调用):模型不会自己执行代码,它只输出结构化的「我想调 XX 工具、参数 YY」,由你的代码接住并真正执行,再把结果喂回去
  • ReAct 循环:推理(Reason) → 行动(Act) → 观察结果 → 再推理,循环往复直到完成。agent 能自主干活的核心
  • tool 角色:工具执行结果用专门的 tool/function 角色消息追加回 messages,模型读到才能继续
  • 记忆的本质:LLM 无状态,所谓记忆都是每次把该记的信息重新拼进上下文。短期=带历史,长期=向量库(RAG)
  • 谁决定下一步:由 LLM 根据当前状态自主决策——这是 agent 区别于普通脚本的关键
核心认知:agent 开发大部分是非 LLM 代码。主体是写工具集成(调钉钉/跑测试/连库),真正调 LLM 只占一小部分。

十一、上线与安全

  • .env:存密钥配置,代码用变量名引用,必须加进 .gitignore(忘了把 key 推上 GitHub 是经典事故)
  • 前后端安全分界:前端代码跑在用户浏览器、源码可见 → 密钥绝不能放前端,只能在服务端
  • 限流重试:高频调 API 遇 429,要降频 + 退避重试(等待逐次加长),不能硬刚
  • 错误容错:网络请求注定有失败(超时/429/500),用 try/except 兜住、判断状态码、失败有降级,不能一错就崩
  • 静态站部署:纯静态站用 Vercel / Cloudflare Pages,免费、一键、自带 HTTPS
  • Webhook:连钉钉/飞书接收主动推来的消息——你给个回调地址,对方有事件主动 POST 过来,比轮询高效

十二、总速记

网络底层一条链

敲网址 → DNS 查门牌(IP) → TCP 可靠送(丢了重发) → HTTPS 上锁 → HTTP 对话

API 调用骨架

URL 选能力 → Header 给身份和格式 → Body 写参数 → 状态码看回执
4xx 你错了,5xx 它崩了

RAG 公式

RAG = Embedding(文字→坐标) + 向量库(存坐标·找最近) + Chunking(切小段) + 聊天接口(拼资料·生成)
知道事实用 RAG,改变风格才微调

Agent 一句话

模型负责「想」,你的工具代码负责「做」,做完喂回结果再想下一步(ReAct)
agent 开发大部分是非 LLM 的工程代码

不变的真相

LLM 是无状态的——每次调用都要重发完整历史,所有「记忆」都建立在这之上

*笔记完 · 标准:看得懂、分得清。下一步是动手——纸面到此够用,剩下靠手感。*

🎓 费曼复述 · 用自己的话讲出来才算真懂

动手项目

把概念变成手感:每个项目都有步骤、代码片段、完成检查和复习题。

项目复习

🎯
0 / 0
本关答对题数