<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Skill on Renxin's Blog</title><link>https://zh.renxinblog.cn/tags/skill/</link><description>Recent content in Skill on Renxin's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Fri, 19 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://zh.renxinblog.cn/tags/skill/index.xml" rel="self" type="application/rss+xml"/><item><title>第九话｜Skill 系统：把做法变成资产</title><link>https://zh.renxinblog.cn/post/c09-skill-system/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://zh.renxinblog.cn/post/c09-skill-system/</guid><description>&lt;img src="https://zh.renxinblog.cn/images/c09-skill-system-cover.png" alt="Featured image of post 第九话｜Skill 系统：把做法变成资产" /&gt;&lt;p&gt;第八话里，工具接入终于有了统一的边界。&lt;/p&gt;
&lt;p&gt;Agent 想查天气，可以调用 MCP Server；想读数据库，也可以通过同一套协议发现和调用工具。工具来自另一个进程、另一种语言，甚至另一个团队时，调用方不必再为每一项能力重写适配代码。&lt;/p&gt;
&lt;p&gt;可一个任务通常不只缺一个工具。&lt;/p&gt;
&lt;p&gt;让 Agent 检查一篇文章，它也许找得到文件检查工具，却不知道应先看 frontmatter 还是标题；它也许发现了错误，却不知道能否直接改原文；它也许完成了几步操作，却没有明确的完成判定。工具越来越多，“应该怎样把事情做完整”反而更值得被固定下来。&lt;/p&gt;
&lt;p&gt;先说结论：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;MCP 解决“Agent 能调用什么”，Skill 解决“Agent 应该按什么方法完成任务”。&lt;/strong&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Skill 不是把 Prompt 写得更长。它把一套经过思考的方法拆成能被发现、按需加载、执行和验证的资源。&lt;/p&gt;
&lt;h2 id="一工具暴露动作skill-组织方法"&gt;一、工具暴露动作，Skill 组织方法
&lt;/h2&gt;&lt;p&gt;假设我们有一个 Markdown 检查工具。它能接收文件路径、返回检查结果，也许还支持修复参数。这些信息足以描述一个动作，却不能自动给出一条可靠的任务路径。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;任务问题&lt;/th&gt;
					&lt;th&gt;单个工具通常能否回答&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;检查哪个文件&lt;/td&gt;
					&lt;td&gt;可以&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;先检查 frontmatter 还是标题&lt;/td&gt;
					&lt;td&gt;不一定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;失败后是否继续&lt;/td&gt;
					&lt;td&gt;不一定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;能否直接修改原文&lt;/td&gt;
					&lt;td&gt;不能替代权限约束&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;什么结果算任务完成&lt;/td&gt;
					&lt;td&gt;需要额外规则&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;这和 Java 服务里已经注册了一组接口很像：&lt;code&gt;checkFrontmatter()&lt;/code&gt;、&lt;code&gt;checkHeading()&lt;/code&gt;、&lt;code&gt;checkLinks()&lt;/code&gt; 都可调用，并不等于“文章质量检查”这个业务流程已经存在。顺序、分支、验收标准和修改权限仍需要被组织起来。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键洞察：工具把能力暴露出来，Skill 把能力组织成方法。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="二一个-skill-到底保存了什么"&gt;二、一个 Skill 到底保存了什么
&lt;/h2&gt;&lt;p&gt;人说“我会检查博客文章”时，脑中通常不只是一句提醒，还包括适用场景、检查步骤、参考标准、可以交给脚本的部分，以及失败时应如何收尾。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://agentskills.io/specification" target="_blank" rel="noopener"
 &gt;Agent Skills Specification&lt;/a&gt; 规定，一个 Skill 至少是包含 &lt;code&gt;SKILL.md&lt;/code&gt; 的目录；&lt;code&gt;scripts/&lt;/code&gt;、&lt;code&gt;references/&lt;/code&gt; 和 &lt;code&gt;assets/&lt;/code&gt; 都是按任务需要才加入的可选资源。真正重要的不是目录长相，而是把原本藏在人脑中的做法，拆成可审阅、可替换的职责。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Skill 把发现、说明、资料、脚本和验证边界组织成能力包" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://zh.renxinblog.cn/images/c09-skill-system-capability-package.svg"&gt;&lt;/p&gt;
&lt;p&gt;图中有一个容易被忽略的顺序：先用 &lt;code&gt;name + description&lt;/code&gt; 判断这个 Skill 是否相关；匹配后才加载 &lt;code&gt;SKILL.md&lt;/code&gt;；执行时再按需要读取参考资料、调用脚本或复用资产。目录的作用不是堆文件，而是让不同类型的知识在恰当的时机进入任务。&lt;/p&gt;
&lt;p&gt;一个过于抽象的写法往往没有可执行性：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gh"&gt;# Markdown 质量检查
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;请认真、全面地检查文章。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;下面这种写法才把“做事方法”落到了可操作的层面：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;name: markdown-quality
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;description: Check Markdown articles for required frontmatter, one H1 title, and a closing summary.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;1.&lt;/span&gt; 读取 &lt;span class="sb"&gt;`references/checklist.md`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;2.&lt;/span&gt; 运行 &lt;span class="sb"&gt;`scripts/validate.py &amp;lt;markdown-file&amp;gt;`&lt;/span&gt;。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;3.&lt;/span&gt; 报告每条失败规则和可操作的修复建议。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;4.&lt;/span&gt; 未经明确请求，不修改文章。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;差别不在于后者更长，而在于它明确了输入、步骤、确定性工具、输出和权限边界。&lt;/p&gt;
&lt;h2 id="三skill-如何被发现又为何不必一次读完"&gt;三、Skill 如何被发现，又为何不必一次读完
&lt;/h2&gt;&lt;p&gt;一个 Agent 不需要在每次任务开始时，把所有 Skill 的全部说明、资料和脚本都塞进上下文。官方 Quickstart 把过程拆成发现、激活和执行：启动时先看到技能的 &lt;code&gt;name&lt;/code&gt; 与 &lt;code&gt;description&lt;/code&gt;；任务匹配后再读取完整 &lt;code&gt;SKILL.md&lt;/code&gt;；真正执行时才访问需要的资源。&lt;a class="link" href="https://agentskills.io/skill-creation/quickstart" target="_blank" rel="noopener"
 &gt;Agent Skills Quickstart&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Skill 的渐进加载：只在任务匹配后加载指令，并按需读取资料和调用脚本" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://zh.renxinblog.cn/images/c09-skill-system-progressive-disclosure.svg"&gt;&lt;/p&gt;
&lt;p&gt;这张图描述的是分层加载，而不是某个模型保证会做出的路由决定。&lt;code&gt;description&lt;/code&gt; 写得太泛，匹配阶段就缺少足够线索；把无关资料全塞进入口文件，又会让每次执行背负不必要的上下文。一个好的描述更像服务注册中心里的服务名片：它不执行业务，却决定调用方能否先找到正确入口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;关键洞察：Skill 的入口要足够具体以便被发现，细节则应在真正需要时才加载。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="四动手运行一个最小-skill-host"&gt;四、动手：运行一个最小 Skill Host
&lt;/h2&gt;&lt;p&gt;这一节不模拟 LLM 推理，也不声称模型一定会选择正确 Skill。它只把一个 Skill Host 的协议边界固定下来：扫描 frontmatter、按 &lt;code&gt;description&lt;/code&gt; 做最小匹配、加载指令、调用确定性验证脚本。&lt;/p&gt;
&lt;p&gt;代码位于 &lt;a class="link" href="https://github.com/renxin2024/GYA/tree/main/c09-skill-system" target="_blank" rel="noopener"
 &gt;GYA 的 &lt;code&gt;c09-skill-system&lt;/code&gt;&lt;/a&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;c09-skill-system/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── main.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── skills/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── markdown-quality/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── SKILL.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ ├── references/checklist.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── scripts/validate.py
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── samples/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── good.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── bad.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行环境只有 Python 3.9+，不依赖第三方包，也不需要 API Key：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/renxin2024/GYA.git
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; GYA/c09-skill-system
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python3 main.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;2026-08-22 在 Python 3.9.6 上的实际输出如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[discover] markdown-quality
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[match] markdown-quality
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[load] SKILL.md + references/checklist.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[validate] good.md -&amp;gt; PASS: frontmatter=ok h1=1 summary=ok
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[validate] bad.md -&amp;gt; FAIL: frontmatter must be delimited by ---; missing closing section: ## 总结
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[validate] passed=1 failed=1 (expected)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;[result] status=PASS
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这里最后的 &lt;code&gt;status=PASS&lt;/code&gt; 不表示两份样例都合格。它表示 Host 的验收条件被满足：合格样例通过，故意损坏的样例被拦截。把“验证器工作正常”和“被验证对象合格”分开，是写 Skill 时很重要的工程习惯。&lt;/p&gt;
&lt;p&gt;如果运行结果不同，先按下面顺序排查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;确认当前目录是 &lt;code&gt;GYA/c09-skill-system&lt;/code&gt;，否则 &lt;code&gt;main.py&lt;/code&gt; 找不到相对路径下的 Skill 和样例。&lt;/li&gt;
&lt;li&gt;确认使用 Python 3.9+；本 demo 使用了 Python 3.9 开始支持的内置泛型类型标注。&lt;/li&gt;
&lt;li&gt;检查 &lt;code&gt;skills/markdown-quality/SKILL.md&lt;/code&gt; 是否保留了 &lt;code&gt;references/checklist.md&lt;/code&gt; 这一引用；demo 会把缺少该引用视为无效 Skill。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="五哪些工作交给模型哪些交给脚本"&gt;五、哪些工作交给模型，哪些交给脚本
&lt;/h2&gt;&lt;p&gt;Skill 不等于“把所有步骤都交给脚本”。模型仍然适合开放判断，例如观点是否清楚、语气是否自然、解释是否遗漏读者前提。脚本更适合结果只有明确对错的事情。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;工作&lt;/th&gt;
					&lt;th&gt;更适合的职责方&lt;/th&gt;
					&lt;th&gt;原因&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;判断文章观点是否清楚&lt;/td&gt;
					&lt;td&gt;模型&lt;/td&gt;
					&lt;td&gt;需要语义理解与上下文判断&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;判断语气是否自然&lt;/td&gt;
					&lt;td&gt;模型&lt;/td&gt;
					&lt;td&gt;需要综合语言和读者语境&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;统计 H1 数量&lt;/td&gt;
					&lt;td&gt;脚本&lt;/td&gt;
					&lt;td&gt;可得到稳定的确定性结果&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;检查 JSON 能否解析&lt;/td&gt;
					&lt;td&gt;脚本&lt;/td&gt;
					&lt;td&gt;成功或失败有明确判定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;检查文件是否存在&lt;/td&gt;
					&lt;td&gt;脚本&lt;/td&gt;
					&lt;td&gt;不需要模型猜测&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;删除文件、发送消息、部署&lt;/td&gt;
					&lt;td&gt;权限系统与人工审批&lt;/td&gt;
					&lt;td&gt;正确性不等于被授权&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;模型处理语义，脚本锁住不应漂移的事实，权限系统控制不可逆影响。Skill 的价值正是在任务层把这三类职责串成一条可检查的方法，而不是把其中任何一类神化成万能方案。&lt;/p&gt;
&lt;h2 id="六promptmemorymcpskill-各自解决什么"&gt;六、Prompt、Memory、MCP、Skill 各自解决什么
&lt;/h2&gt;&lt;p&gt;这几个词经常同时出现在 Agent 架构里，但它们回答的问题不同。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;能力&lt;/th&gt;
					&lt;th&gt;保存或提供什么&lt;/th&gt;
					&lt;th&gt;主要回答的问题&lt;/th&gt;
					&lt;th&gt;不能替代什么&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Prompt&lt;/td&gt;
					&lt;td&gt;当前任务的即时指令与上下文&lt;/td&gt;
					&lt;td&gt;“这次希望我怎样回答？”&lt;/td&gt;
					&lt;td&gt;可复用工作流与长期事实&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Memory&lt;/td&gt;
					&lt;td&gt;过去的事实、偏好或经验&lt;/td&gt;
					&lt;td&gt;“上次我们决定了什么？”&lt;/td&gt;
					&lt;td&gt;工具接入和任务方法&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;MCP&lt;/td&gt;
					&lt;td&gt;可发现、可调用的工具与资源&lt;/td&gt;
					&lt;td&gt;“现在能做什么？”&lt;/td&gt;
					&lt;td&gt;步骤、验收和权限策略&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Skill&lt;/td&gt;
					&lt;td&gt;完成一类任务的方法与边界&lt;/td&gt;
					&lt;td&gt;“这件事应该怎样完成？”&lt;/td&gt;
					&lt;td&gt;模型推理、外部工具本身和授权&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;在一个真实任务里，Memory 可以补充用户偏好，MCP 可以提供读写外部系统的工具，Skill 可以规定检查流程，Agent Loop 负责推进步骤，脚本负责验证局部结果。它们相互协作，但不应互相冒充。&lt;/p&gt;
&lt;h2 id="七从-demo-到生产skill-还要补什么"&gt;七、从 demo 到生产，Skill 还要补什么
&lt;/h2&gt;&lt;p&gt;把 &lt;code&gt;SKILL.md&lt;/code&gt; 写出来只是起点。一个错误的 Skill 可能让 Agent 更稳定地执行错误流程，所以生产环境至少还要补上几件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用真实样例检验它是否会在该触发时被发现；&lt;/li&gt;
&lt;li&gt;用故意失败的样例确认验证器真的能拦住错误；&lt;/li&gt;
&lt;li&gt;为规则变化保留版本和原因；&lt;/li&gt;
&lt;li&gt;将写文件、发消息、发布、部署等高影响动作放在明确的权限边界后；&lt;/li&gt;
&lt;li&gt;记录执行轨迹，把重复失败沉淀为下一版规则。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些是从本文 demo 推导出的工程实践，不代表这个几十行的示例已经具备完整生产能力。它的职责只有一个：让“发现—加载—执行—验证”的边界变得可见、可运行、可讨论。&lt;/p&gt;
&lt;h2 id="结尾方法也应成为可复用的能力"&gt;结尾：方法也应成为可复用的能力
&lt;/h2&gt;&lt;p&gt;第八话解决了工具如何标准化接入；第九话继续回答工具接入之后的事：怎样把经过验证的做法保存下来，让下一次任务不必从零猜测。&lt;/p&gt;
&lt;p&gt;当 Agent 既能调用工具，又能复用方法时，新的追问自然出现：这些推理和行动方式又是怎样一步步演化出来的？下一篇，我们沿着 CoT、ReAct、Toolformer、Reflexion、Voyager 到 SWE-Agent 的线索继续往前看。&lt;/p&gt;
&lt;h2 id="理解检验"&gt;理解检验
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;如果一个 Skill 只有 &lt;code&gt;SKILL.md&lt;/code&gt;，没有脚本和参考资料，它仍然可以成立吗？为什么？&lt;/li&gt;
&lt;li&gt;为什么“验证器通过”和“被验证对象通过”不能混为一谈？&lt;/li&gt;
&lt;li&gt;当一个任务需要读取用户偏好、调用文件工具、并检查输出格式时，Memory、MCP、Skill 和脚本各自承担什么职责？&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://agentskills.io/specification" target="_blank" rel="noopener"
 &gt;Agent Skills Specification&lt;/a&gt;：Skill 的最小目录、frontmatter、可选资源与渐进加载约定。&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://agentskills.io/skill-creation/quickstart" target="_blank" rel="noopener"
 &gt;Agent Skills Quickstart&lt;/a&gt;：发现、激活和执行的最小示例。&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/renxin2024/GYA/tree/main/c09-skill-system" target="_blank" rel="noopener"
 &gt;GYA 第九话 demo&lt;/a&gt;：本文配套的最小 Skill Host；本文运行记录验证日期为 2026-08-22。&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>