Browse Source

update extra-05 Agent Skill

jjyaoao 6 months ago
parent
commit
835bd4c165
41 changed files with 1548 additions and 706 deletions
  1. 512 512
      Extra-Chapter/Extra01-参考答案.md
  2. 90 90
      Extra-Chapter/Extra02-上下文工程补充知识.md
  3. 50 50
      Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md
  4. 40 40
      Extra-Chapter/Extra04-DatawhaleFAQ.md
  5. 838 0
      Extra-Chapter/Extra05-AgentSkills解读.md
  6. 0 0
      Extra-Chapter/images/Extra03-figures/image1.jpg
  7. 0 0
      Extra-Chapter/images/Extra03-figures/image10.jpg
  8. 0 0
      Extra-Chapter/images/Extra03-figures/image11.jpg
  9. 0 0
      Extra-Chapter/images/Extra03-figures/image12.jpg
  10. 0 0
      Extra-Chapter/images/Extra03-figures/image13.png
  11. 0 0
      Extra-Chapter/images/Extra03-figures/image14.png
  12. 0 0
      Extra-Chapter/images/Extra03-figures/image15.jpg
  13. 0 0
      Extra-Chapter/images/Extra03-figures/image16.png
  14. 0 0
      Extra-Chapter/images/Extra03-figures/image17.jpg
  15. 0 0
      Extra-Chapter/images/Extra03-figures/image18.png
  16. 0 0
      Extra-Chapter/images/Extra03-figures/image19.jpg
  17. 0 0
      Extra-Chapter/images/Extra03-figures/image2.jpg
  18. 0 0
      Extra-Chapter/images/Extra03-figures/image20.jpg
  19. 0 0
      Extra-Chapter/images/Extra03-figures/image21.png
  20. 0 0
      Extra-Chapter/images/Extra03-figures/image22.png
  21. 0 0
      Extra-Chapter/images/Extra03-figures/image23.png
  22. 0 0
      Extra-Chapter/images/Extra03-figures/image24.png
  23. 0 0
      Extra-Chapter/images/Extra03-figures/image25.png
  24. 0 0
      Extra-Chapter/images/Extra03-figures/image26.png
  25. 0 0
      Extra-Chapter/images/Extra03-figures/image3.jpg
  26. 0 0
      Extra-Chapter/images/Extra03-figures/image4.jpg
  27. 0 0
      Extra-Chapter/images/Extra03-figures/image5.jpg
  28. 0 0
      Extra-Chapter/images/Extra03-figures/image6.jpg
  29. 0 0
      Extra-Chapter/images/Extra03-figures/image7.jpg
  30. 0 0
      Extra-Chapter/images/Extra03-figures/image8.jpg
  31. 0 0
      Extra-Chapter/images/Extra03-figures/image9.jpg
  32. BIN
      Extra-Chapter/images/Extra05-figures/image1.png
  33. BIN
      Extra-Chapter/images/Extra05-figures/image2.png
  34. BIN
      Extra-Chapter/images/Extra05-figures/image3.png
  35. BIN
      Extra-Chapter/images/Extra05-figures/image4.png
  36. BIN
      Extra-Chapter/images/Extra05-figures/image5.png
  37. BIN
      Extra-Chapter/images/Extra05-figures/image6.png
  38. 8 7
      README.md
  39. 1 0
      README_EN.md
  40. 8 7
      docs/README.md
  41. 1 0
      docs/README_EN.md

File diff suppressed because it is too large
+ 512 - 512
Extra-Chapter/Extra01-参考答案.md


+ 90 - 90
Extra-Chapter/Extra02-上下文工程补充知识.md

@@ -44,18 +44,18 @@ _"上下文工程是...在上下文窗口中为下一步填充恰到好处信息
 
 Context就是模型“看到”的一切,模型其实并不是只根据我们输入的prompt回复问题,还有其余的信息配合生成回复。上下文工程作为适用于几种不同上下文类型的总括:
 
-- **Instructions(指令上下文)** : 提示、记忆、少量示例等 prompt engineering,包括:
+- <strong>Instructions(指令上下文)</strong> : 提示、记忆、少量示例等 prompt engineering,包括:
   - 系统提示词:定义AI的角色、行为准则和响应风格
   - 用户指令:描述具体任务及要求
   - 少样本示例:输入输出示例,帮助理解预期格式
   - 工具描述:函数或工具的规范与使用说明
   - 格式约束:输出的格式和结构要求
-- **Knowledge(知识上下文)** : 事实、知识库等  rag,包括:
+- <strong>Knowledge(知识上下文)</strong> : 事实、知识库等  rag,包括:
   - 领域知识:特定行业或专业的事实信息
   - 记忆:用户偏好、历史交互和会话记录
   - 知识库:从数据库或知识库中获取相关信息
   - 实时数据:动态更新的当前状态信息
-- **Tools(工具上下文)** : 工具描述和工具调用的反馈 agent,包括:
+- <strong>Tools(工具上下文)</strong> : 工具描述和工具调用的反馈 agent,包括:
   - 函数调用结果:API响应或查询结果
   - 工具执行状态:成功、失败或错误反馈
   - 多步骤工具链:工具间的依赖关系与数据传递
@@ -74,23 +74,23 @@ Context就是模型“看到”的一切,模型其实并不是只根据我们
 
 为了清晰地区分这四个概念,我们设定一个统一的实际场景,然后看每个方法如何解决这个问题。
 
-**场景:一个旅游APP的智能助手**
+<strong>场景:一个旅游APP的智能助手</strong>
 
-**用户需求:** “帮我规划一个为期三天的北京家庭旅行。我们是两个大人和一个5岁的孩子,喜欢历史文化,也想要一些轻松有趣的活动。我们的总预算是8000元。”
+<strong>用户需求:</strong> “帮我规划一个为期三天的北京家庭旅行。我们是两个大人和一个5岁的孩子,喜欢历史文化,也想要一些轻松有趣的活动。我们的总预算是8000元。”
 
 ---
 
 #### 1. 提示词工程 (Prompt Engineering)
 
-这是最基础、最直接的方法。它的核心是**如何向语言模型(LLM)提一个好问题**,以期它仅凭其内部的通用知识库就能给出最好的答案。
+这是最基础、最直接的方法。它的核心是<strong>如何向语言模型(LLM)提一个好问题</strong>,以期它仅凭其内部的通用知识库就能给出最好的答案。
 
-*   **核心思想:** 优化输入给模型的指令(Prompt),让它输出更符合期望的结果。
-*   **工作方式:**
+*   <strong>核心思想:</strong> 优化输入给模型的指令(Prompt),让它输出更符合期望的结果。
+*   <strong>工作方式:</strong>
     1.  开发者或用户将所有需求精心构造成一个详细的提示词。
     2.  将这个提示词直接发送给一个通用的大语言模型(如 GPT-4)。
     3.  模型完全依赖其截至训练日期(比如 2023 年)的内部知识进行回答。
 
-*   **例子:**
+*   <strong>例子:</strong>
     ```
     你是一位专业的旅行规划师。请为北京一个为期三天的家庭旅行设计一份详细行程。
     
@@ -112,97 +112,97 @@ Context就是模型“看到”的一切,模型其实并不是只根据我们
     - 预算明细
     ```
 
-*   **局限性:**
-    *   **信息过时:** 无法提供实时的门票价格、开放时间或最新的交通信息。
-    *   **信息不准确:** 预算估算可能非常粗略,因为它不知道当前的酒店和机票价格。
-    *   **缺乏个性化:** 无法根据用户的历史偏好进行推荐。
-    *   **“一本正经地胡说八道”:** 可能会编造一些不存在的“儿童乐园”或餐厅。
+*   <strong>局限性:</strong>
+    *   <strong>信息过时:</strong> 无法提供实时的门票价格、开放时间或最新的交通信息。
+    *   <strong>信息不准确:</strong> 预算估算可能非常粗略,因为它不知道当前的酒店和机票价格。
+    *   <strong>缺乏个性化:</strong> 无法根据用户的历史偏好进行推荐。
+    *   <strong>“一本正经地胡说八道”:</strong> 可能会编造一些不存在的“儿童乐园”或餐厅。
 
 ---
 
 #### 2. 检索增强生成 (RAG)
 
-为了解决提示词工程“知识陈旧”的问题,RAG 引入了**外部知识库**
+为了解决提示词工程“知识陈旧”的问题,RAG 引入了<strong>外部知识库</strong>
 
-*   **核心思想:** 在生成答案前,先从一个特定的、可信的数据库中检索相关信息,然后将这些信息和用户问题一起提供给模型。
-*   **工作方式:**
-    1.  **知识库准备:** 提前准备好一个包含最新旅游攻略、景点介绍、酒店列表、餐厅评论的数据库(比如一堆 PDF、网页或数据库记录)。
-    2.  **检索 (Retrieve):** 当用户提问时,系统首先在知识库中搜索与“北京亲子游”、“历史文化景点”相关的文档片段。
-    3.  **增强 (Augment):** 将检索到的信息(例如:“故宫最新门票价格为60元,周一闭馆”、“北京环球影城是热门亲子项目”)和用户的原始问题拼接成一个新的、内容更丰富的提示词。
-    4.  **生成 (Generate):** 将这个增强后的提示词发送给 LLM,让它基于这些“新鲜”的资料来生成行程。
+*   <strong>核心思想:</strong> 在生成答案前,先从一个特定的、可信的数据库中检索相关信息,然后将这些信息和用户问题一起提供给模型。
+*   <strong>工作方式:</strong>
+    1.  <strong>知识库准备:</strong> 提前准备好一个包含最新旅游攻略、景点介绍、酒店列表、餐厅评论的数据库(比如一堆 PDF、网页或数据库记录)。
+    2.  <strong>检索 (Retrieve):</strong> 当用户提问时,系统首先在知识库中搜索与“北京亲子游”、“历史文化景点”相关的文档片段。
+    3.  <strong>增强 (Augment):</strong> 将检索到的信息(例如:“故宫最新门票价格为60元,周一闭馆”、“北京环球影城是热门亲子项目”)和用户的原始问题拼接成一个新的、内容更丰富的提示词。
+    4.  <strong>生成 (Generate):</strong> 将这个增强后的提示词发送给 LLM,让它基于这些“新鲜”的资料来生成行程。
 
-*   **例子:**
+*   <strong>例子:</strong>
     系统在内部知识库中找到了三段文字:A) 故宫官网的开放时间和票价;B) 一篇关于“带娃逛天坛”的博客;C) 一份“北京家庭友好型酒店”列表。
     然后,它向 LLM 发出指令:“根据以下信息:[A、B、C段文字内容],为用户规划一个北京三日亲子游,预算8000元。”
 
-*   **局限性:**
-    *   **被动响应:** 它只能根据你提供的信息回答,无法主动执行任务。它不能去“查”机票,只能用你数据库里“有”的机票信息。
-    *   **单向交互:** 完成一次检索和生成就结束了,无法进行多步推理和行动。
-    *   **知识库依赖:** 效果好坏严重依赖于知识库的质量和更新频率。
+*   <strong>局限性:</strong>
+    *   <strong>被动响应:</strong> 它只能根据你提供的信息回答,无法主动执行任务。它不能去“查”机票,只能用你数据库里“有”的机票信息。
+    *   <strong>单向交互:</strong> 完成一次检索和生成就结束了,无法进行多步推理和行动。
+    *   <strong>知识库依赖:</strong> 效果好坏严重依赖于知识库的质量和更新频率。
 
 ---
 
 #### 3. Agent (智能体)
 
-Agent 让 AI 从一个“问答机器人”进化成一个**能思考、能使用工具的“行动者”**
+Agent 让 AI 从一个“问答机器人”进化成一个<strong>能思考、能使用工具的“行动者”</strong>
 
-*   **核心思想:** 赋予模型一个“思考-行动”循环(Reasoning-Action Loop),让它能自主规划步骤、使用外部工具(如API)来完成复杂任务。
-*   **工作方式:**
-    1.  **思考与规划:** LLM(作为 Agent 的大脑)接收到用户需求后,会先思考:“要完成这个任务,我需要:1. 查机票和酒店价格;2. 查景点门票;3. 规划路线;4. 汇总成行程。”
-    2.  **选择工具 (Action):** 它决定使用第一个工具:`search_flight_api(from="上海", to="北京", date="...")`。
-    3.  **观察结果 (Observation):** API 返回了机票价格:5000元。
-    4.  **再次思考:** “机票花了5000,预算还剩3000。我需要找每晚价格低于800元的酒店。”
-    5.  **再次行动:** 使用工具 `search_hotel_api(city="北京", price_max=800, family_friendly=true)`。
+*   <strong>核心思想:</strong> 赋予模型一个“思考-行动”循环(Reasoning-Action Loop),让它能自主规划步骤、使用外部工具(如API)来完成复杂任务。
+*   <strong>工作方式:</strong>
+    1.  <strong>思考与规划:</strong> LLM(作为 Agent 的大脑)接收到用户需求后,会先思考:“要完成这个任务,我需要:1. 查机票和酒店价格;2. 查景点门票;3. 规划路线;4. 汇总成行程。”
+    2.  <strong>选择工具 (Action):</strong> 它决定使用第一个工具:`search_flight_api(from="上海", to="北京", date="...")`。
+    3.  <strong>观察结果 (Observation):</strong> API 返回了机票价格:5000元。
+    4.  <strong>再次思考:</strong> “机票花了5000,预算还剩3000。我需要找每晚价格低于800元的酒店。”
+    5.  <strong>再次行动:</strong> 使用工具 `search_hotel_api(city="北京", price_max=800, family_friendly=true)`。
     6.  这个循环会一直持续,直到它收集到所有必要信息,最终完成规划。
 
-*   **例子:**
+*   <strong>例子:</strong>
     这个助手会像一个真正的人类助理一样工作:
     *   “好的,我正在为您查询... 我发现下周五去北京的机票大约需要5000元。”
     *   “考虑到预算,我为您筛选了几家评价很好且价格在600-800元/晚的家庭酒店。”
     *   “故宫门票已通过 `ticket_api` 查询,儿童免票。我已将此信息加入行程。”
 
-*   **局限性:**
-    *   **复杂且不稳定:** Agent 的行为路径不固定,可能会犯错(比如陷入循环、错误使用工具),调试和控制难度大。
-    *   **成本高:** 每一步思考和工具调用都可能是一次 LLM API 调用,成本较高。
+*   <strong>局限性:</strong>
+    *   <strong>复杂且不稳定:</strong> Agent 的行为路径不固定,可能会犯错(比如陷入循环、错误使用工具),调试和控制难度大。
+    *   <strong>成本高:</strong> 每一步思考和工具调用都可能是一次 LLM API 调用,成本较高。
 
 ---
 
 #### 4. 上下文工程 (Context Engineering)
 
-上下文工程是**一个更宏观、更严谨的学科**,它着眼于**如何为模型(无论是简单的 RAG 还是复杂的 Agent)构建最优的“上下文窗口”**。它是对上述所有方法的优化和升华。
+上下文工程是<strong>一个更宏观、更严谨的学科</strong>,它着眼于<strong>如何为模型(无论是简单的 RAG 还是复杂的 Agent)构建最优的“上下文窗口”</strong>。它是对上述所有方法的优化和升华。
 
-*   **核心思想:** 精心设计和编排进入模型上下文的所有信息(指令、检索到的数据、历史对话、工具输出等),以实现最高效、最可靠的输出。它是一门关于“喂什么”和“怎么喂”的科学。
-*   **工作方式:**
+*   <strong>核心思想:</strong> 精心设计和编排进入模型上下文的所有信息(指令、检索到的数据、历史对话、工具输出等),以实现最高效、最可靠的输出。它是一门关于“喂什么”和“怎么喂”的科学。
+*   <strong>工作方式:</strong>
     它不是一个独立的系统类型,而是优化 RAG 和 Agent 的方法论。回到旅行规划的例子:
-    1.  **收集阶段 (Gather):**
-        *   **并行检索:** 不仅仅是从旅游攻略库(RAG)里检索,它还会同时:
+    1.  <strong>收集阶段 (Gather):</strong>
+        *   <strong>并行检索:</strong> 不仅仅是从旅游攻略库(RAG)里检索,它还会同时:
             *   调用 `weather_api` 查询北京未来几天的天气。
             *   调用 `events_api` 查询是否有特殊的儿童展览或活动。
             *   从用户画像数据库(CRM)中检索到“该用户上次旅行预订了博物馆门票”。
             *   对用户的模糊提问“轻松有趣的活动”进行多路搜索,包括“北京游乐场”、“北京科技馆”、“适合儿童的表演”。
-    2.  **筛选与压缩阶段 (Glean & Compact):**
-        *   **重排序:** 它发现天气预报显示第二天有雨,于是将户外长城的优先级降低,提升了室内科技馆的推荐权重。
-        *   **压缩:** 它不会把一篇长长的酒店评论文章都丢给模型,而是提取出关键信息:“该酒店有儿童游乐区,提供婴儿床。”
-        *   **格式化:** 它将所有收集到的、杂乱的信息(天气、机票、用户偏好、景点介绍)整合成一个高度结构化、简洁明了的 JSON 对象。
-    3.  **最终交付:** 最后,它将这个“完美”的上下文包交给 Agent 的大脑(LLM),指令可能是:“请基于这份已验证、已整理的结构化数据 `[JSON object]`,为用户生成最终行程。”
+    2.  <strong>筛选与压缩阶段 (Glean & Compact):</strong>
+        *   <strong>重排序:</strong> 它发现天气预报显示第二天有雨,于是将户外长城的优先级降低,提升了室内科技馆的推荐权重。
+        *   <strong>压缩:</strong> 它不会把一篇长长的酒店评论文章都丢给模型,而是提取出关键信息:“该酒店有儿童游乐区,提供婴儿床。”
+        *   <strong>格式化:</strong> 它将所有收集到的、杂乱的信息(天气、机票、用户偏好、景点介绍)整合成一个高度结构化、简洁明了的 JSON 对象。
+    3.  <strong>最终交付:</strong> 最后,它将这个“完美”的上下文包交给 Agent 的大脑(LLM),指令可能是:“请基于这份已验证、已整理的结构化数据 `[JSON object]`,为用户生成最终行程。”
 
-*   **例子:**
+*   <strong>例子:</strong>
     上下文工程的产出不是直接给用户的行程,而是给模型看的、最优化的“作战地图”。因为经过了上下文工程的优化,Agent 的工作变得极其简单和高效,它不需要再自己费力地一步步试错,而是基于一份完美的简报直接进行最终的规划生成。
 
 #### 总结对比
 
 | 概念 | 核心思想 | 工作方式 | 局限性 |
 | :--- | :--- | :--- | :--- |
-| **提示词工程** | 问对问题 | 精心设计一个完美的 Prompt | 知识过时,无法与外部世界交互 |
-| **RAG** | 给予参考资料 | 提问前先从知识库检索相关信息 | 被动响应,无法执行任务,依赖知识库 |
-| **Agent** | 赋予行动能力 | 通过“思考-行动”循环来使用工具、完成任务 | 复杂,不稳定,成本高 |
-| **上下文工程** | 打造完美输入 | 系统性地收集、筛选、压缩、格式化所有信息,为模型提供最优上下文 | 是一个方法论/学科,而非具体系统,实现复杂 |
+| <strong>提示词工程</strong> | 问对问题 | 精心设计一个完美的 Prompt | 知识过时,无法与外部世界交互 |
+| <strong>RAG</strong> | 给予参考资料 | 提问前先从知识库检索相关信息 | 被动响应,无法执行任务,依赖知识库 |
+| <strong>Agent</strong> | 赋予行动能力 | 通过“思考-行动”循环来使用工具、完成任务 | 复杂,不稳定,成本高 |
+| <strong>上下文工程</strong> | 打造完美输入 | 系统性地收集、筛选、压缩、格式化所有信息,为模型提供最优上下文 | 是一个方法论/学科,而非具体系统,实现复杂 |
 
 简单来说,它们是能力的递进:
-*   **提示词工程** 是**对话者**
-*   **RAG** 是一个带了本书供查阅的**对话者**
-*   **Agent** 是一个可以打电话、上网查资料、帮你订票的**助理**
-*   **上下文工程** 是这位助理背后的**总参谋**,负责提前收集和整理所有情报,确保助理能做出最明智的决策。
+*   <strong>提示词工程</strong> 是<strong>对话者</strong>
+*   <strong>RAG</strong> 是一个带了本书供查阅的<strong>对话者</strong>
+*   <strong>Agent</strong> 是一个可以打电话、上网查资料、帮你订票的<strong>助理</strong>
+*   <strong>上下文工程</strong> 是这位助理背后的<strong>总参谋</strong>,负责提前收集和整理所有情报,确保助理能做出最明智的决策。
 
 
 
@@ -216,7 +216,7 @@ Agent 让 AI 从一个“问答机器人”进化成一个**能思考、能使
 
 然而,长时间运行的任务和积累的工具调用反馈意味着Agent通常使用大量token。这可能导致许多问题:可能超出上下文窗口大小、增加成本/延迟或降低Agent性能。
 
-随着上下文窗口越来越长,我们原本以为“把所有对话历史和资料都丢进模型”就能解决记忆问题。但实验表明,现实远比想象复杂。随着上下文长度增长,模型越来越难保持信息的准确性与一致性,表现就像“**记忆腐烂**”。
+随着上下文窗口越来越长,我们原本以为“把所有对话历史和资料都丢进模型”就能解决记忆问题。但实验表明,现实远比想象复杂。随着上下文长度增长,模型越来越难保持信息的准确性与一致性,表现就像“<strong>记忆腐烂</strong>”。
 
 ![alt text](./images/Extra02-figures/image-4.png)
 
@@ -281,11 +281,11 @@ Agent 让 AI 从一个“问答机器人”进化成一个**能思考、能使
 
 ### 写入上下文
 
-**写入上下文**意味着将其保存在上下文窗口之外以帮助Agent执行任务。
+<strong>写入上下文</strong>意味着将其保存在上下文窗口之外以帮助Agent执行任务。
 主要分为两种:
-- **临时笔记板**
+- <strong>临时笔记板</strong>
 一个临时的工作区,记录模型的中间推理,让思考过程可见。通过"临时笔记板"做笔记是一种在Agent执行任务时持久保存信息的方法。其思想是将信息保存在上下文窗口之外,以便Agent可用。
-- **记忆**
+- <strong>记忆</strong>
 Agent 把新发生的上下文(new context)与已有的记忆(existing memories)结合,经过处理后写成更新的记忆(updated memory)
 
 ![alt text](./images/Extra02-figures/image-8.png)
@@ -298,13 +298,13 @@ Agent 把新发生的上下文(new context)与已有的记忆(existing mem
 
 具体可供选择的上下文有:
 
-- **临时笔记板(Scratchpad)**:即上文提到的临时笔记板,作为模型的"工作记忆"空间,用于记录推理过程、中间结果和思考步骤。在多步骤任务中,模型可以将当前的推理状态、已完成的子任务、待处理的问题等信息写入临时笔记板,便于后续步骤参考和调整策略。
+- <strong>临时笔记板(Scratchpad)</strong>:即上文提到的临时笔记板,作为模型的"工作记忆"空间,用于记录推理过程、中间结果和思考步骤。在多步骤任务中,模型可以将当前的推理状态、已完成的子任务、待处理的问题等信息写入临时笔记板,便于后续步骤参考和调整策略。
 
-- **记忆(Memory)**:包括短期记忆和长期记忆两个层面。短期记忆保存当前会话中的历史对话和上下文信息,确保对话连贯性;长期记忆则存储用户偏好、历史交互模式、个性化设置等跨会话的持久化信息,帮助模型提供更加个性化和一致的服务体验。
+- <strong>记忆(Memory)</strong>:包括短期记忆和长期记忆两个层面。短期记忆保存当前会话中的历史对话和上下文信息,确保对话连贯性;长期记忆则存储用户偏好、历史交互模式、个性化设置等跨会话的持久化信息,帮助模型提供更加个性化和一致的服务体验。
 
-- **工具(Tools)**:在 Agent 系统里,工具本身就是一种上下文。当模型调用 API、插件或外部函数时,它必须理解工具的描述(包括功能说明、参数要求、返回格式等),并在合适的场景下选择正确的工具。工具调用后的反馈结果也会作为新的上下文输入,指导模型下一步的决策。工具的可用性、执行状态、调用历史都是重要的上下文信息。
+- <strong>工具(Tools)</strong>:在 Agent 系统里,工具本身就是一种上下文。当模型调用 API、插件或外部函数时,它必须理解工具的描述(包括功能说明、参数要求、返回格式等),并在合适的场景下选择正确的工具。工具调用后的反馈结果也会作为新的上下文输入,指导模型下一步的决策。工具的可用性、执行状态、调用历史都是重要的上下文信息。
 
-- **知识(Knowledge)**:主要指 RAG(检索增强生成)中的外部知识库。包括结构化数据(如数据库表格)、非结构化文档(如技术文档、产品手册)、向量数据库中的语义检索结果等。这些外部知识弥补了模型训练数据的时效性限制和知识覆盖面不足的问题,通过动态检索相关信息来增强模型的回答准确性和专业性。
+- <strong>知识(Knowledge)</strong>:主要指 RAG(检索增强生成)中的外部知识库。包括结构化数据(如数据库表格)、非结构化文档(如技术文档、产品手册)、向量数据库中的语义检索结果等。这些外部知识弥补了模型训练数据的时效性限制和知识覆盖面不足的问题,通过动态检索相关信息来增强模型的回答准确性和专业性。
 
 ### 压缩上下文
 
@@ -318,21 +318,21 @@ Agent 把新发生的上下文(new context)与已有的记忆(existing mem
 
 #### 上下文摘要
 
-**对话摘要:**
+<strong>对话摘要:</strong>
 在长时间的多轮交互中,完整保留所有历史对话会快速消耗上下文窗口。通过对话摘要技术,可以将早期的对话轮次压缩成简洁的摘要形式,保留关键信息(如用户偏好、重要决策、待解决问题等),同时丢弃冗余的寒暄和重复内容。这样既能维持对话的连贯性,又能为新的交互留出足够空间。
 
-**工具摘要:**
+<strong>工具摘要:</strong>
 工具调用往往会返回大量的原始数据(如完整的API响应、数据库查询结果等)。通过工具摘要,可以提取和保留最相关的结果字段,过滤掉元数据、调试信息等非必要内容。例如,天气API可能返回详细的气象参数,但摘要后只保留温度、天气状况等核心信息,大幅减少token消耗。
 
 #### 上下文修剪
 
-**基于规则的修剪:**
+<strong>基于规则的修剪:</strong>
 可以使用硬编码启发式方法来主动删除过时或低优先级的上下文。常见策略包括:
 - 从对话历史中删除较旧的消息,保留最近N轮对话
 - 移除已完成的子任务记录,只保留当前任务相关信息
 - 删除过期的临时数据或已失效的工具调用结果
 
-**智能修剪:**
+<strong>智能修剪:</strong>
 更高级的方法可以基于相关性评分来动态选择保留哪些上下文片段。通过语义相似度计算或重要性打分,优先保留与当前任务最相关的信息,自动淘汰相关度低的历史内容。
 
 
@@ -344,26 +344,26 @@ Agent 把新发生的上下文(new context)与已有的记忆(existing mem
 
 ![alt text](./images/Extra02-figures/image-10.png)
 
-**关注点分离:**
+<strong>关注点分离:</strong>
 将复杂的大任务拆分成多个独立的子任务,每个子任务由专门的Agent负责。这种设计遵循单一职责原则,使每个Agent专注于特定领域,提高整体系统的可维护性和可扩展性。
 
-**Agent隔离特性:**
+<strong>Agent隔离特性:</strong>
 每个子Agent拥有独立的资源和配置:
-- **专用工具集**:每个Agent只能访问完成其任务所需的特定工具,避免工具泛滥导致的选择困难
-- **独立系统指令**:针对特定任务定制的系统提示词,明确Agent的角色定位和行为准则
-- **隔离的上下文窗口**:各Agent维护自己的上下文空间,互不干扰,避免无关信息污染
+- <strong>专用工具集</strong>:每个Agent只能访问完成其任务所需的特定工具,避免工具泛滥导致的选择困难
+- <strong>独立系统指令</strong>:针对特定任务定制的系统提示词,明确Agent的角色定位和行为准则
+- <strong>隔离的上下文窗口</strong>:各Agent维护自己的上下文空间,互不干扰,避免无关信息污染
 
-**Agent协作机制:**
+<strong>Agent协作机制:</strong>
 多个Agent之间通过明确的接口进行通信和数据传递,主控Agent或路由层负责任务分配和结果整合,形成协同工作流。
 
 #### 执行环境隔离
 
 ![alt text](./images/Extra02-figures/image-11.png)
 
-**上下文与执行分离:**
+<strong>上下文与执行分离:</strong>
 将代码执行环境与LLM的上下文窗口隔离开来,LLM不需要直接接触所有工具的原始输出数据。
 
-**处理层设计:**
+<strong>处理层设计:</strong>
 在工具执行和LLM之间增加处理层:
 - 工具在独立的沙箱环境中执行,产生原始输出
 - 处理层过滤、转换和摘要原始结果
@@ -395,28 +395,28 @@ Agent 把新发生的上下文(new context)与已有的记忆(existing mem
 
 Jeff主要批评了传统的RAG将"检索(Retrieval)、增强(Augmented)、生成(Generation)"三个不同概念强行捆绑在一起,导致了概念上的混乱和实践上的模糊化。从上下文工程的视角重新审视RAG,可以将其拆解为更清晰的步骤:
 
-**传统RAG vs 上下文工程视角(高级RAG):**
+<strong>传统RAG vs 上下文工程视角(高级RAG):</strong>
 
 | 阶段 | 传统RAG | 上下文工程方法 |
 |------|---------|----------------|
-| **检索** | 简单的向量相似度搜索 | 混合检索:结合向量检索、关键词匹配、重排序等多种策略 |
-| **过滤** | 通常缺失或简陋 | 智能过滤:剔除冗余、过时或与任务无关的内容 |
-| **排序** | 基于单一相似度分数 | 多维度排序:考虑相关性、新鲜度、可信度等因素,优先送入最关键信息 |
-| **评估** | 缺乏系统化评估 | 构建黄金数据集,量化评估检索质量、答案准确性和上下文利用效率 |
+| <strong>检索</strong> | 简单的向量相似度搜索 | 混合检索:结合向量检索、关键词匹配、重排序等多种策略 |
+| <strong>过滤</strong> | 通常缺失或简陋 | 智能过滤:剔除冗余、过时或与任务无关的内容 |
+| <strong>排序</strong> | 基于单一相似度分数 | 多维度排序:考虑相关性、新鲜度、可信度等因素,优先送入最关键信息 |
+| <strong>评估</strong> | 缺乏系统化评估 | 构建黄金数据集,量化评估检索质量、答案准确性和上下文利用效率 |
 
-**核心改进:**
-- **检索策略多样化**:不再依赖单一的向量检索,而是根据任务特点组合使用稠密检索、稀疏检索、语义重排序等技术
-- **上下文质量优先**:强调送入LLM的不是"越多越好",而是"越精准越好",通过过滤和排序确保上下文的高质量
-- **闭环优化**:通过评估数据集持续迭代优化检索策略、过滤规则和排序算法,形成可衡量、可改进的工程化流程
+<strong>核心改进:</strong>
+- <strong>检索策略多样化</strong>:不再依赖单一的向量检索,而是根据任务特点组合使用稠密检索、稀疏检索、语义重排序等技术
+- <strong>上下文质量优先</strong>:强调送入LLM的不是"越多越好",而是"越精准越好",通过过滤和排序确保上下文的高质量
+- <strong>闭环优化</strong>:通过评估数据集持续迭代优化检索策略、过滤规则和排序算法,形成可衡量、可改进的工程化流程
 
 这种视角将RAG从一个黑盒流程转变为可拆解、可优化的上下文工程问题,使其更具可操作性和可扩展性。
 
 因此,上下文工程既是一门系统化的工程实践,也是一门需要权衡取舍的艺术。它要求我们在海量信息中精准地判断以下4个问题:
 
-- **Write(写入)** —— 哪些信息应该纳入上下文?
-- **Select(选择)** —— 哪些内容最相关且必要?
-- **Compress(压缩)** —— 哪些可以摘要或简化?
-- **Isolate(隔离)** —— 哪些需要分离到独立空间?
+- <strong>Write(写入)</strong> —— 哪些信息应该纳入上下文?
+- <strong>Select(选择)</strong> —— 哪些内容最相关且必要?
+- <strong>Compress(压缩)</strong> —— 哪些可以摘要或简化?
+- <strong>Isolate(隔离)</strong> —— 哪些需要分离到独立空间?
 
 只有懂得这些问题,才能实现有效的上下文工程,实现艺术与工程的完美结合。
 

+ 50 - 50
Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md

@@ -13,7 +13,7 @@
 在构建智能体之前,需要先完成必要的插件安装和 MCP 配置。如图1所示,按照图中文字指示一步步安装本章节所需插件。
 
 <div align="center">
-  <img src="./Extra03-figures/image1.jpg" alt="插件安装示意图" width="90%"/>
+  <img src="./images/Extra03-figures/image1.jpg" alt="插件安装示意图" width="90%"/>
   <p>图1 插件安装示意图</p>
 </div>
 
@@ -21,53 +21,53 @@
 
 关于 MCP 的详细原理这里不展开,我们重点演示如何使用云端部署的 MCP 服务。本案例使用国内的魔搭社区 MCP 市场进行演示,具体步骤如下:
 
-**(1) 进入ModelScope社区**:[https://www.modelscope.cn/home](https://www.modelscope.cn/home)
+<strong>(1) 进入ModelScope社区</strong>:[https://www.modelscope.cn/home](https://www.modelscope.cn/home)
 
-**(2) 注册账号并登录**,如图2所示
+<strong>(2) 注册账号并登录</strong>,如图2所示
 
 <div align="center">
-  <img src="./Extra03-figures/image2.jpg" alt="ModelScope注册登录界面" width="90%"/>
+  <img src="./images/Extra03-figures/image2.jpg" alt="ModelScope注册登录界面" width="90%"/>
   <p>图2 ModelScope注册登录界面</p>
 </div>
 
-**(3) 进入高德地图MCP配置页面**
+<strong>(3) 进入高德地图MCP配置页面</strong>
    - 登录后,按照图3所示,一步步点击进入高德地图MCP配置页面
    - 页面应如图4所示
 
 <div align="center">
-  <img src="./Extra03-figures/image3.jpg" alt="高德地图MCP入口指引" width="90%"/>
+  <img src="./images/Extra03-figures/image3.jpg" alt="高德地图MCP入口指引" width="90%"/>
   <p>图3 高德地图MCP入口指引</p>
 </div>
 
 <div align="center">
-  <img src="./Extra03-figures/image4.jpg" alt="高德地图MCP配置页面" width="90%"/>
+  <img src="./images/Extra03-figures/image4.jpg" alt="高德地图MCP配置页面" width="90%"/>
   <p>图4 高德地图MCP配置页面</p>
 </div>
 
-**(4) 进入高德开放平台**:[https://console.amap.com/dev/index](https://console.amap.com/dev/index)
+<strong>(4) 进入高德开放平台</strong>:[https://console.amap.com/dev/index](https://console.amap.com/dev/index)
    - 按照图5中文字指示新建应用
 
 <div align="center">
-  <img src="./Extra03-figures/image5.jpg" alt="高德开放平台新建应用" width="90%"/>
+  <img src="./images/Extra03-figures/image5.jpg" alt="高德开放平台新建应用" width="90%"/>
   <p>图5 高德开放平台新建应用</p>
 </div>
 
-**(5) 创建api_key**
+<strong>(5) 创建api_key</strong>
    - 如图6所示,一步步创建api_key
    - 将创建好的api_key输入图4的红框中,即可显示配置成功
    - 配置成功页面如图7所示
 
 <div align="center">
-  <img src="./Extra03-figures/image6.jpg" alt="创建api_key步骤" width="90%"/>
+  <img src="./images/Extra03-figures/image6.jpg" alt="创建api_key步骤" width="90%"/>
   <p>图6 创建api_key步骤</p>
 </div>
 
 <div align="center">
-  <img src="./Extra03-figures/image7.jpg" alt="MCP配置成功页面" width="90%"/>
+  <img src="./images/Extra03-figures/image7.jpg" alt="MCP配置成功页面" width="90%"/>
   <p>图7 MCP配置成功页面</p>
 </div>
 
-**至此,整个高德地图MCP配置完成!**
+<strong>至此,整个高德地图MCP配置完成!</strong>
 
 ## 3. Agent设计与效果展示
 
@@ -82,7 +82,7 @@
 整个智能体的编排架构如图8所示。
 
 <div align="center">
-  <img src="./Extra03-figures/image8.jpg" alt="智能体编排架构图" width="90%"/>
+  <img src="./images/Extra03-figures/image8.jpg" alt="智能体编排架构图" width="90%"/>
   <p>图8 智能体编排架构图</p>
 </div>
 
@@ -92,12 +92,12 @@
 - 按照图9及图10,一步步创建Chatflow空白应用
 
 <div align="center">
-  <img src="./Extra03-figures/image9.jpg" alt="创建Chatflow步骤1" width="90%"/>
+  <img src="./images/Extra03-figures/image9.jpg" alt="创建Chatflow步骤1" width="90%"/>
   <p>图9 创建Chatflow步骤1</p>
 </div>
 
 <div align="center">
-  <img src="./Extra03-figures/image10.jpg" alt="创建Chatflow步骤2" width="90%"/>
+  <img src="./images/Extra03-figures/image10.jpg" alt="创建Chatflow步骤2" width="90%"/>
   <p>图10 创建Chatflow步骤2</p>
 </div>
 
@@ -106,7 +106,7 @@
 - 分类器所填内容如图11所示
 
 <div align="center">
-  <img src="./Extra03-figures/image11.jpg" alt="问题分类器配置" width="80%"/>
+  <img src="./images/Extra03-figures/image11.jpg" alt="问题分类器配置" width="80%"/>
   <p>图11 问题分类器配置</p>
 </div>
 
@@ -114,17 +114,17 @@
 
 这是一个基础的对话模块,配置大语言模型和时间工具,作为兜底的通用问答服务。
 
-**配置说明**
+<strong>配置说明</strong>
 - 配置说明及连线参考图12
 - 具体flow中各节点分别为"开始-问题分类器-LLM-直接回复"
-- **后续我们直接用节点flow进行说明每个模块的flow**
+- <strong>后续我们直接用节点flow进行说明每个模块的flow</strong>
 
 <div align="center">
-  <img src="./Extra03-figures/image12.jpg" alt="日常助手模块配置" width="90%"/>
+  <img src="./images/Extra03-figures/image12.jpg" alt="日常助手模块配置" width="90%"/>
   <p>图12 日常助手模块配置</p>
 </div>
 
-**LLM节点的system_prompt如下**
+<strong>LLM节点的system_prompt如下</strong>
 ```
 # Role: 日常问题咨询专家
 
@@ -185,11 +185,11 @@
 作为日常问题咨询专家,你必须遵守上述Rules,按照Workflows执行任务。
 ```
 
-**演示效果**
+<strong>演示效果</strong>
 如图13所示:
 
 <div align="center">
-  <img src="./Extra03-figures/image13.png" alt="日常助手演示效果" width="80%"/>
+  <img src="./images/Extra03-figures/image13.png" alt="日常助手演示效果" width="80%"/>
   <p>图13 日常助手演示效果</p>
 </div>
 
@@ -197,10 +197,10 @@
 
 根据 OpenAI 的数据报告,超过60%的用户使用 ChatGPT 进行文本优化相关任务,包括润色、修改、扩写、缩写等。因此,文案优化是高频需求场景,我们将其作为第二个核心功能模块。
 
-**具体配置**
+<strong>具体配置</strong>
 - 具体flow中各节点分别为"开始-问题分类器-LLM-直接回复",同(3)
 
-**LLM节点的system_prompt如下**
+<strong>LLM节点的system_prompt如下</strong>
 ```
 # 一、 角色人设(Role)
 你是一位专业的文案优化专家,拥有丰富的营销文案写作和优化经验,擅长提升文案的吸引力、转化率和可读性。你的视角是站在目标受众和营销目标的角度,专业度边界限于文案优化领域,不涉及技术实现或产品开发。
@@ -230,11 +230,11 @@
 ```
 
 
-**演示效果**
+<strong>演示效果</strong>
 如图14所示:
 
 <div align="center">
-  <img src="./Extra03-figures/image14.png" alt="文案优化演示效果" width="80%"/>
+  <img src="./images/Extra03-figures/image14.png" alt="文案优化演示效果" width="80%"/>
   <p>图14 文案优化演示效果</p>
 </div>
 
@@ -242,7 +242,7 @@
 
 图片和视频生成是另一个高频应用场景。随着豆包生图、Google Imagen 等模型的进化,以及可灵、Google Veo 3、OpenAI Sora 2 等视频生成技术的突破,多模态内容生成的质量已达到实用水平。
 
-**图片生成配置**
+<strong>图片生成配置</strong>
 - 本案例使用豆包插件实现图片和视频生成
 - 关于豆包插件的图片、视频生成权限及api_key获取,请参考这篇blog,讲解的极其清晰,建议直接看blog中的第3、4部分:
   [https://blog.csdn.net/sjkflw121150/article/details/148480867#:~:text=3.-,%E8%B0%83%E7%94%A8Doubao%E6%96%87%E7%94%9F%E5%9B%BE%E5%B7%A5%E5%85%B7,-%E8%B0%83%E7%94%A8%20Doubao](https://blog.csdn.net/sjkflw121150/article/details/148480867#:~:text=3.-,%E8%B0%83%E7%94%A8Doubao%E6%96%87%E7%94%9F%E5%9B%BE%E5%B7%A5%E5%85%B7,-%E8%B0%83%E7%94%A8%20Doubao)
@@ -250,32 +250,32 @@
 - flow中各节点分别为"开始-问题分类器-豆包T2I-直接回复"
 
 <div align="center">
-  <img src="./Extra03-figures/image15.jpg" alt="豆包生图flow配置" width="90%"/>
+  <img src="./images/Extra03-figures/image15.jpg" alt="豆包生图flow配置" width="90%"/>
   <p>图15 豆包生图flow配置</p>
 </div>
 
-**生图效果**
+<strong>生图效果</strong>
 如图16所示:
 
 <div align="center">
-  <img src="./Extra03-figures/image16.png" alt="豆包生图效果展示" width="80%"/>
+  <img src="./images/Extra03-figures/image16.png" alt="豆包生图效果展示" width="80%"/>
   <p>图16 豆包生图效果展示</p>
 </div>
 
-**视频生成配置**
+<strong>视频生成配置</strong>
 - 视频生成与图片生成同理,火山引擎中开通文生视频权限即可,见图17的说明
 - 文生视频flow中各节点分别为"开始-问题分类器-豆包T2V-直接回复"
 
 <div align="center">
-  <img src="./Extra03-figures/image17.jpg" alt="文生视频权限开通" width="90%"/>
+  <img src="./images/Extra03-figures/image17.jpg" alt="文生视频权限开通" width="90%"/>
   <p>图17 文生视频权限开通</p>
 </div>
 
-**生视频效果**
+<strong>生视频效果</strong>
 如图18所示:
 
 <div align="center">
-  <img src="./Extra03-figures/image18.png" alt="豆包生视频效果展示" width="80%"/>
+  <img src="./images/Extra03-figures/image18.png" alt="豆包生视频效果展示" width="80%"/>
   <p>图18 豆包生视频效果展示</p>
 </div>
 
@@ -283,7 +283,7 @@
 
 在前面我们已经完成了 MCP 的配置,现在将其集成到智能体中。
 
-**配置步骤**(参考图19):
+<strong>配置步骤</strong>(参考图19):
 
 1. 选择支持 MCP 调用的Agent节点
 2. 选择 ReAct 模式
@@ -292,38 +292,38 @@
 5. 填写相应的提示词
 
 <div align="center">
-  <img src="./Extra03-figures/image19.jpg" alt="MCP工具集成配置步骤" width="90%"/>
+  <img src="./images/Extra03-figures/image19.jpg" alt="MCP工具集成配置步骤" width="90%"/>
   <p>图19 MCP工具集成配置步骤</p>
 </div>
 
-**具体配置**
+<strong>具体配置</strong>
 - 最后Agent节点填写信息可参考图20
 - MCP服务调用的flow中各节点分别为"开始-问题分类器-Agent-直接回复"
 
 <div align="center">
-  <img src="./Extra03-figures/image20.jpg" alt="Agent节点配置详情" width="50%"/>
+  <img src="./images/Extra03-figures/image20.jpg" alt="Agent节点配置详情" width="50%"/>
   <p>图20 Agent节点配置详情</p>
 </div>
 
-**效果展示**
+<strong>效果展示</strong>
 - 高德助手效果:如图21所示
 
 <div align="center">
-  <img src="./Extra03-figures/image21.png" alt="高德助手效果展示" width="80%"/>
+  <img src="./images/Extra03-figures/image21.png" alt="高德助手效果展示" width="80%"/>
   <p>图21 高德助手效果展示</p>
 </div>
 
 - 饮食助手效果:如图22所示
 
 <div align="center">
-  <img src="./Extra03-figures/image22.png" alt="饮食助手效果展示" width="80%"/>
+  <img src="./images/Extra03-figures/image22.png" alt="饮食助手效果展示" width="80%"/>
   <p>图22 饮食助手效果展示</p>
 </div>
 
 - 新闻助手效果:如图23所示
 
 <div align="center">
-  <img src="./Extra03-figures/image23.png" alt="新闻助手效果展示" width="50%"/>
+  <img src="./images/Extra03-figures/image23.png" alt="新闻助手效果展示" width="50%"/>
   <p>图23 新闻助手效果展示</p>
 </div>
 
@@ -341,11 +341,11 @@
 配置数据库连接信息(IP地址、数据库名称、端口、账号、密码等),如图24所示。查询结果需要通过大模型节点进行整理,转换为易于理解的自然语言输出。
 
 <div align="center">
-  <img src="./Extra03-figures/image24.png" alt="数据库配置" width="50%"/>
+  <img src="./images/Extra03-figures/image24.png" alt="数据库配置" width="50%"/>
   <p>图24 数据库配置</p>
 </div>
 
-**提示词设置:**
+<strong>提示词设置:</strong>
 ```
 # 一、 角色人设(Role)
 您是一位专业的数据查询师,擅长数据整理,具有清晰的逻辑思维和简洁表达能力。
@@ -373,11 +373,11 @@
 效果展示如图25所示:
 
 <div align="center">
-  <img src="./Extra03-figures/image25.png" alt="数据查询助手效果" width="80%"/>
+  <img src="./images/Extra03-figures/image25.png" alt="数据查询助手效果" width="80%"/>
   <p>图25 数据查询助手</p>
 </div>
 
-**提示词设置:**
+<strong>提示词设置:</strong>
 ```
 # 一、 角色人设(Role)
 你是一位专业的数据分析师,具备数据整理、清洗和可视化能力,能够从原始数据中提取关键信息并转化为直观的可视化展示。
@@ -407,7 +407,7 @@
 ```
 
 <div align="center">
-  <img src="./Extra03-figures/image26.png" alt="数据分析助手效果" width="80%"/>
+  <img src="./images/Extra03-figures/image26.png" alt="数据分析助手效果" width="80%"/>
   <p>图26 数据分析助手</p>
 </div>
 
@@ -415,7 +415,7 @@
 
 ---
 
-**至此,我们完成了一个功能全面的超级智能体个人助手。**
+<strong>至此,我们完成了一个功能全面的超级智能体个人助手。</strong>
 
 该助手涵盖了生活的多个方面:
 - 需要新衣服时,可以让豆包生成设计
@@ -423,7 +423,7 @@
 - 不知道吃什么时,可以获取饮食推荐
 - 想了解学习情况时,可以进行数据分析
 
-**这个智能体能够处理各类工作和生活任务,期待看到大家搭建出更多有创意的私人智能体助手。**
+<strong>这个智能体能够处理各类工作和生活任务,期待看到大家搭建出更多有创意的私人智能体助手。</strong>
 
 ## 参考文献
 1. ModelScope社区. https://www.modelscope.cn/home

+ 40 - 40
Extra-Chapter/Extra04-DatawhaleFAQ.md

@@ -10,7 +10,7 @@
 
 ## 1. 多智能体架构与并行调度
 
-**Q1. 多智能体系统如何实现“多线程并行”?任务规划 Agent 拆出的可并行步骤,怎样让多个执行 Agent 自己认领任务并自动处理依赖?有没有现成框架?**
+<strong>Q1. 多智能体系统如何实现“多线程并行”?任务规划 Agent 拆出的可并行步骤,怎样让多个执行 Agent 自己认领任务并自动处理依赖?有没有现成框架?</strong>
 
 - 要点整理:
   - 先由「任务规划 Agent」做任务依赖拆分,形成可并行和有依赖的子任务。
@@ -24,14 +24,14 @@
 
 ### 2.1 主流框架与 Hello-Agents 的定位
 
-**Q2. 目前主流 Agents 框架有哪些?Hello-Agents 主要解决什么问题?**
+<strong>Q2. 目前主流 Agents 框架有哪些?Hello-Agents 主要解决什么问题?</strong>
 
 - 要点整理:
   - 主流框架的系统对比与更新节奏在课程第六章集中讨论,这里不重复列举。
-  - **Hello-Agents 的定位**:以教学与学习为主,强调“结构清晰 + 可落地 + 便于举一反三”,帮助初学者建立完整的 Agent 知识与实践框架。
+  - <strong>Hello-Agents 的定位</strong>:以教学与学习为主,强调“结构清晰 + 可落地 + 便于举一反三”,帮助初学者建立完整的 Agent 知识与实践框架。
 - 课程指引:第六章「框架开发实践」。
 
-**Q7. Hello-Agents 看起来功能很全,如果想用于生产,大概还需要补哪些能力?**
+<strong>Q7. Hello-Agents 看起来功能很全,如果想用于生产,大概还需要补哪些能力?</strong>
 
 - 要点整理:
   - 框架本身偏“教学 +可用”,真正生产落地还需要结合业务做二次开发。
@@ -43,42 +43,42 @@
 
 ### 2.2 Hello-Agents 与 LangGraph / 其他框架的联动
 
-**Q4. Hello-Agents 如何和 LangGraph 联合使用?是谁调用谁?**
+<strong>Q4. Hello-Agents 如何和 LangGraph 联合使用?是谁调用谁?</strong>
 
-**Q11 / Q15. 想知道如何用 A2A 让 Hello-Agents 和 LangGraph 联合起来?**
+<strong>Q11 / Q15. 想知道如何用 A2A 让 Hello-Agents 和 LangGraph 联合起来?</strong>
 
 - 要点整理(合并回答):
-  - 可以用 **A2A 协议 + Agent Card**,把「一个框架里的 Agent」暴露成另一个框架可调用的“远程能力”。
+  - 可以用 <strong>A2A 协议 + Agent Card</strong>,把「一个框架里的 Agent」暴露成另一个框架可调用的“远程能力”。
   - 类比 Function Calling:LangGraph 的节点可以把 Hello-Agents 中的 Agent 当作“远程函数”来调用,反之亦可以。
 - 课程指引:第十章「智能体通信协议」。第六章「框架开发实践」。
 
-**Q17. 学习过程中会介绍 DeepResearch 和其他开源 / 现成框架吗?**
+<strong>Q17. 学习过程中会介绍 DeepResearch 和其他开源 / 现成框架吗?</strong>
 
 - 要点整理:
   - DeepResearch属于Workflow内容,将在后续补充。
-  - 框架之类相关内容集中在 **第五章、第六章**,从“单框架”到“多框架生态”都会涉及。
+  - 框架之类相关内容集中在 <strong>第五章、第六章</strong>,从“单框架”到“多框架生态”都会涉及。
 - 课程指引:第五章、 第六章(框架与应用案例)。
 
-**Q18. 用 LangGraph 写 Agent 时感觉更像“大模型工作流脚本”,真正落地成项目需要考虑什么?课程里有吗?**
+<strong>Q18. 用 LangGraph 写 Agent 时感觉更像“大模型工作流脚本”,真正落地成项目需要考虑什么?课程里有吗?</strong>
 
 - 要点整理:
   - 从“脚本”到“项目”要多考虑:模块边界、配置管理、监控和评估、错误恢复、以及团队协作等工程问题。
-  - 课程 **第四部分** 专门带大家从零构建一个完整项目,可以对照实践。
+  - 课程 <strong>第四部分</strong> 专门带大家从零构建一个完整项目,可以对照实践。
 - 课程指引:第四部分「构建项目」。
 
 ### 2.3 通信协议:A2A & ANP
 
-**Q5. A2A 和 ANP 讲得太快了,能不能更详细一些,并配上代码示例?**
+<strong>Q5. A2A 和 ANP 讲得太快了,能不能更详细一些,并配上代码示例?</strong>
 
 - 要点整理:
   - 课程中会从「动机 → 抽象 → 协议字段 → 代码示例」逐步展开。
   - 推荐补充阅读 Datawhale《动手学 Agent 应用开发》中「智能体通信协议」一章(ANP 社区作者的讲解)。
 - 课程指引:第十章;可在 README 的“扩展阅读”中链接到 Datawhale 官方文档。
 
-**Q6. 实战时是更推荐本地部署,还是直接用 API?**
+<strong>Q6. 实战时是更推荐本地部署,还是直接用 API?</strong>
 
 - 要点整理:
-  - 课程 **第七章** 同时给出两种路线:本地部署和云端 API。
+  - 课程 <strong>第七章</strong> 同时给出两种路线:本地部署和云端 API。
   - 学习阶段:优先 API(门槛低),需要控制成本或离线部署时再考虑本地。
   - 课程指引:第十章
 
@@ -93,14 +93,14 @@
 
 ## 3. 课程定位、学习路径与适合人群
 
-**Q9. 后续课程会放在哪些平台?**
+<strong>Q9. 后续课程会放在哪些平台?</strong>
 
 - 要点整理:
   - Github 仓库(课程代码与文档)  
   - Datawhale B 站(视频)  
   - Datawhale 官网(图文课程入口)  
 
-**Q10. 完全零基础适合学吗?**
+<strong>Q10. 完全零基础适合学吗?</strong>
 
 - 要点整理:
   - 可以学,但需要「慢一点 + 多看代码拆解」。
@@ -115,13 +115,13 @@
     6. 🔗 [第五章 基于低代码平台的智能体搭建](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter5/第五章%20基于低代码平台的智能体搭建.md)
     7. 🔗 [第六章 框架应用开发实践](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter6/第六章%20框架开发实践.md)
 
-**Q12. 课程 1.1 和 2.1 看起来有点像,它们各自的侧重点是什么?**
+<strong>Q12. 课程 1.1 和 2.1 看起来有点像,它们各自的侧重点是什么?</strong>
 
 - 要点整理:
-  - **2.1**:按发展时间线系统梳理 Agent,并扩展到专家系统等案例,更偏“历史脉络 + 全景视角”。  
-  - **1.1**:作为开篇导入,简单介绍基本概念与背景。
+  - <strong>2.1</strong>:按发展时间线系统梳理 Agent,并扩展到专家系统等案例,更偏“历史脉络 + 全景视角”。  
+  - <strong>1.1</strong>:作为开篇导入,简单介绍基本概念与背景。
 
-**Q13. 已经在工作中的同学怎么学?学完之后在工作中怎么用?和 n8n 这类工作流工具有什么区别?**
+<strong>Q13. 已经在工作中的同学怎么学?学完之后在工作中怎么用?和 n8n 这类工作流工具有什么区别?</strong>
 
 - 要点整理:
   - 学习建议:结合自己业务场景,优先做一个“小而完整”的 Agent 应用,哪怕只是替代一小段工作流程。
@@ -130,21 +130,21 @@
     - Agent:适合更复杂、更不确定的任务,可以在运行中做一定程度的自主决策(调用工具、规划子任务等)。
 - 课程指引:概念章节 + 经典范式与项目实战部分。
 
-**Q14. 课程里有哪些章节是专门讲 Agent 测试与评估的?**
+<strong>Q14. 课程里有哪些章节是专门讲 Agent 测试与评估的?</strong>
 
 - 要点整理:
   - 有单独的评估章节(如第十二章),也会在其他章节中形成“闭环测评”的实践案例。
 - 课程指引:测试与评估专章 + 相关项目实践。
 - 🔗 [第十二章](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter12/第十二章%20智能体性能评估.md)
 
-**Q16. 做课程里的实验,最低硬件配置是什么?需要显卡吗?**
+<strong>Q16. 做课程里的实验,最低硬件配置是什么?需要显卡吗?</strong>
 
 - 要点整理:
-  - **Agentic RL 章节**:建议显存 ≥ 4G 的 GPU 环境体验会更好。
+  - <strong>Agentic RL 章节</strong>:建议显存 ≥ 4G 的 GPU 环境体验会更好。
   - 其他章节使用 API 即可完成全程学习,不强制要求本地 GPU。
 - 课程指引:Agentic RL 相关章节说明。
 
-**Q20. 在读学生适合学习这门课吗?**
+<strong>Q20. 在读学生适合学习这门课吗?</strong>
 
 - 要点整理:
   - 非常适合,把它当作“AI + 软件工程”交叉方向的入门项目。
@@ -156,37 +156,37 @@
 
 ## 4. 知识与工具:RAG / KAG / 知识图谱 / RL 等
 
-**Q3. 搭 Agent 一定要用到 RAG 吗?**
+<strong>Q3. 搭 Agent 一定要用到 RAG 吗?</strong>
 
 - 要点整理:
   - RAG 不是 Agent 的必选项,而是一类常见的“外部知识工具”。
-  - 课程 **第八章** 会从零实现一个 RAG 方案,帮助理解“有 RAG / 无 RAG”在系统设计上的差异。
+  - 课程 <strong>第八章</strong> 会从零实现一个 RAG 方案,帮助理解“有 RAG / 无 RAG”在系统设计上的差异。
 - 课程指引:第八章。
 - 🔗 [第八章 记忆与检索](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter8/第八章%20记忆与检索.md)
 
-**Q21. KAG / 知识图谱和 Agent 有什么关系?**
+<strong>Q21. KAG / 知识图谱和 Agent 有什么关系?</strong>
 
 - 要点整理:
   - 可以把 KAG / 知识图谱理解为 Agent 的一种“工具”或“知识底座”:
     - Agent 负责决策与调用;
     - 知识图谱提供结构化知识与检索能力。
 
-**Q22. RL、LLM、RLHF 按照第 1 章“学习型 Agent 与 LLMs-based Agent”的分类标准,分别属于什么?**
+<strong>Q22. RL、LLM、RLHF 按照第 1 章“学习型 Agent 与 LLMs-based Agent”的分类标准,分别属于什么?</strong>
 
 - 要点整理:
-  - RL、LLM、RLHF 都更像是 Agent 的**组成部分或实现技术**,而不是一个单独的“Agent 类型”。
+  - RL、LLM、RLHF 都更像是 Agent 的<strong>组成部分或实现技术</strong>,而不是一个单独的“Agent 类型”。
   - 例如:LLM 可以作为 Agent 的大脑;RL / RLHF 可以用于训练或微调 Agent 的策略。
 
 ---
 
 ## 5. 性能与上下文管理
 
-**Q19. 复杂任务的系统提示词很长,每次调用 token 很多,导致响应变慢;上下文越长这个问题越严重,该如何平衡?**
+<strong>Q19. 复杂任务的系统提示词很长,每次调用 token 很多,导致响应变慢;上下文越长这个问题越严重,该如何平衡?</strong>
 
 - 要点整理:
   - 关键在于「上下文裁剪与管理」:对话历史、工具调用结果、系统提示等要分层、分级保留。
   - 可以通过“摘要 + 记忆模块 + 检索式上下文”来减轻 token 压力。
-  - 课程 **第九章** 专门讲上下文处理策略。
+  - 课程 <strong>第九章</strong> 专门讲上下文处理策略。
 - 课程指引:第九章。
 - 🔗 [第九章 上下文工程](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter9/第九章%20上下文工程.md)
 
@@ -194,7 +194,7 @@
 
 ## 6. 项目与职业发展
 
-**Q8. 课程里的几个案例项目可以写进简历吗?**
+<strong>Q8. 课程里的几个案例项目可以写进简历吗?</strong>
 
 - 要点整理:
   - 可以,前提是你真正理解并能解释清楚:
@@ -207,7 +207,7 @@
 
 ## 7. 环境配置与模型使用、API调用相关问题
 
-**Q17. 课程中的API是如何设置的,存在调用失败情况**
+<strong>Q17. 课程中的API是如何设置的,存在调用失败情况</strong>
 
 - 要点整理:
   - 课程项目模型API支持:
@@ -222,37 +222,37 @@
     - ![alt text](./images/Extra04-figures/e7dd177f-4867-4af0-bd0e-03771a3a040e.png)
 
 
-**Q18. 在实现ReAct工作流的时候,这个serpApi网页搜索工具还有没有替代的?**
+<strong>Q18. 在实现ReAct工作流的时候,这个serpApi网页搜索工具还有没有替代的?</strong>
 
 - 要点整理:
   - 需要科学上网,无法科学上网更换方案;
   - 可以考虑其他搜索引擎,如:duckduckgo,geoglesearch等。
 
-**Q21. 使用的推理模型只支持流式输出,不能进入智能体的后续循环**
+<strong>Q21. 使用的推理模型只支持流式输出,不能进入智能体的后续循环</strong>
 
 - 要点整理:
   - DeepSeek、Qwen等推理模型默认只提供流式API,需要自行进行正确的拼接而不是 简单的字符串拼接(具体如何拼接可参考第七章)
 
-**Q23. 将记忆跟知识库关联起来,不知道该怎么理解。**
+<strong>Q23. 将记忆跟知识库关联起来,不知道该怎么理解。</strong>
 
 - 要点整理:
   - 我理解的是:打个比方,通常agent有短期记忆和长期记忆,短期记忆就相当于我们一天中干的事情我们可以通过上下文的方式直接作为input输入给模型。但是长期记忆就相当于我们记笔记,我们不能在上下文一下输入这么多信息,所以我们就让做一个工具供给模型调用,模型可以生成一个query 然后通过RAG的方式在我们的知识库当中去调用 也就是长期记忆。
 
-**Q24. 清华源镜像请求错误,403**
+<strong>Q24. 清华源镜像请求错误,403</strong>
 
 - 要点整理:
   - 网络原因,更换中科大:
     - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
     - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
 
-**Q25. 模型API调用401错误**
+<strong>Q25. 模型API调用401错误</strong>
 
 - 要点整理:
   - 模型余额不足,需要充值。
 
 ## 8. 数学基础问题
 
-**Q22. 在概率公式中,如何理解P(w_2∣w_1)**
+<strong>Q22. 在概率公式中,如何理解P(w_2∣w_1)</strong>
 
 - 要点整理:
   - 概率学中的条件概率,即w_1发生的情况下,w_2发生的概率
@@ -261,7 +261,7 @@
 
 ### 9.1 毕业设计相关
 
-**Q26. 提交毕业设计之后,如何在简历和个人仓库里展示?**
+<strong>Q26. 提交毕业设计之后,如何在简历和个人仓库里展示?</strong>
 
 - 要点整理:
   - 详见[第十六章](https://github.com/datawhalechina/hello-agents/blob/main/docs/chapter16/第十六章%20毕业设计.md)中第5节

+ 838 - 0
Extra-Chapter/Extra05-AgentSkills解读.md

@@ -0,0 +1,838 @@
+# Agent Skills 与 MCP:智能体能力扩展的两种范式
+
+## 引言:MCP 之后,我们还需要什么?
+
+在第十章中,我们深入探讨了 MCP(Model Context Protocol)如何通过标准化协议解决智能体与外部工具的连接问题。你已经学会了如何让智能体通过 MCP 访问数据库、文件系统、API 服务等各种资源。让我们回顾一个典型的 MCP 使用场景:
+
+```python
+from hello_agents import ReActAgent, HelloAgentsLLM
+from hello_agents.tools import MCPTool
+
+llm = HelloAgentsLLM()
+agent = ReActAgent(name="数据分析助手", llm=llm)
+
+# 连接到数据库 MCP 服务器
+db_mcp = MCPTool(server_command=["python", "database_mcp_server.py"])
+agent.add_tool(db_mcp)
+
+# 智能体现在可以访问数据库了
+response = agent.run("查询员工表中薪资最高的前10名员工")
+```
+
+这段代码工作得很好,智能体成功连接到了数据库。但当你尝试处理更复杂的任务时,会发现一些微妙的问题:
+
+```python
+# 一个更复杂的需求
+response = agent.run("""
+分析公司内部谁的话语权最高?
+需要综合考虑:
+1. 管理层级和下属数量
+2. 薪资水平和涨薪幅度
+3. 任职时长和稳定性
+4. 跨部门影响力
+""")
+```
+
+这个任务需要执行多次数据库查询,每次查询的结果会影响下一次查询的策略。更关键的是,它需要智能体具备<strong>领域知识</strong>:知道如何衡量"话语权",知道应该从哪些维度分析数据,知道如何组合多个查询结果得出结论。
+
+
+
+此时,你会遇到两个根本性的问题:
+
+<strong>第一个问题是上下文爆炸</strong>。为了让智能体能够灵活查询数据库,MCP 服务器通常会暴露数十甚至上百个工具(不同的表、不同的查询方法)。这些工具的完整 JSON Schema 在连接建立时就会被加载到系统提示词中,可能占用数万个 token。据社区开发者反馈,仅加载一个 Playwright MCP 服务器就会占用 200k 上下文窗口的 8%,这在多轮对话中会迅速累积,导致成本飙升和推理能力下降。
+
+<strong>第二个问题是能力鸿沟</strong>。MCP 解决了"能够连接"的问题,但没有解决"知道如何使用"的问题。拥有数据库连接能力,不等于智能体知道如何编写高效且安全的 SQL;能够访问文件系统,不意味着它理解特定项目的代码结构和开发规范。这就像给一个新手程序员开通了所有系统的访问权限,但没有提供操作手册和最佳实践。
+
+这正是 <strong>Agent Skills</strong> 要解决的核心问题。2025年初,Anthropic 在推出 MCP 之后,进一步提出了 Agent Skills 的概念,引发了业界的广泛关注。有开发者评论说:"Skill 和 MCP 是两种东西,Skill 是领域知识,告诉模型该如何做,本质上是高级 Prompt;而 MCP 对接外部工具和数据。" 也有人认为:"从 Function Call 到 Tool Call 到 MCP 到 Skill,核心大差不差,就是工程实践和表现形式的优化演进。"
+
+那么,Agent Skills 到底是什么?它与 MCP 有何本质区别?两者是竞争关系还是互补关系?本章将深入探讨这些问题。
+
+
+
+## 什么是 Agent Skills?
+
+### 核心设计理念
+
+<strong>Agent Skills 是一种标准化的程序性知识封装格式</strong>。如果说 MCP 为智能体提供了"手"来操作工具,那么 Skills 就提供了"操作手册"或"SOP(标准作业程序)",教导智能体如何正确使用这些工具。
+
+这种设计理念源于一个简单但深刻的洞察:<strong>连接性(Connectivity)与能力(Capability)应该分离</strong>。MCP 专注于前者,Skills 专注于后者。这种职责分离带来了清晰的架构优势:
+
+- <strong>MCP 的职责</strong>:提供标准化的访问接口,让智能体能够"够得着"外部世界的数据和工具
+- <strong>Skills 的职责</strong>:提供领域专业知识,告诉智能体在特定场景下"如何组合使用这些工具"
+
+用一个类比来理解:MCP 像是 USB 接口或驱动程序,它定义了设备如何连接;而 Skills 像是软件应用程序,它定义了如何使用这些连接的设备来完成具体任务。你可以拥有一个功能完善的打印机驱动(MCP),但如果没有告诉你如何在 Word 里设置页边距和双面打印(Skill),你仍然无法高效地完成打印任务。
+
+### 渐进式披露:破解上下文困境
+
+Agent Skills 最核心的创新是<strong>渐进式披露(Progressive Disclosure)机制</strong>。这种机制将技能信息分为三个层次,智能体按需逐步加载,既确保必要时不遗漏细节,又避免一次性将过多内容塞入上下文窗口。
+
+<div align="center">
+  <img src="./images/Extra05-figures/image1.png" alt="渐进式披露三层架构" width="90%"/>
+  <p>图 1 Agent Skills 渐进式披露三层架构</p>
+</div>
+
+
+#### 第一层:元数据(Metadata)
+
+在 Skills 的设计中,每个技能都存放在一个独立的文件夹中,核心是一个名为 `SKILL.md` 的 Markdown 文件。这个文件必须以 YAML 格式的 Frontmatter 开头,定义技能的基本信息。
+
+当智能体启动时,它会扫描所有已安装的技能文件夹,<strong>仅读取每个 `SKILL.md` 的 Frontmatter 部分</strong>,将这些元数据加载到系统提示词中。根据实测数据,每个技能的元数据仅消耗约 <strong>100 个 token</strong>。即使你安装了 50 个技能,初始的上下文消耗也只有约 5,000 个 token。
+
+这与 MCP 的工作方式形成了鲜明对比。在典型的 MCP 实现中,当客户端连接到一个服务器时,通常会通过 `tools/list` 请求获取所有可用工具的完整 JSON Schema,可能立即消耗数万个 token。
+
+#### 第二层:技能主体(Instructions)
+
+当智能体通过分析用户请求,判断某个技能与当前任务高度相关时,它会进入第二层加载。此时,智能体会读取该技能的完整 `SKILL.md` 文件内容,将详细的指令、注意事项、示例等加载到上下文中。
+
+此时,智能体获得了完成任务所需的全部上下文:数据库结构、查询模式、注意事项等。这部分内容的 token 消耗取决于指令的复杂度,通常在 1,000 到 5,000 个 token 之间。
+
+#### 第三层:附加资源(Scripts & References)
+
+对于更复杂的技能,`SKILL.md` 可以引用同一文件夹下的其他文件:脚本、配置文件、参考文档等。智能体<strong>仅在需要时才加载这些资源</strong>。
+
+例如,一个 PDF 处理技能的文件结构可能是:
+
+```
+skills/pdf-processing/
+├── SKILL.md              # 主技能文件
+├── parse_pdf.py          # PDF 解析脚本
+├── forms.md              # 表单填写指南(仅在填表任务时加载)
+└── templates/            # PDF 模板文件
+    ├── invoice.pdf
+    └── report.pdf
+```
+
+在 `SKILL.md` 中,可以这样引用附加资源:
+
+- 当需要执行 PDF 解析时,智能体会运行 `parse_pdf.py` 脚本
+- 当遇到表单填写任务时,才会加载 `forms.md` 了解详细步骤
+- 模板文件只在需要生成特定格式文档时访问
+
+这种设计有两个关键优势:
+
+1. <strong>无限的知识容量</strong>:通过脚本和外部文件,技能可以"携带"远超上下文限制的知识。例如,一个数据分析技能可以附带一个 1GB 的数据文件和一个查询脚本,智能体通过执行脚本来访问数据,而无需将整个数据集加载到上下文中。
+
+2. <strong>确定性执行</strong>:复杂的计算、数据转换、格式解析等任务交给代码执行,避免了 LLM 生成过程中的不确定性和幻觉问题。
+
+### 渐进式披露的效果:从 16k 到 500 Token
+
+社区开发者分享的实践案例充分证明了渐进式披露的威力。在一个真实场景中:
+
+- <strong>传统 MCP 方式</strong>:直接连接一个包含大量工具定义的 MCP 服务器,初始加载消耗 <strong>16,000 个 token</strong>
+- <strong>Skills 包装后</strong>:创建一个简单的 Skill 作为"网关",仅在 Frontmatter 中描述功能,初始消耗仅 <strong>500 个 token</strong>
+
+当智能体确定需要使用该技能时,才会加载详细指令并按需调用底层的 MCP 工具。这种架构不仅大幅降低了初始成本,还使得对话过程中的上下文管理更加精准和高效。
+
+## Agent Skills vs MCP:本质区别与协作关系
+
+现在,我们可以系统地比较这两种技术的本质区别了。
+
+<div align="center">
+  <img src="./images/Extra05-figures/image2.png" alt="MCP与Agent Skills设计哲学对比" width="90%"/>
+  <p>图 2 MCP 与 Agent Skills 设计哲学对比</p>
+</div>
+### 从工程视角理解差异
+
+让我们通过一个具体的例子来理解这种差异。假设你要构建一个智能体来帮助团队进行代码审查:
+
+<strong>MCP 的职责</strong>:
+
+```python
+# MCP 提供对 GitHub 的标准化访问
+github_mcp = MCPTool(server_command=["npx", "-y", "@modelcontextprotocol/server-github"])
+
+# MCP 暴露的工具(简化示例):
+# - list_pull_requests(repo, state)
+# - get_pull_request_details(pr_number)
+# - list_pr_comments(pr_number)
+# - create_pr_comment(pr_number, body)
+# - get_file_content(repo, path, ref)
+# - list_pr_files(pr_number)
+```
+
+MCP 让智能体"能够"访问 GitHub,能够调用这些 API。但它不知道"应该"做什么。
+
+<strong>Skills 的职责</strong>:
+
+```markdown
+---
+name: code-review-workflow
+description: 执行标准的代码审查流程,包括检查代码风格、安全问题、测试覆盖率等
+---
+
+# 代码审查工作流
+
+## 审查清单
+
+当执行代码审查时,按以下步骤进行:
+
+1. **获取 PR 信息**:调用 `get_pull_request_details` 了解变更背景
+2. **分析变更文件**:调用 `list_pr_files` 获取文件列表
+3. **逐文件审查**:
+   - 对于 `.py` 文件:检查是否符合 PEP 8,是否有明显的性能问题
+   - 对于 `.js/.ts` 文件:检查是否有未处理的 Promise,是否使用了废弃的 API
+   - 对于测试文件:验证是否覆盖了新增的代码路径
+4. **安全检查**:
+   - 是否硬编码了敏感信息(密钥、密码)
+   - 是否有 SQL 注入或 XSS 风险
+5. **提供反馈**:
+   - 严重问题:使用 `create_pr_comment` 直接评论
+   - 建议改进:在总结中提出
+
+## 公司特定规范
+
+- 所有数据库查询必须使用参数化查询
+- API 端点必须有权限验证装饰器
+- 新功能必须附带单元测试(覆盖率 > 80%)
+
+## 示例评论模板
+
+**严重问题**:
+
+⚠️ 安全风险:第 45 行直接拼接 SQL 字符串,存在注入风险。
+建议改用参数化查询:`cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))`
+
+```
+
+Skills 告诉智能体"应该"做什么、如何组织审查流程、需要关注哪些公司特定的规范。它是领域知识和最佳实践的容器。
+
+
+
+### 上下文管理策略的本质差异
+
+<div align="center">
+  <img src="./images/Extra05-figures/image3.png" alt="MCP急切加载 vs Skills惰性加载" width="90%"/>
+  <p>图 3 MCP 急切加载 vs Skills 惰性加载对比</p>
+</div>
+
+
+### 互补而非竞争:Skills + MCP 的混合架构
+
+理解了两者的差异后,我们会发现:<strong>Skills 和 MCP 不是竞争关系,而是互补关系</strong>。最佳实践是将两者结合,形成分层架构:
+
+<div align="center">
+  <img src="./images/Extra05-figures/image4.png" alt="Skills + MCP 混合架构" width="90%"/>
+  <p>图 4 Skills + MCP 混合架构设计</p>
+</div>
+<strong>典型工作流</strong>:
+
+1. 用户问:"分析公司内部谁的话语权最高"
+2. <strong>Skills 层</strong>识别这是一个数据分析任务,加载 `mysql-employees-analysis` 技能
+3. <strong>Skills 层</strong>根据技能指令,将任务分解为子步骤:查询管理关系、薪资对比、任职时长等
+4. <strong>MCP 层</strong>执行具体的 SQL 查询,返回结果
+5. <strong>Skills 层</strong>根据技能中的领域知识,解读数据并生成综合分析
+6. 返回结构化的答案给用户
+
+这种架构的优势是:
+
+- <strong>关注点分离</strong>:MCP 专注于"能力",Skills 专注于"智慧"
+- <strong>成本优化</strong>:渐进式加载大幅降低 token 消耗
+- <strong>可维护性</strong>:业务逻辑(Skills)与基础设施(MCP)解耦
+- <strong>复用性</strong>:同一个 MCP 服务器可以被多个 Skills 使用
+
+## 技术实现:如何创建和使用 Skills
+
+### SKILL.md 规范详解
+
+让我们深入了解 `SKILL.md` 文件的标准结构:
+
+```markdown
+---
+# === 必需字段 ===
+name: skill-name
+  # 技能的唯一标识符,使用 kebab-case 命名
+
+description: >
+  简洁但精确的描述,说明:
+  1. 这个技能做什么
+  2. 什么时候应该使用它
+  3. 它的核心价值是什么
+  # 注意:description 是智能体选择技能的唯一依据,必须写清楚!
+
+# === 可选字段 ===
+version: 1.0.0
+  # 语义化版本号
+
+allowed_tools: [tool1, tool2]
+  # 此技能可以调用的工具列表(白名单)
+
+required_context: [context_item1]
+  # 此技能需要的上下文信息
+
+license: MIT
+  # 许可协议
+
+author: Your Name <email@example.com>
+  # 作者信息
+
+tags: [database, analysis, sql]
+  # 便于分类和搜索的标签
+---
+
+# 技能标题
+
+## 概述
+(对技能的详细介绍,包括使用场景、技术背景等)
+
+## 前置条件
+(使用此技能需要的环境配置、依赖项等)
+
+## 工作流程
+(详细的步骤说明,告诉智能体如何执行任务)
+
+## 最佳实践
+(经验总结、注意事项、常见陷阱等)
+
+## 示例
+(具体的使用案例,帮助智能体理解)
+
+## 故障排查
+(常见问题和解决方案)
+```
+
+### 编写高质量 Skills 的原则
+
+根据 Anthropic 官方文档和社区最佳实践,编写有效的 Skills 需要遵循以下原则:
+
+#### 1. 精准的 Description
+
+`description` 是智能体决策的关键。它应该:
+
+- <strong>精确定义适用范围</strong>:避免模糊的描述如"帮助处理数据"
+- <strong>包含触发关键词</strong>:让智能体能够匹配用户意图
+- <strong>说明独特价值</strong>:与其他技能区分开来
+
+❌ <strong>不好的 description</strong>:
+```yaml
+description: 处理数据库查询
+```
+
+✅ <strong>好的 description</strong>:
+```yaml
+description: >
+  将中文业务问题转换为 SQL 查询并分析 MySQL employees 示例数据库。
+  适用于员工信息查询、薪资统计、部门分析、职位变动历史等场景。
+  当用户询问关于员工、薪资、部门的数据时使用此技能。
+```
+
+#### 2. 模块化与单一职责
+
+一个 Skill 应该专注于一个明确的领域或任务类型。如果一个 Skill 试图做太多事情,会导致:
+
+- Description 过于宽泛,匹配精度下降
+- 指令内容过长,浪费上下文
+- 难以维护和更新
+
+<strong>建议</strong>:与其创建一个"通用数据分析"技能,不如创建多个专门的技能:
+- `mysql-employees-analysis`:专门分析 employees 数据库
+- `sales-data-analysis`:专门分析销售数据
+- `user-behavior-analysis`:专门分析用户行为数据
+
+#### 3. 确定性优先原则
+
+对于复杂的、需要精确执行的任务,优先使用脚本而不是依赖 LLM 生成。例如,在数据导出场景中,与其让 LLM 生成 Excel 二进制内容(容易出错),不如编写一个专门的脚本来处理这个任务,SKILL.md 中只需要指导智能体何时调用这个脚本即可。
+
+#### 4. 渐进式披露策略
+
+合理利用三层结构,将信息按重要性和使用频率分层:
+
+- <strong>SKILL.md 主体</strong>:放置核心工作流、常用模式
+- <strong>附加文档</strong>(如 `advanced.md`):放置高级用法、边缘情况
+- <strong>数据文件</strong>:放置大型参考数据,通过脚本按需查询
+
+### 实践案例:MySQL 员工分析 Skill 详解
+
+让我们通过 Anthropic 社区的一个真实案例,了解 Agent Skills 的具体应用。这个技能用于分析 MySQL 官方的 `employees` 示例数据库。
+
+#### 技能文件结构
+
+```
+skills/mysql-employees-analysis/
+├── SKILL.md          # 主技能文件(包含元数据和详细指令)
+└── db_schema.sql     # 数据库结构参考(可选,按需加载)
+```
+
+#### SKILL.md 核心内容示例
+
+这个技能的 Frontmatter(元数据层):
+
+```markdown
+---
+name: mysql-employees-analysis
+description: >
+  将中文业务问题转换为 SQL 查询并分析 MySQL employees 示例数据库。
+  适用于员工信息查询(如"工号12345的员工信息")、
+  薪资统计(如"平均薪资最高的部门")、
+  部门分析(如"各部门人数分布")、
+  职位变动历史(如"某员工的晋升路径")等场景。
+version: 1.0.0
+allowed_tools: [execute_sql]
+tags: [database, mysql, sql, employees, analysis]
+---
+
+# MySQL 员工数据库分析技能
+
+## 概述
+
+这个技能专门用于分析 MySQL 官方提供的 `employees` 示例数据库。
+该数据库包含约 300,000 名虚拟员工的记录,涵盖 1985-2000 年的数据。
+
+**核心能力**:
+- 理解中文自然语言的业务问题
+- 转换为高效的 SQL 查询
+- 执行查询并解读结果
+- 提供业务洞察和数据解读
+
+## 数据库结构
+
+### 核心表结构
+
+| 表名           | 说明         | 关键字段                                                     |
+| -------------- | ------------ | ------------------------------------------------------------ |
+| `employees`    | 员工基本信息 | emp_no, birth_date, first_name, last_name, gender, hire_date |
+| `salaries`     | 薪资历史     | emp_no, salary, from_date, to_date                           |
+| `titles`       | 职位历史     | emp_no, title, from_date, to_date                            |
+| `dept_emp`     | 员工部门关系 | emp_no, dept_no, from_date, to_date                          |
+| `dept_manager` | 部门经理     | emp_no, dept_no, from_date, to_date                          |
+| `departments`  | 部门信息     | dept_no, dept_name                                           |
+
+### 关键约定
+
+⚠️ **重要**:`to_date = '9999-01-01'` 表示"当前有效"的记录。
+查询"当前"状态时(如现任员工、当前薪资),必须加此过滤条件。
+
+完整的表结构参见:`db_schema.sql`
+
+## 工作流程
+
+### 第一步:理解需求
+
+仔细分析用户的中文描述,识别:
+- **查询目标**:要查什么数据?(员工、薪资、部门...)
+- **筛选条件**:有什么限制?(特定部门、时间范围、薪资区间...)
+- **聚合维度**:需要统计吗?(平均值、总数、排名...)
+- **时间范围**:是历史数据还是当前状态?
+
+### 第二步:构建 SQL
+
+根据需求选择合适的查询模式(见下方"常见查询模式")。
+
+**编写原则**:
+1. 使用明确的表别名(如 `e` for employees)
+2. JOIN 时优先使用主键/外键
+3. 注意日期过滤(特别是 `to_date`)
+4. 合理使用索引字段
+5. 大结果集要加 LIMIT
+
+### 第三步:执行查询
+
+调用 `execute_sql` 工具执行构建好的 SQL。
+
+```python
+# 示例调用(智能体会自动转换为工具调用)
+result = execute_sql(query="SELECT ...")
+
+
+### 第四步:解读结果
+
+将查询结果转化为自然语言回答:
+- 用表格呈现结构化数据
+- 突出关键数据点
+- 提供业务洞察(如趋势、异常)
+- 如果结果为空,说明可能的原因
+
+## 常见查询模式
+
+### 模式 1:基础信息查询
+
+
+-- 查询特定员工的基本信息
+SELECT emp_no, CONCAT(first_name, ' ', last_name) AS full_name,
+       gender, birth_date, hire_date
+FROM employees
+WHERE emp_no = <员工号>;
+
+
+### 模式 2:当前状态查询
+
+
+-- 查询当前薪资最高的员工(TOP 10)
+SELECT e.emp_no,
+       CONCAT(e.first_name, ' ', e.last_name) AS name,
+       s.salary
+FROM employees e
+JOIN salaries s ON e.emp_no = s.emp_no
+WHERE s.to_date = '9999-01-01'  -- 当前薪资
+ORDER BY s.salary DESC
+LIMIT 10;
+
+
+### 模式 3:历史趋势分析
+
+
+-- 查询某员工的薪资变化历史
+SELECT emp_no, salary, from_date, to_date,
+       salary - LAG(salary) OVER (ORDER BY from_date) AS increase
+FROM salaries
+WHERE emp_no = <员工号>
+ORDER BY from_date;
+
+
+### 模式 4:跨表关联查询
+
+
+-- 查询各部门的平均薪资(当前)
+SELECT d.dept_name,
+       COUNT(DISTINCT de.emp_no) AS emp_count,
+       ROUND(AVG(s.salary), 2) AS avg_salary
+FROM departments d
+JOIN dept_emp de ON d.dept_no = de.dept_no
+JOIN salaries s ON de.emp_no = s.emp_no
+WHERE de.to_date = '9999-01-01'  -- 当前在职
+  AND s.to_date = '9999-01-01'   -- 当前薪资
+GROUP BY d.dept_name
+ORDER BY avg_salary DESC;
+
+
+### 模式 5:复杂业务分析
+
+
+-- 分析"话语权":综合管理层级、薪资、任职时长
+WITH manager_hierarchy AS (
+    -- 统计每个经理管理的下属数
+    SELECT dm.emp_no, COUNT(de.emp_no) AS subordinate_count
+    FROM dept_manager dm
+    JOIN dept_emp de ON dm.dept_no = de.dept_no
+    WHERE dm.to_date = '9999-01-01'
+      AND de.to_date = '9999-01-01'
+      AND de.emp_no != dm.emp_no
+    GROUP BY dm.emp_no
+),
+current_salary AS (
+    -- 当前薪资
+    SELECT emp_no, salary
+    FROM salaries
+    WHERE to_date = '9999-01-01'
+),
+tenure AS (
+    -- 任职时长(年)
+    SELECT emp_no,
+           TIMESTAMPDIFF(YEAR, hire_date, CURDATE()) AS years_employed
+    FROM employees
+)
+SELECT e.emp_no,
+       CONCAT(e.first_name, ' ', e.last_name) AS name,
+       COALESCE(mh.subordinate_count, 0) AS team_size,
+       cs.salary,
+       t.years_employed,
+       -- 简单的话语权评分(可根据业务调整权重)
+       (COALESCE(mh.subordinate_count, 0) * 10 +
+        cs.salary / 1000 +
+        t.years_employed * 5) AS influence_score
+FROM employees e
+JOIN current_salary cs ON e.emp_no = cs.emp_no
+JOIN tenure t ON e.emp_no = t.emp_no
+LEFT JOIN manager_hierarchy mh ON e.emp_no = mh.emp_no
+WHERE cs.salary > 60000  -- 过滤低薪员工
+ORDER BY influence_score DESC
+LIMIT 20;
+
+
+## 注意事项
+
+### ⚠️ 时间字段的正确处理
+
+- <strong>当前状态</strong>:必须使用 `to_date = '9999-01-01'` 过滤
+- <strong>历史查询</strong>:注意 `from_date` 和 `to_date` 的范围
+- <strong>时间计算</strong>:使用 `TIMESTAMPDIFF`、`DATEDIFF` 等函数
+
+### ⚠️ 性能优化
+
+- <strong>大表 JOIN</strong>:优先使用索引字段(emp_no, dept_no)
+- <strong>聚合查询</strong>:合理使用 GROUP BY 和 HAVING
+- <strong>结果限制</strong>:对于展示类查询,添加 LIMIT 限制
+- <strong>子查询优化</strong>:复杂查询使用 WITH (CTE) 提高可读性和性能
+
+### ⚠️ 数据质量
+
+- <strong>NULL 值处理</strong>:使用 COALESCE 或 IFNULL 处理空值
+- <strong>重复记录</strong>:注意员工可能多次调岗,查询时考虑去重
+- <strong>数据范围</strong>:数据库只包含 1985-2000 年的数据,查询时注意时间边界
+
+## 故障排查
+
+<strong>问题 1:查询结果为空</strong>
+- 检查是否正确使用了 `to_date = '9999-01-01'`
+- 验证员工号或部门号是否存在
+- 检查日期范围是否合理
+
+<strong>问题 2:查询速度慢</strong>
+- 检查是否缺少索引字段的 WHERE 条件
+- 考虑将复杂查询拆分为多步
+- 使用 EXPLAIN 分析查询计划
+
+<strong>问题 3:统计数据不准确</strong>
+- 注意区分"历史"和"当前"状态
+- 检查 JOIN 条件是否遗漏
+- 验证聚合函数的使用是否正确
+```
+
+这个 SKILL.md 文件展示了一个完整技能的结构:
+- 清晰的元数据(智能体用于发现和匹配)
+- 完整的数据库结构说明
+- 详细的工作流程指导
+- 丰富的查询模式示例(可直接复用的 SQL 模板)
+- 实用的注意事项和故障排查
+
+#### 技能的使用效果
+
+当用户向支持 Agent Skills 的智能体(如 Claude Desktop、Claude Code)提问时:
+
+**用户问题**:
+> "分析公司内部谁的话语权最高?需要综合考虑管理层级、薪资水平和任职时长。"
+
+<div align="center">
+  <img src="./images/Extra05-figures/image5.png" alt="Agent Skills工作流程" width="90%"/>
+  <p>图 5 Agent Skills 完整工作流程示意</p>
+</div>
+
+
+**输出示例**:
+
+| 排名 | 员工号 | 姓名                 | 团队规模 | 薪资    | 任职年限 | 影响力评分 |
+| ---- | ------ | -------------------- | -------- | ------- | -------- | ---------- |
+| 1    | 110022 | Margareta Markovitch | 45       | 152,710 | 18       | 692.71     |
+| 2    | 110039 | Vishwani Minakawa    | 38       | 138,273 | 16       | 598.27     |
+| 3    | 110085 | Ebru Alpin           | 32       | 124,054 | 15       | 519.05     |
+
+**关键洞察**:
+1. 话语权最高的员工通常管理大团队(30+人)、薪资前1%(>12万)、任职超15年
+2. 部门经理的影响力远超普通员工,管理规模是关键因素
+3. 长期任职的高薪员工即使不担任管理职务,也具有较强的话语权
+
+整个过程中,技能提供了:
+- **领域知识**:如何衡量"话语权"(管理规模+薪资+任职时长)
+- **技术指导**:如何编写高效的 SQL(使用 CTE、窗口函数、多表 JOIN)
+- **业务理解**:如何解读数据并生成洞察
+
+
+
+### Skills 的分享与复用
+
+Agent Skills 的另一个重要特性是**社区化**。Anthropic 建立了官方的 Skills 仓库:
+
+**官方技能库**:https://github.com/anthropics/skills
+
+截至 2025 年,已有数百个社区贡献的技能,覆盖:
+
+- **开发工具**:前端设计、API 测试、代码审查、Git 工作流
+- **数据分析**:SQL 查询、数据可视化、统计分析
+- **文档处理**:PDF 解析、Markdown 生成、技术文档撰写
+- **业务流程**:项目管理、客户支持、合规审查
+
+使用社区技能非常简单:
+
+```bash
+# 克隆官方技能库
+git clone https://github.com/anthropics/skills.git
+
+# 复制需要的技能到你的项目
+cp -r skills/frontend-design ./my-project/skills/
+
+# 智能体会自动发现并加载
+```
+
+你也可以分享自己的技能:
+
+```bash
+# 发布到 GitHub
+cd my-custom-skill
+git init
+git add SKILL.md
+git commit -m "Add custom SQL analysis skill"
+git remote add origin https://github.com/yourname/my-skill.git
+git push -u origin main
+
+# 其他开发者可以直接使用
+# git clone https://github.com/yourname/my-skill.git
+```
+
+## 行业动态与生态演进
+
+### 标准化进程与厂商支持
+
+Agent Skills 虽然由 Anthropic 提出,但其设计理念正在影响整个行业。
+
+**Anthropic Claude**:
+- Claude Desktop 和 Claude Code 原生支持 Skills
+- 提供官方 SDK 和开发工具
+- 维护官方技能库
+
+**OpenAI 的响应**:
+虽然 OpenAI 尚未官方采用 "Skills" 这个术语,但在 2025 年 3 月的更新中,ChatGPT 引入了类似的概念:
+
+- **Custom Instructions 增强**:支持更复杂的多步骤指令
+- **Memory 与 Context Profiles**:允许用户保存和复用特定领域的知识
+- **GPTs 的"知识库"功能**:可以附加文档和脚本,按需加载
+
+这些功能本质上是 Skills 理念的不同实现形式。
+
+**Google Vertex AI**:
+Google 在 Gemini 模型中引入了 **"Grounding with Functions"**,允许开发者定义"函数包"(Function Packages),每个包包含:
+
+- 函数定义(类似 MCP 的 tools)
+- 使用指南(类似 Skills 的 instructions)
+- 示例(examples)
+
+这种设计与 Skills + MCP 的混合架构高度相似。
+
+
+
+### 分层架构的必然性
+
+综合各方观点,我们认为:**Skills 和 MCP 代表了智能体架构中两个必然分离的层级**。随着智能体系统的复杂度增加,这种分层是不可避免的:
+
+```
+应用层(Application Layer)
+  ↓ Agent Skills
+  ↓ 领域知识、工作流、最佳实践
+
+传输层(Transport Layer)
+  ↓ MCP
+  ↓ 标准化接口、工具调用、资源访问
+
+基础设施层(Infrastructure Layer)
+  ↓ 数据库、API、文件系统、外部服务
+```
+
+这与传统软件架构的演进路径完全一致(从单体到分层到微服务),只是在 AI 领域重新演绎了一遍。
+
+
+
+## 
+
+### 标准化的趋势
+
+随着行业对智能体技术的重视,我们预见以下趋势:
+
+**1. 协议融合**
+
+未来可能出现统一的智能体能力描述协议,融合 MCP 的连接性和 Skills 的知识表达:
+
+```yaml
+# 未来的统一协议示例(假想)
+apiVersion: agent.io/v1
+kind: Capability
+metadata:
+  name: enterprise-data-analysis
+spec:
+  transport:
+    protocol: mcp
+    server: database-mcp-server
+    tools: [query, schema]
+  knowledge:
+    type: skill
+    workflow: data-analysis-workflow.md
+    examples: examples/
+```
+
+**2. 市场化与生态系统**
+
+类似于 NPM、PyPI,未来可能出现智能体能力的包管理系统:
+
+```bash
+# 假想的未来命令
+agent-cli install @anthropic/frontend-design-skill
+agent-cli install @google/data-analysis-suite
+agent-cli install @openai/code-review-assistant
+```
+
+开发者可以发布、分享、售卖自己的 Skills 和 MCP 服务器,形成繁荣的生态系统。
+
+**3. 自动化能力发现**
+
+智能体可能发展出自动发现和学习新能力的机制:
+
+```python
+# 未来的智能体可能具备自主学习能力
+agent = SelfEvolvingAgent()
+
+# 智能体在执行任务时发现缺少某种能力
+response = agent.run("生成 3D 建模文件")
+
+# 智能体自动搜索并安装相关 Skill
+# [内部日志] 检测到未知任务类型:3D建模
+# [内部日志] 搜索技能库...发现 "blender-3d-modeling" skill
+# [内部日志] 请求用户授权安装...已授权
+# [内部日志] 技能安装完成,重新执行任务
+```
+
+### 挑战与风险
+
+与此同时,我们也需要警惕潜在的风险:
+
+<strong>安全性挑战</strong>:
+- Skills 包含可执行脚本,存在代码注入风险
+- MCP 服务器可能暴露敏感数据接口
+- 第三方技能的可信度难以验证
+
+<strong>上下文污染</strong>:
+- 随着 Skills 数量增加,即使是元数据也可能占用大量上下文
+- 需要更智能的技能索引和检索机制
+
+<strong>碎片化风险</strong>:
+- 虽然 MCP 正在标准化,但 Skills 格式尚未统一
+- 不同厂商可能推出不兼容的 Skills 规范
+
+
+
+## 总结
+
+Agent Skills 和 MCP 代表了智能体技术栈中两个关键的抽象层:
+
+- <strong>MCP(Model Context Protocol)</strong>:解决"连接性"问题,是智能体与外部世界交互的标准化接口,相当于"神经系统"或"双手"
+- <strong>Agent Skills</strong>:解决"能力"问题,是领域知识和工作流的封装,相当于"大脑皮层"或"操作手册"
+
+两者不是竞争关系,而是互补关系:
+
+<div align="center">
+  <img src="./images/Extra05-figures/image6.png" alt="MCP与Agent Skills总结对比" width="90%"/>
+  <p>图 6 MCP 与 Agent Skills 全面对比总结</p>
+</div>
+
+
+<strong>关键洞察</strong>:
+
+1. <strong>分层架构是必然趋势</strong>:随着智能体系统复杂度增加,"连接层"和"知识层"的分离是不可避免的
+
+2. <strong>上下文效率是核心矛盾</strong>:Skills 的渐进式披露机制将 token 消耗降低 90% 以上,这是其最大的技术优势
+
+3. <strong>领域知识的民主化</strong>:Skills 让非开发者也能贡献智能体能力,这将极大拓展 AI 应用的边界
+
+4. <strong>混合架构是最佳实践</strong>:在企业级应用中,MCP 提供基础设施连接,Skills 提供业务逻辑,两者结合才能构建高效、可维护的智能体系统
+
+<strong>实践建议</strong>:
+
+- 对于<strong>外部服务连接</strong>(数据库、API、云服务),优先使用 MCP
+- 对于<strong>复杂工作流</strong>(多步骤任务、领域专业知识),优先使用 Skills
+- 在<strong>上下文受限</strong>的场景(长对话、大量工具),使用 Skills 进行渐进式管理
+- 构建<strong>企业级智能体</strong>时,采用 MCP + Skills 的分层架构
+
+通过本章的学习,你应该能够:
+- 理解 Agent Skills 和 MCP 的本质区别与协作关系
+- 掌握 Skills 的渐进式披露机制及其优势
+- 编写高质量的 SKILL.md 文件
+- 在实际项目中合理选择和组合两种技术
+- 构建分层清晰、高效可维护的智能体系统
+
+智能体技术仍在快速演进中。MCP 已成为连接层的事实标准,Skills 的理念也在影响整个行业。掌握这两种技术,将帮助你在 AI 浪潮中构建更强大、更实用的智能体应用。
+
+---
+
+## 参考资料
+
+1. Anthropic Agent Skills 官方文档:https://docs.anthropic.com/en/docs/agent-skills
+2. Anthropic Skills GitHub 仓库:https://github.com/anthropics/skills
+3. Model Context Protocol 规范:https://modelcontextprotocol.io/
+4. Anthropic 博客:Improving Frontend Design Through Skills:https://www.claude.com/blog/improving-frontend-design-through-skills
+5. 第十章:智能体通信协议(hello-agents)

+ 0 - 0
Extra-Chapter/Extra03-figures/image1.jpg → Extra-Chapter/images/Extra03-figures/image1.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image10.jpg → Extra-Chapter/images/Extra03-figures/image10.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image11.jpg → Extra-Chapter/images/Extra03-figures/image11.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image12.jpg → Extra-Chapter/images/Extra03-figures/image12.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image13.png → Extra-Chapter/images/Extra03-figures/image13.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image14.png → Extra-Chapter/images/Extra03-figures/image14.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image15.jpg → Extra-Chapter/images/Extra03-figures/image15.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image16.png → Extra-Chapter/images/Extra03-figures/image16.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image17.jpg → Extra-Chapter/images/Extra03-figures/image17.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image18.png → Extra-Chapter/images/Extra03-figures/image18.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image19.jpg → Extra-Chapter/images/Extra03-figures/image19.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image2.jpg → Extra-Chapter/images/Extra03-figures/image2.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image20.jpg → Extra-Chapter/images/Extra03-figures/image20.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image21.png → Extra-Chapter/images/Extra03-figures/image21.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image22.png → Extra-Chapter/images/Extra03-figures/image22.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image23.png → Extra-Chapter/images/Extra03-figures/image23.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image24.png → Extra-Chapter/images/Extra03-figures/image24.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image25.png → Extra-Chapter/images/Extra03-figures/image25.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image26.png → Extra-Chapter/images/Extra03-figures/image26.png


+ 0 - 0
Extra-Chapter/Extra03-figures/image3.jpg → Extra-Chapter/images/Extra03-figures/image3.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image4.jpg → Extra-Chapter/images/Extra03-figures/image4.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image5.jpg → Extra-Chapter/images/Extra03-figures/image5.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image6.jpg → Extra-Chapter/images/Extra03-figures/image6.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image7.jpg → Extra-Chapter/images/Extra03-figures/image7.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image8.jpg → Extra-Chapter/images/Extra03-figures/image8.jpg


+ 0 - 0
Extra-Chapter/Extra03-figures/image9.jpg → Extra-Chapter/images/Extra03-figures/image9.jpg


BIN
Extra-Chapter/images/Extra05-figures/image1.png


BIN
Extra-Chapter/images/Extra05-figures/image2.png


BIN
Extra-Chapter/images/Extra05-figures/image3.png


BIN
Extra-Chapter/images/Extra05-figures/image4.png


BIN
Extra-Chapter/images/Extra05-figures/image5.png


BIN
Extra-Chapter/images/Extra05-figures/image6.png


+ 8 - 7
README.md

@@ -79,13 +79,14 @@
 
 &emsp;&emsp;欢迎大家将在学习 Hello-Agents 或 Agent 相关技术中的独到见解、实践总结,以 PR 的形式贡献到社区精选。如果是独立于正文的内容,也可以投稿至 Extra-Chapter!<strong>期待你的第一次贡献!</strong>
 
-| 社区精选                                                                                                                                      | 内容总结                 |
-| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
-| [01-Agent面试题总结](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-面试问题总结.md)                          | Agent 岗位相关面试问题   |
-| [01-Agent面试题答案](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-参考答案.md)                              | 相关面试问题答案         |
-| [02-上下文工程内容补充](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)                 | 上下文工程内容扩展       |
-| [03-Dify智能体创建保姆级教程](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify智能体创建保姆级教程 |
-| [04-Hello-agents课程常见问题](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                 | Datawhale课程常见问题    |
+| 社区精选                                                                                                                                      | 内容总结                  |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
+| [01-Agent面试题总结](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-面试问题总结.md)                          | Agent 岗位相关面试问题    |
+| [01-Agent面试题答案](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-参考答案.md)                              | 相关面试问题答案          |
+| [02-上下文工程内容补充](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)                 | 上下文工程内容扩展        |
+| [03-Dify智能体创建保姆级教程](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify智能体创建保姆级教程  |
+| [04-Hello-agents课程常见问题](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                 | Datawhale课程常见问题     |
+| [05-Agent Skills与MCP对比解读](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills解读.md)             | Agent Skills与MCP技术对比 |
 
 ### PDF 版本下载
 

+ 1 - 0
README_EN.md

@@ -86,6 +86,7 @@ If you wish to read locally or contribute content, please refer to the learning
 | [02-Context Engineering Content Supplement](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)              | Context engineering content extension      |
 | [03-Dify Agent Creation Step-by-Step Tutorial](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify Agent Creation Step-by-Step Tutorial  |
 | [04-Hello-agents Course Common Questions](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                      | Datawhale Course Common Questions          |
+| [05-Agent Skills vs MCP Comparison](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills解读.md)                         | Agent Skills vs MCP Technical Comparison   |
 
 ### PDF Version Download
 

+ 8 - 7
docs/README.md

@@ -75,13 +75,14 @@
 
 &emsp;&emsp;欢迎大家将在学习 Hello-Agents 或 Agent 相关技术中的独到见解、实践总结,以 PR 的形式贡献到社区精选。如果是独立于正文的内容,也可以投稿至 Extra-Chapter!<strong>期待你的第一次贡献!</strong>
 
-| 社区精选                                                                                                                                      | 内容总结                 |
-| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
-| [01-Agent面试题总结](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-面试问题总结.md)                          | Agent 岗位相关面试问题   |
-| [01-Agent面试题答案](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-参考答案.md)                              | 相关面试问题答案         |
-| [02-上下文工程内容补充](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)                 | 上下文工程内容扩展       |
-| [03-Dify智能体创建保姆级教程](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify智能体创建保姆级教程 |
-| [04-Hello-agents课程常见问题](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                 | Datawhale课程常见问题    |
+| 社区精选                                                                                                                                      | 内容总结                  |
+| --------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
+| [01-Agent面试题总结](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-面试问题总结.md)                          | Agent 岗位相关面试问题    |
+| [01-Agent面试题答案](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra01-参考答案.md)                              | 相关面试问题答案          |
+| [02-上下文工程内容补充](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)                 | 上下文工程内容扩展        |
+| [03-Dify智能体创建保姆级教程](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify智能体创建保姆级教程  |
+| [04-Hello-agents课程常见问题](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                 | Datawhale课程常见问题     |
+| [05-Agent Skills与MCP对比解读](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills解读.md)             | Agent Skills与MCP技术对比 |
 
 ### PDF 版本下载
 

+ 1 - 0
docs/README_EN.md

@@ -78,6 +78,7 @@
 | [02-Context Engineering Content Supplement](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra02-上下文工程补充知识.md)              | Context engineering content extension      |
 | [03-Dify Agent Creation Step-by-Step Tutorial](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra03-Dify智能体创建保姆级操作流程.md) | Dify Agent Creation Step-by-Step Tutorial  |
 | [04-Hello-agents Course Common Questions](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra04-DatawhaleFAQ.md)                      | Datawhale Course Common Questions          |
+| [05-Agent Skills vs MCP Comparison](https://github.com/datawhalechina/hello-agents/blob/main/Extra-Chapter/Extra05-AgentSkills解读.md)                         | Agent Skills vs MCP Technical Comparison   |
 
 ### PDF Version Download
 

Some files were not shown because too many files changed in this diff