The Pragmatic Guide to Agent SkillsAgent Skills 实用指南

It might be hard to believe, but the Agent Skills standard is not even one year old. The original blog post by Anthropic was published in October 2025, first introducing Agent Skills as a Claude Code extension before it became a proper standard in December 2025. The standard proved to be so useful that in a very short time it was adopted by all the major coding agents and agent development frameworks to equip AI models with modular instructions, deterministic scripts, and specialized domain workflows.或许难以置信,但 Agent Skills 标准诞生还不到一年。Anthropic 最初的博文发布于 2025 年 10 月,首次将 Agent Skills 作为 Claude Code 的扩展引入,随后在 2025 年 12 月正式成为标准。该标准被证明非常实用,在极短时间内就被所有主流编码 Agent 和 Agent 开发框架采用,用于为 AI 模型配备模块化指令、确定性脚本和专业领域工作流。
Fast-forward to today, most developers are familiar with skills and the advantages of the progressive disclosure model, but are they using and creating skills effectively? In this article, we are going to explore the main challenges of dealing with skills, from discovery and provenance to development and optimization.快进到今天,大多数开发者都已熟悉这些技能以及渐进式披露模型的优势,但他们是否在有效地使用和创建技能呢?在本文中,我们将探讨处理技能时的主要挑战,从发现和溯源到开发和优化。
All the skills and examples mentioned in this text were tested using Antigravity CLI and Gemini 3.7 Flash, but I encourage you to experiment with them even if you use a different harness and/or model. Without further ado, let’s dive deep into the world of Agent Skills!本文中提到的所有技能和示例均使用 Antigravity CLI 和 Gemini 3.7 Flash 进行了测试,但我鼓励即使您使用不同的工具或模型,也可以尝试一下。废话不多说,让我们深入探索 Agent Skills 的世界吧!
Creating skills vs consuming skills创建技能 vs 使用技能
The evergreen software engineer’s dilemma: should I build my own or procure something ready? There are many approaches to this problem, but I’m going to share my pragmatic view:软件工程师永恒的困境:我应该自己构建,还是采购现成的?针对这个问题有许多方法,但我将分享我的务实观点:

OK, I admit the algorithm is a bit messy, but the bottom line is: unless you have an authoritative source for the skill, or absolute trust that you are not exposing yourself to an attack vector, it is better to build your own.好吧,我承认这个算法有点乱,但底线是:除非你有权威的技能来源,或者绝对信任自己不会暴露于攻击向量之下,否则最好还是自己构建。
The effort of building skills is quite low, so there are very few circumstances where I would advise you against it. The main one would be if you lack the domain knowledge to judge the quality of the skill, as this poses a big risk of creating an echo chamber of bad behaviour.构建技能的工作量相当低,因此我很少建议您不要这样做。主要的情况是,如果您缺乏判断技能质量所需的领域知识,这会带来产生错误行为回音室的巨大风险。
If you know what you are doing, building skills is the ultimate hack to unlock developer productivity with coding agents, and this is why I believe that every serious developer should master the skill of creating skills (pun intended).如果您知道自己在做什么,构建技能是释放编码 Agent 开发效率的终极黑客手段,这就是为什么我认为每一位严肃的开发者都应该掌握“创建技能”这项技能(双关语)。
Mastering the skill of creating skills掌握创建技能的技能
The key to creating useful skills is all about observing agent patterns. You might not be able to come up with a skill after a single coding session, but the more you use agents and the more you observe how they behave, the more you will notice knowledge and behavioural gaps that can be filled with custom skills.创建有用技能的关键在于观察 Agent 的模式。您可能无法在一次编码会话后就想出一个技能,但使用 Agent 的次数越多,观察它们行为的次数越多,您就越会发现可以通过自定义技能来填补的知识和行为空白。
This will become more clear as I present you with some examples, but before I can talk about them, let’s have a look at the different types of skills we can create:当我向您展示一些示例时,这一点会变得更加清晰,但在讨论它们之前,让我们先看看我们可以创建的不同类型的技能:
Level 1: Documentation一级:文档
A skill that explains a particular piece of technology, augmenting or superseding the model’s built-in knowledge. It is very common, for example, that models recommend obsolete libraries or SDKs, or use outdated coding patterns, just because those were prevalent in their training data. Using skills to update the model’s knowledge about a piece of software is one of the most basic uses of the technology.一种解释特定技术的技能,用于增强或取代模型的内置知识。例如,模型推荐过时的库或 SDK,或者使用陈旧的编码模式,仅仅因为这些在它们的训练数据中很普遍,这种情况非常常见。使用技能来更新模型关于某款软件的知识是该技术最基本的用途之一。
The typical format of a documentation skill is a single SKILL.md file with the updated knowledge, showing command lines, snippets of code, and external URLs. Depending on the complexity of the domain, splitting the SKILL.md file into separate reference and/or asset files is ideal to maximise the progressive disclosure potential.文档技能的典型格式是一个包含更新知识的单个 SKILL.md 文件,其中展示命令行、代码片段和外部 URL。根据领域的复杂程度,将 SKILL.md 文件拆分为单独的参考和/或资产文件是最大化渐进式披露潜力的理想做法。
Create this type of skill when you see your agent using obsolete patterns, outdated libraries, old SDK versions, or when it repeatedly generates sub-optimal implementations. Most manufacturer-provided skills fall into this category, like the Google Skills repository that includes skills for most Google products.当您发现 Agent 使用过时的模式、陈旧的库、旧版 SDK,或者反复生成次优实现时,请创建此类技能。大多数制造商提供的技能都属于这一类,例如包含大多数 Google 产品技能的 Google Skills 仓库。
An example of a documentation skill that I created is ebitengineer. This skill was designed after I noticed repeated problems while building 2D games with Ebitengine, like using the incorrect order of matrix operations, poor modularisation, lack of state management, abuse of debug text instead of production fonts and so on.我创建的一个文档技能示例是 ebitengineer。这个技能是在我注意到使用 Ebitengine 构建 2D 游戏时出现重复问题后设计的,例如矩阵运算顺序错误、模块化程度差、缺乏状态管理、滥用调试文本而非生产字体等。
Level 2: Process二级:流程
A skill that enforces a specific process or workflow, such as performing a code review, conducting a security audit, or analysing performance metrics. This type of skill usually bundles not only knowledge but custom scripts or CLI tools to perform tasks, saving the model the effort to build them from scratch every single time you need them.一种强制执行特定流程或工作流的技能,例如执行代码审查、进行安全审计或分析性能指标。这种类型的技能通常不仅捆绑了知识,还捆绑了执行任务的自定义脚本或 CLI 工具,从而节省了模型每次都需要从头构建它们的工作量。
You should create process skills whenever you see yourself instructing the model to do the same task over and over, especially if there are deterministic steps that can be scripted. A few process skills that I use a lot belong to the analytics skill set to collect and analyse data from social networks, Google Analytics, and Google Search Console.每当您发现自己反复指示模型执行同一任务时,都应该创建流程技能,尤其是当存在可以脚本化的确定性步骤时。我经常使用的一些流程技能属于分析技能集,用于收集和分析来自社交网络、Google Analytics 和 Google Search Console 的数据。
Optimising my online presence is an important part of my job (there is little point in producing content that no one sees), so I devised those skills to automate the tasks that I was doing manually by inspecting each platform’s analytics website one-by-one. Now I have a “command centre” powered by those skills, saving precious time that I can dedicate to producing more and better content.优化我的在线形象是我工作的重要组成部分(制作没人看的内容毫无意义),所以我设计了这些技能来自动化我以前手动检查每个平台分析网站时所做的工作。现在,我拥有了一个由这些技能驱动的“指挥中心”,节省了宝贵的时间,我可以将其投入到制作更多、更好的内容中。
Look at your own process. What are the things that you do repeatedly during your work day, week or month? Create skills for those to save you precious time, improve the quality of your work, or both!审视您自己的流程。您在工作日、周或月中反复做的事情有哪些?为这些任务创建技能,以节省宝贵时间,提高工作质量,或两者兼得!
Level 3: Traits三级:特质
A trait skill is one that affects the agent’s personality and/or mode of operation.特质技能是指影响 Agent 个性和/或操作模式的技能。
One famous skill in this category is Matt Pocock’s . It got so popular that most agentic harnesses bundle one version of it out-of-the-box. The purpose of this skill is to encourage the agent to extract knowledge from the user, filling gaps that otherwise would be guessed or, even worse, hallucinated.该类别中一个著名的技能是 Matt Pocock 的。它非常受欢迎,以至于大多数 Agent 工具包都开箱即用地捆绑了一个版本。此技能的目的是鼓励 Agent 从用户那里提取知识,填补原本会被猜测,甚至更糟糕的是产生幻觉的空白。
A few of my favourite trait-based skills are: swarm-coding, double-diamond and uno-reverse.我最喜欢的一些基于特质的技能包括:swarm-coding(群体编码)、double-diamond(双钻模型)和 uno-reverse(反转)。
Swarm coding is the first skill I wrote to tackle orchestrating subagents. I wrote about the whole process of creating it in The Rise of the Subagents, so I encourage you to check that article if you are curious about it.Swarm coding 是我为解决协调子 Agent 问题而编写的第一个技能。我在《子 Agent 的崛起》一文中写了关于创建它的整个过程,如果您对此感到好奇,我建议您查看那篇文章。
Double diamond is the spiritual successor of swarm coding, but includes an inception and a discovery phase. Readers familiar with Agile methodologies will recognise this technique. It is based on the principle of successive phases of divergence and convergence. You diverge to explore the problem space, and then converge into a solution. For example, when planning a major feature across this site, I can kick off the entire exploration with:Double diamond 是 swarm coding 的精神继承者,但包含了一个启动阶段和一个发现阶段。熟悉敏捷方法论的读者会认出这种技术。它基于发散和收敛的连续阶段原则。您发散以探索问题空间,然后收敛到一个解决方案。例如,在规划本网站的一个主要功能时,我可以这样启动整个探索过程:
/double-diamond I would like to plan phase 3 of this website. I want to improve the visualization of skill cards, add metrics, and a like/star button so we can rank skills by popularity.Uno reverse is my own take on having an agent with an adversarial personality, just for the sake of breaking the echo chamber of the agents doing the implementation. The adversarial agent will criticise the implementation and look for opportunities to cut down the bloat, acting as a counter-measure to overengineering. I often use it as a sanity check during architectural reviews:Uno reverse 是我自己的尝试,旨在让 Agent 具有对抗性人格,仅仅是为了打破 Agent 执行实现时的回音室效应。对抗性 Agent 会批评实现并寻找减少冗余的机会,作为防止过度设计的反制措施。我经常在架构审查期间将其用作完整性检查:
Please run a /double-diamond process to refine ADR-0002. At the review phase, use an /uno-reverse agent to antagonise the proposal and present the results.As you can see, these skills can be pretty powerful on their own, but they can get even more interesting when combined with each other. For example, I have lots of fun using /grill-me + /double-diamond + /uno-reverse on the same prompt. This makes the model ask me clarifying questions, go on a research phase to find different implementations and then criticise them to find the optimal solution.如您所见,这些技能本身就很强大,但当它们组合在一起时会变得更加有趣。例如,我在同一个提示词中组合使用 /grill-me + /double-diamond + /uno-reverse,这非常有趣。这会使模型向我提出澄清问题,进入研究阶段以寻找不同的实现,然后批评它们以找到最佳解决方案。
As for the inspiration to create these skills, look for any moments in your career where you learned a (human) skill that helped you or your team improve the quality of your work. Especially since the advent of subagents, we are seeing more and more the use of managerial skills being applied to AI, and this is no coincidence. AI just happens to be as unreliable as we are when left to its own devices.至于创建这些技能的灵感,请回顾您职业生涯中学习(人类)技能并帮助您或您的团队提高工作质量的任何时刻。特别是在子 Agent 出现以来,我们越来越多地看到管理技能被应用于 AI,这绝非巧合。AI 在无人监管时,恰好和我们一样不可靠。
The continuous improvement loop持续改进循环
Creating skills is great, but you will only really unlock the full value of skills if you are continuously improving them. My process is to do a glow-up of my skills almost every time I use them, because I often discover rough edges, gaps and bugs when I use them in a new session. Another excuse to give them a glow-up is when a new model is released, as you would assume the new model will be more capable and upgrade the skill to the best of its capabilities.创建技能很棒,但只有持续改进它们,您才能真正释放技能的全部价值。我的流程是几乎每次使用技能时都会对其进行“美化”,因为我经常在新的会话中使用它们时发现粗糙的边缘、漏洞和错误。给它们美化的另一个借口是当新模型发布时,因为您会假设新模型能力更强,从而将技能升级到其能力的最佳状态。
I do this so often that I created a /skill-optimizer skill. This skill is based on the best practices published at agentskills.io, plus a little of my own taste. It ensures skills have a good progressive disclosure model, using a supporting script to estimate token counts and keep each section in a sensible size. It also optimises the skill description focusing on benefits instead of implementation details. For example, before optimisation my search-analytics skill was full of bloat on how search worked using algorithm X or Y, but this matters very little for the usability of the skill and it was a waste of space. The relevant information in this case is how to load and query the data. Everything else is wasting tokens.我经常这样做,以至于我创建了一个 /skill-optimizer 技能。该技能基于 agentskills.io 上发布的最佳实践,加上我个人的一点偏好。它确保技能具有良好的渐进式披露模型,使用支持脚本来估算 Token 数量并保持每个部分的大小合理。它还优化了技能描述,聚焦于收益而非实现细节。例如,在优化之前,我的 search-analytics 技能充满了关于搜索如何使用 X 或 Y 算法的冗余信息,但这对于技能的可用性几乎没有影响,而且浪费了空间。在这种情况下,相关的信息是如何加载和查询数据。其他一切都是在浪费 Token。
Besides creating skills and optimising them on your own, there is also an automated way of doing this. It is a concept called agent dreaming: the process of extracting lessons from past agent sessions. In Antigravity, you can ask it to dream by using the /learn slash command. When you start a learning session the agent will explore the conversation history for patterns and look for ways where it can improve itself, giving you options to update context files, add or tune configuration guardrails, or generating custom skills. For example, after a long debugging sprint, you could simply run:除了自己创建和优化技能外,还有一种自动化的方法。这是一个称为“Agent 梦境”的概念:从过去的 Agent 会话中提取经验的过程。在 Antigravity 中,您可以使用 /learn 斜杠命令让它进行“梦境”。当您开始学习会话时,Agent 将探索对话历史以寻找模式,并寻找自我改进的方法,为您提供更新上下文文件、添加或调整配置防护栏或生成自定义技能的选项。例如,在漫长的调试冲刺之后,您可以简单地运行:
/learn look at our debugging sessions with Ebitengine matrix transforms and state management. Extract the recurring bugs and fixes into a new documentation skill with clear anti-patterns and examples.Activation: explicit is better than implicit激活:显式优于隐式
I’ve spent more time than I would like to admit trying to fine tune descriptions to ensure skills are always activated when the model needs them. I failed in all my attempts so far. You can get to a point where models activate them more often than not, but in my experience perfect activation rates are still unachievable today.我花的时间比我愿意承认的要多,试图微调描述以确保技能在模型需要时总是被激活。到目前为止,我所有的尝试都失败了。您可以达到一个模型大多数时候都能激活它们的地步,但根据我的经验,完美的激活率在今天仍然无法实现。
This is why I’m importing an old adage from the Zen of Python and changing my own ways of working: explicit is better than implicit. Instead of waiting for the good will of the agent to invoke the skill I want, I tell it exactly what I want invoked and when.这就是为什么我从 Python 之禅中借用了一句老话,并改变了我自己的工作方式:显式优于隐式。与其等待 Agent 的“好意”来调用我想要的技能,不如我明确告诉它我想要调用什么以及何时调用。
In Antigravity we also have the benefit of the automatic mapping of skills to slash commands, so when I type /swarm-coding it immediately invokes the swarm coding skill. Slash notation turns skills into slash commands when they are the first word in a prompt, but this notation also works in the middle of prompts as hints to the model that whatever is prefixed by a slash might be a skill name. For instance, you can append /grill-me at the end of your prompt and the agent will trigger the grill-me skill as well even if technically it is not a slash command. In recent versions of the Antigravity CLI I even noticed that the harness occasionally adds /grill-me automatically to the end of my prompts when my commands are relatively complex or ambiguous.在 Antigravity 中,我们还受益于技能到斜杠命令的自动映射,所以当我输入 /swarm-coding 时,它会立即调用 swarm coding 技能。斜杠符号在技能作为提示词中的第一个词时会将它们转换为斜杠命令,但这种符号在提示词中间也有效,作为对模型的提示,即斜杠前缀的内容可能是技能名称。例如,您可以在提示词末尾附加 /grill-me,即使从技术上讲它不是斜杠命令,Agent 也会触发 grill-me 技能。在 Antigravity CLI 的最新版本中,我甚至注意到,当我的命令相对复杂或模棱两可时,该工具偶尔会自动在我的提示词末尾添加 /grill-me。
The problem of too many skills技能过多的问题
Once you embrace the world of skills, you will eventually get into this situation. As much as the progressive disclosure model is great, it will still suffer from the same fate of context bloat as MCP servers if you keep installing more and more.一旦您拥抱了技能的世界,最终就会陷入这种情况。尽管渐进式披露模型很棒,但如果您不断安装越来越多的技能,它仍然会遭受与 MCP 服务器相同的上下文膨胀命运。
There are two ways of improving this, one that requires active work from you and the other that employs a “higher level of abstraction”.有两种方法可以改善这一点,一种需要您主动工作,另一种采用“更高级别的抽象”。
The first one is simple: do not install skills globally unless absolutely necessary. Skills can either be installed for your user (they will live in your home folder, usually at ~/.agents/skills), or to a workspace (project level, in <project-dir>/.agents/skills).第一种很简单:除非绝对必要,否则不要全局安装技能。技能可以安装在您的用户目录下(它们将驻留在您的主文件夹中,通常位于 ~/.agents/skills),也可以安装到工作区(项目级别,位于 <project-dir>/.agents/skills)。
This solution works at a small to medium scale, but starts posing problems if you have lots of projects with lots of skills in them. How do you keep them all up to date? How do you ensure an improvement in one skill is reflected across all other clients of that skill? Also, should .agents be committed with the repo or not?这个解决方案在小型到中型规模下有效,但如果您有大量项目且其中包含大量技能,就开始出现问题了。如何保持它们全部更新?如何确保一个技能的改进反映在所有其他使用该技能的客户端中?此外,.agents 是否应该提交到仓库中?
I think the optimal solution to this problem is a combination of centralisation (or federation) and tracking provenance. The first part of the solution is a skill catalog. While typical skill sharing relies on git clones or copy-pasting folders, the official Agent Skills standard leaves remote discovery and distribution open to tooling. To solve this, I created an online catalog manifest for skills.danicat.dev that exposes an index over the web. You can inspect the live catalog manifest here: https://skills.danicat.dev/catalog.json.我认为这个问题的最佳解决方案是中心化(或联邦化)与跟踪溯源的结合。解决方案的第一部分是技能目录。虽然典型的技能共享依赖于 git 克隆或复制粘贴文件夹,但官方的 Agent Skills 标准将远程发现和分发留给了工具。为了解决这个问题,我为 skills.danicat.dev 创建了一个在线目录清单,它在网络上公开了一个索引。您可以在此处检查实时目录清单:https://skills.danicat.dev/catalog.json。
A skill catalog solves the problem of discoverability of skills. The idea is that you can point your agents to the catalog and they will be immediately aware of the available skills without needing to install them. This doesn’t solve the context bloat problem though, unless you have a proper “find skill” procedure that skips loading the entire catalog every time you are looking for a new skill.技能目录解决了技能的可发现性问题。其想法是,您可以将 Agent 指向该目录,它们将立即了解可用技能,而无需安装它们。但这并不能解决上下文膨胀问题,除非您有一个适当的“查找技能”程序,可以在您寻找新技能时跳过加载整个目录。
The catalog solves one direction of the information flow — from catalog to skill — but keeping skills up-to-date requires the reverse direction — from skill to catalog. This is what I have been calling “skill provenance”: the source of the skill. The agent skill specification is not prescriptive about provenance, but there are two ways of managing this: 1) an external skill manager that tracks the source of every skill you install, or 2) adding catalog information to the skill metadata. I believe the second option is more elegant as it is “declarative”: no need to figure out what magic is happening under the hood, what you see is what you get. This is a typical example of frontmatter in my skill catalog:目录解决了信息流的一个方向——从目录到技能——但保持技能更新需要反向——从技能到目录。这就是我所说的“技能溯源”:技能的来源。Agent 技能规范对溯源没有规定,但有两种管理方法:1) 一个跟踪您安装的每个技能来源的外部技能管理器,或 2) 将目录信息添加到技能元数据中。我认为第二个选项更优雅,因为它是“声明式”的:无需弄清楚底层发生了什么魔法,所见即所得。这是我技能目录中 frontmatter 的一个典型示例:
---
name: swarm-coding
description: >
Orchestrates multi-agent hierarchical swarms using a divide-and-conquer architecture for complex, multi-system, or orthogonal engineering initiatives (e.g., concurrent backend, frontend, database, QA). Manages hierarchical Lead Agents and Specialists, disjoint work allocations, and strict parent-child communication. Activate whenever the user mentions 'swarm', requests multi-agent team coordination, or needs context isolation across multiple technical domains.
license: Apache-2.0
metadata:
category: agents
tags: "swarm, subagents, parallel, orchestration, strategy, complexity, coordination"
author: Daniela Petruzalek (daniela@danicat.dev)
version: "0.2.0"
catalog: https://skills.danicat.dev
---name, description, license and metadata are the standard fields defined by the spec. While metadata is loosely defined, I decided to follow the recommendation of version and author as standard fields. My own extensions are category, tags and catalog. Category and tags help me with discoverability and classification, while with catalog I can track provenance. This makes it particularly simple to implement a skill manager that keeps my skills up to date: they just need to hit the catalog at the given address and check if the skill version has been updated or not.name、description、license 和 metadata 是规范定义的标准字段。虽然 metadata 定义较为宽松,但我决定遵循 version 和 author 作为标准字段的建议。我自己的扩展是 category、tags 和 catalog。Category 和 tags 帮助我进行可发现性和分类,而通过 catalog 我可以跟踪溯源。这使得实现一个保持技能更新的技能管理器变得特别简单:它们只需要访问给定地址的目录并检查技能版本是否已更新即可。
If you assume that agents will only eventually (as opposed to every session) browse the catalog to cherry pick and install skills, we might overlook the context bloat of loading the entire catalog, but in my mind the ideal scenario would allow a slightly smarter dynamic. Enter kungfu.如果您假设 Agent 只会在最终(而不是每个会话)浏览目录以挑选和安装技能,我们可能会忽略加载整个目录的上下文膨胀,但在我看来,理想的方案应该允许一种稍微智能的动态机制。进入 kungfu。
“I know kung fu.”“我会功夫。”
kungfuis the CLI tool I developed to help me manage my skills. The name comes from the classic scene in The Matrix where Neo has Kung Fu (the martial art) “installed” into his brain. This is the dream I had for my agents: to install on-demand knowledge at any point in time.kungfu 是我开发的 CLI 工具,用于帮助我管理技能。这个名字来自电影《黑客帝国》中的经典场景,Neo 的大脑中被“安装”了功夫(武术)。这就是我为我的 Agent 构想的梦想:在任何时间点按需安装知识。
I have a kungfu skill that teaches the agent how to use the kungfu CLI and this is the only skill I need. If the agent needs a new skill, they can use kungfu find to search the catalog based on name, category, tags or description, with some leeway for typos using Levenshtein distance and "did you mean?" hints. Find will return a list of best matches ranked by score, and if the agent needs any of the skills listed, it can either load them just-in-time (JIT) via kungfu load or learn it permanently via kungfu learn (installing either globally or to the workspace). The image below shows the JIT loading flow:我有一个 kungfu 技能,它教 Agent 如何使用 kungfu CLI,这是我唯一需要的技能。如果 Agent 需要一个新技能,它们可以使用 kungfu find 根据名称、类别、标签或描述搜索目录,并使用 Levenshtein 距离和“您是指?”提示来容忍拼写错误。Find 将返回按分数排名的最佳匹配列表,如果 Agent 需要列出的任何技能,它可以选择通过 kungfu load 即时(JIT)加载,或者通过 kungfu learn 永久学习(全局安装或安装到工作区)。下图展示了 JIT 加载流程:

kungfu will keep track of all the skills it installs and you can check for the available skills (installed or online) via kungfu list. kungfu update takes care of updating skills that have newer versions server-side, while providing some guardrails to not override local customisations.kungfu 将跟踪它安装的所有技能,您可以通过 kungfu list 查看可用技能(已安装或在线)。kungfu update 负责更新服务器端有新版本的技能,同时提供一些防护栏以避免覆盖本地自定义。
Since kungfu relies on this catalog.json convention and my frontmatter metadata extensions, it requires registries to expose a catalog manifest or skills to declare their origin. To make it work seamlessly with arbitrary skill repos in the wild, I added local state tracking in ~/.config/kungfu/state.json to record skill origins regardless of how a skill was installed.由于 kungfu 依赖于这种 catalog.json 约定和我的 frontmatter 元数据扩展,它要求注册中心公开目录清单或技能声明其来源。为了使其与野外任意技能仓库无缝协作,我在 ~/.config/kungfu/state.json 中添加了本地状态跟踪,以记录技能来源,无论技能是如何安装的。
You might be thinking: why bother adding the catalog to metadata if you can keep the manifest? One, because I like declarative things and two, because this allows reconciliation and lifecycle management even if you didn’t use kungfu to learn a skill.您可能会想:如果可以保留清单,为什么还要费心将目录添加到元数据中?第一,因为我喜欢声明式的东西;第二,因为这允许协调和生命周期管理,即使您没有使用 kungfu 来学习技能。
Wrapping up总结
Agent Skills are one of the most effective ways to bridge the gap between static foundation models and your actual day-to-day engineering workflows. Whether you start by building a simple documentation skill to banish outdated SDK patterns, automate your repetitive analytical chores with process skills, or explore trait-based agent swarms, the investment pays off fast.Agent Skills 是弥合静态基础模型与您实际日常工程工作流之间差距的最有效方法之一。无论您是从构建一个简单的文档技能来摒弃过时的 SDK 模式开始,还是利用流程技能自动化重复的分析任务,或是探索基于特质的 Agent 群体,这种投入都会很快得到回报。
Feel free to borrow ideas from skills.danicat.dev or use to manage and load them on demand, but whichever path you choose, the most important thing is that you keep refining your processes to achieve the full potential of agentic coding.请随意从 skills.danicat.dev 借用想法,或使用它来按需管理和加载它们。但无论您选择哪条路径,最重要的是您不断完善自己的流程,以实现 Agent 编码的全部潜力。
Originally published at https://danicat.dev on August 29, 2026.最初发布于 2026 年 8 月 29 日,网址为 https://danicat.dev。

