☰
Hugging Face Skills 技能包:解析 AGENTS.md 技能发现机制与 9 大 Agent 技能实战指南
2026/10/16 12:11:09 网站建设 项目流程

Hugging Face Skills 技能包:解析 AGENTS.md 技能发现机制与 9 大 Agent 技能实战指南

【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub

导读

本指南以 hugging-face-skills 项目中的 agents/AGENTS.md 为线索,系统讲解"Agent Skills"标准化技能包的注册、发现与调用机制。你将掌握:AGENTS.md 在编码 Agent 技能体系中的定位与文件结构、仓库内置的 9 个技能(数据抓取、Hub 操作、数据集管理、模型评测、云端作业、模型训练、论文发布、工具构建、实验跟踪)各自的能力边界与典型触发场景,以及如何通过link-skills.sh一键安装、用/skills验证技能加载,并借助模板与生成脚本自动维护技能清单。

AGENTS.md 是什么:Agent 技能发现的"注册表"

在 Claude Code 等编码 Agent 的技能体系中,一个技能(Skill)是"自包含的文件夹,把指令、脚本和资源打包在一起,供 AI Agent 针对特定用例使用",每个技能目录下都包含一个带 YAML frontmatter(name与description)的SKILL.md文件(见 README.md)。

agents/AGENTS.md正是这份体系顶层的"技能注册表":它不承载某个技能的具体操作指令,而是以统一格式声明"仓库中已有哪些技能、各自在什么场景下被触发、对应的SKILL.md位于哪里"。Agent 读取该文件后即可建立"用户意图 → 技能 → 技能文档 → 执行脚本"的完整检索链。

文件的核心指令只有一句话,却是整个体系的运转规则:

IMPORTANT: You MUST read the SKILL.md file whenever the description of the skills matches the user intent, or may help accomplish their task.

也就是说,AGENTS.md本身不执行任何操作,它的职责是让 Agent 在描述匹配时必须深入阅读对应SKILL.md获取完整操作指南,从而把"技能发现"与"技能执行"两个阶段解耦。

AGENTS.md 文件结构逐段解析

以 agents/AGENTS.md 为准,文件由三个区块组成,每一段都有明确的机器可读意图。

1.<skills>注册区块:技能名 → SKILL.md 路径映射

文件首行以<skills>标签包裹技能列表,每一行是技能名 -> "路径/SKILL.md"的形式:

- brightdata-web-mcp -> "skills/brightdata-web-mcp/SKILL.md" - hugging-face-cli -> "skills/hugging-face-cli/SKILL.md" - hugging-face-datasets -> "skills/hugging-face-datasets/SKILL.md" - hugging-face-evaluation -> "skills/hugging-face-evaluation/SKILL.md" - hugging-face-jobs -> "skills/hugging-face-jobs/SKILL.md" - hugging-face-model-trainer -> "skills/hugging-face-model-trainer/SKILL.md" - hugging-face-paper-publisher -> "skills/hugging-face-paper-publisher/SKILL.md" - hugging-face-tool-builder -> "skills/hugging-face-tool-builder/SKILL.md" - hugging-face-trackio -> "skills/hugging-face-trackio/SKILL.md"

这 9 项对应仓库skills/目录下的 9 个技能文件夹,路径均指向各技能的SKILL.md。

2.<available_skills>触发描述区块:技能的能力描述

该区块为每个技能提供一段技能名: \描述`形式的语义描述,供 Agent 依据用户意图进行匹配。例如hugging-face-jobs` 的描述覆盖了"云上执行任意负载(UV 脚本、Docker 作业、硬件选择、成本估算、Token 认证、密钥管理、超时配置、结果持久化)"等完整场景,并明确标注"Should be invoked for tasks involving cloud compute, GPU workloads..."——即用户提到云算力、GPU 负载或"无本地环境在 HF 上跑作业"时,就必须激活该技能。

3. 路径相对性规则

文件末尾明确了一条易被忽略的约定:

Paths referenced within SKILL folders are relative to that SKILL.

技能文件夹内部引用的路径(如脚本、模板、参考文档)均以该技能目录为相对起点,例如hf-datasets技能内的脚本scripts/example.py,在实际引用时应写为hf-datasets/scripts/example.py。理解这条规则,才能正确解析每个SKILL.md内部指向references/、scripts/、templates/的局部链接。

9 大技能能力全景:从数据抓取到模型训练

以下逐一展开 AGENTS.md 注册的 9 个技能,结合各自SKILL.md与仓库脚本说明其能力边界与触发条件。

brightdata-web-mcp:可靠的网页数据获取

  • 能力:基于 Bright Data 的 Web MCP 提供搜索、抓取与结构化抽取能力,自动处理反爬、CAPTCHA 与动态内容。
  • 核心工具(见 SKILL.md):
    • search_engine:搜索引擎检索(Rapid 免费模式)
    • scrape_as_markdown:页面转 Markdown
    • extract:按 prompt 抽取结构化 JSON(Pro 模式)
    • scrape_batch/scraping_browser_*/web_data_*:批量抓取、JS 重站点、Amazon/LinkedIn 等平台数据
  • 配置方式:远程 SSE 端点https://mcp.brightdata.com/sse?token=YOUR_API_TOKEN(或 Streamable HTTP 端点);本地API_TOKEN=<token> npx @brightdata/mcp;Pro 模式远程加&pro=1、本地设PRO_MODE=true。
  • 触发场景:获取实时网页内容、绕过访问限制、采集电商与社媒数据、标准请求失败时的兜底。仓库 prompt.txt 给出了真实用例:用该技能抓取 12 个 AI 教育类 App 的 Play Store 评论。

hugging-face-cli:Hub 的hf命令行操作

  • 能力:覆盖认证、下载/上传、仓库管理、缓存管理、云端作业与推理端点。
  • 典型命令(见 SKILL.md):
    • 认证:hf auth login、hf auth whoami、hf auth switch
    • 下载:hf download <repo_id> --local-dir ./models --include "*.safetensors" --repo-type dataset
    • 上传:hf upload <repo_id> . . --create-pr --commit-message="msg"
    • 仓库管理:hf repo create <name> --private、hf repo tag create <repo_id> v1.0
    • 缓存:hf cache ls、hf cache prune
    • 云端作业:hf jobs run --flavor a10g-small <image> <cmd>
    • 推理端点:hf endpoints deploy my-endpoint --framework vllm --accelerator gpu --instance-size x4
  • GPU Flavor 全集:cpu-basic、cpu-upgrade、cpu-xl、t4-small、t4-medium、l4x1、l4x4、l40sx1、l40sx4、l40sx8、a10g-small、a10g-large、a10g-largex2、a10g-largex4、a100-large、h100、h100x8。

hugging-face-datasets:数据集全生命周期管理

  • 能力:在 Hub 上初始化数据集仓库、写入配置与 system prompt、流式追加行,并新增了基于 DuckDB SQL 的数据集查询/变换能力。
  • 核心脚本(见 SKILL.md):
    • scripts/dataset_manager.py:init、config、quick_setup、add_rows、stats等子命令;内置 chat / classification / qa / completion / tabular / custom 六类 JSON 模板(对应templates/目录)。
    • scripts/sql_manager.py:通过 DuckDBhf://协议直接查询 Hub 数据集(hf://datasets/{dataset_id}@{revision}/{config}/{split}/*.parquet),支持query、describe、sample、count、histogram、transform、export、push-to等操作。
  • 典型工作流:先用 HF MCP Server 做数据集发现与元数据检索,再用本技能完成创建、编辑、SQL 查询与数据变换(如把 MMLU 按学科过滤后--push-to生成医学子集)。

hugging-face-evaluation:模型卡评测结果管理

  • 能力:为模型卡添加结构化的 model-index 评测元数据,支持三条路径——从 README 抽取评测表格、从 Artificial Analysis API 导入分数、用 vLLM/lighteval 运行自定义评测(见 SKILL.md)。
  • 核心工作流(scripts/evaluation_manager.py):get-prs(先检查是否已有公开 PR,防止重复提交)→inspect-tables(定位 README 表格)→extract-readme --table N(生成 YAML)→ 加--apply推送或--create-pr创建 PR。
  • 配套脚本:scripts/run_eval_job.py、scripts/run_vllm_eval_job.py、scripts/lighteval_vllm_uv.py、scripts/inspect_vllm_uv.py与scripts/artificial_analysis_to_hub.py。

hugging-face-jobs:云上通用负载执行

  • 能力:在托管基础设施上运行任意负载(数据处理、批量推理、实验基准、合成数据生成、定时任务),覆盖 UV 脚本与 Docker 两种提交方式(见 SKILL.md)。
  • 提交方式:
    • UV 脚本(推荐):hf_jobs("uv", {"script": "...", "flavor": "cpu-basic", "timeout": "30m"}),脚本内用 PEP 723 头部声明依赖;CLI 等价命令为hf jobs uv run my_script.py --flavor cpu-basic --timeout 30m。
    • Docker:hf_jobs("run", {"image": "python:3.12", "command": [...], "flavor": "cpu-basic"}),甚至可直接使用 HF Space 镜像(hf.co/spaces/lhoestq/duckdb)。
  • 关键要点:脚本路径注意区分——hf_jobs()MCP 工具只接受内联代码或 URL,本地文件路径在远端容器内不存在;而hf jobs uv runCLI 支持本地路径(自动上传)。作业环境是临时的,结果必须通过push_to_hub、外部存储或 API 回调持久化,否则全部丢失;默认超时仅 30 分钟,长任务需显式设置"2h"等。
  • 现成脚本:scripts/generate-responses.py(vLLM 批量推理并回推数据集)、scripts/cot-self-instruct.py(CoT 自指导合成数据)、scripts/finepdfs-stats.py(Polars 流式统计 Hub 上的 parquet 数据)。

hugging-face-model-trainer:TRL 云端模型训练

  • 能力:基于 TRL(Transformer Reinforcement Learning)在 HF Jobs 上完成 SFT、DPO、GRPO 与奖励模型训练,并支持 GGUF 转换用于本地部署(Ollama、LM Studio、llama.cpp)(见 SKILL.md)。
  • 核心约束:
    • 一律用hf_jobs("uv", {...})内联提交训练脚本,不落本地文件;脚本必须包含 Trackio 监控。
    • TRL 配置类使用max_length而非max_seq_length(默认 1024,右侧截断)。
    • 环境临时性决定了必须配置push_to_hub=True、hub_model_id="username/model-name"并在作业中传secrets={"HF_TOKEN": "$HF_TOKEN"}。
  • 训练前校验:强烈建议先用 dataset inspector 校验数据集格式(DPO 要求严格列名prompt/chosen/rejected),输出✓ READY/✗ NEEDS MAPPING(附可复制映射代码)/✗ INCOMPATIBLE三种判定,避免 GPU 作业因格式不匹配失败浪费成本。
  • 现成模板:scripts/train_sft_example.py、scripts/train_dpo_example.py、scripts/train_grpo_example.py、scripts/estimate_cost.py、scripts/convert_to_gguf.py。
  • 硬件选型参考:<1B 用t4-small、1-3B 用t4-medium/l4x1、3-7B 用a10g-small/a10g-large、7-13B 用a10g-large/a100-large、13B+ 用a100-large/a10g-largex2,超过 7B 建议 LoRA/PEFT。

hugging-face-paper-publisher:论文发布与关联

  • 能力:在 Hub 上创建论文页面、从 arXiv 索引论文、将论文关联到模型/数据集卡、声明作者身份,并使用 Markdown 模板生成专业研究文章(见 SKILL.md)。
  • 配套资源:scripts/paper_manager.py、templates/(arxiv、ml-report、modern、standard 四套模板)、references/quick_reference.md与examples/example_usage.md。

hugging-face-tool-builder:HF API 复用脚本构建

  • 能力:为"链式组合/重复执行/自动化"的 HF API 任务构建可复用命令行脚本(见 SKILL.md)。
  • 脚本规则:必须支持--help;优先 Shell 脚本,复杂场景可用 Python/TSX;统一用HF_TOKEN环境变量作为Authorization: Bearer请求头;优先简单、可管道组合的方案。
  • 参考实现:references/baseline_hf_api.sh(Python/TSX 各一份基线)、references/hf_enrich_models.sh(stdin → NDJSON 流式管道)、references/find_models_by_paper.sh、references/hf_model_card_frontmatter.sh。例如管道baseline_hf_api.sh 25 | jq -r '.[].id' | hf_enrich_models.sh | jq -s 'sort_by(.downloads) | reverse | .[:10]'即可实现"拉取模型列表 → 逐条补全元数据 → 按下载量排序取 Top10"。

hugging-face-trackio:实验跟踪与可视化

  • 能力:训练期间用 Python API 记录指标、之后用 CLI 检索/分析指标,支持实时仪表盘、同步到 HF Space 以及 JSON 输出(见 SKILL.md)。
  • 最小记录示例:
import trackio trackio.init(project="my-project", space_id="username/trackio") trackio.log({"loss": 0.1, "accuracy": 0.9}) trackio.log({"loss": 0.09, "accuracy": 0.91}) trackio.finish()
  • CLI 检索:trackio list projects/runs/metrics、trackio get project/run/metric、trackio show、trackio sync,加--json输出结构化结果供自动化与 Agent 使用。远程训练场景传space_id使指标同步到 Space 仪表盘,实例终止后数据不丢失。

技能目录的标准结构与约定

仓库内每个技能目录遵循统一结构(以skills/hugging-face-jobs/为例):

  • SKILL.md:技能入口,YAML frontmatter 含name、description(决定触发时机)与可选的license;正文为 Agent 执行时的操作指南。
  • references/:深度参考文档,如hardware_guide.md、hub_saving.md、token_usage.md、troubleshooting.md。
  • scripts/:可直接运行或内联提交的 Python/Shell 脚本。
  • templates/(数据集技能):chat、classification、qa、completion、tabular、custom 六类 JSON 模板。
  • examples/(评测、论文、数据集技能):示例数据与用法文档。

这种"入口文档 + 参考文档 + 脚本 + 模板"的层次,保证AGENTS.md只做轻量注册,把重量级知识下沉到各技能目录内按需加载。

安装与激活:把技能挂载到 Claude Code

按 README.md 的安装流程:

  1. 克隆仓库并进入项目目录;
  2. 运行bash scripts/link-skills.sh安装技能;
  3. 启动编码 Agent:claude;
  4. 输入/skills验证技能是否全部加载。

scripts/link-skills.sh的实现逻辑(见 link-skills.sh):遍历skills/*/下所有含SKILL.md的目录,将其整体符号链接到.claude/skills/<skill-name>/(Claude Code 期望的目录结构),并逐项输出[OK]状态与最终链接计数。

技能挂载后,直接在指令中提及即可触发,例如(见 README.md):

  • "Use the Bright Data web skill to scrape this website 'https://example.com/'."
  • "Use the HF LLM trainer skill to estimate the GPU memory needed for a 70B model run."
  • "Use the HF model evaluation skill to launchrun_eval_job.pyon the latest checkpoint."

Agent 会依据AGENTS.md的描述自动加载对应SKILL.md与辅助脚本。仓库 prompt.txt 展示了一条完整链路示例:先用 Bright Data Web MCP 抓取 12 个 App 的 Play Store 评论并整理成 CSV,再发起基于distilbert-base-uncased的 SFT 文本分类微调实验——恰好串联了抓取、数据加工与模型训练三大技能。

AGENTS.md 的自动化维护机制

agents/AGENTS.md不是手写维护的,而是由脚本从各SKILL.md的 frontmatter 自动生成(见 generate_agents.py):

  1. 模板驱动:AGENTS_TEMPLATE.md 定义了输出结构,用{{#skills}}...{{/skills}}循环占位符标记技能列表与描述区块的插入位置。
  2. 元数据采集:collect_skills()扫描skills/*/SKILL.md,用无外部依赖的正则解析 frontmatter(parse_frontmatter)提取name、description与相对路径,并按名称排序保证输出确定性。
  3. 渲染:render()实现一个极简 Mustache 式渲染器,把占位符替换为各技能的实际值,写入agents/AGENTS.md。
  4. 一致性校验:validate_marketplace()双向校验.claude-plugin/marketplace.json与已发现技能——每个技能必须在 marketplace 中有同名条目,每个 marketplace 插件也必须存在对应SKILL.md,否则打印错误并以非零退出码结束。
  5. README 同步:update_readme()在<!-- BEGIN_SKILLS_TABLE -->与<!-- END_SKILLS_TABLE -->标记之间自动重写技能表格。

这解释了 AGENTS.md 中两个容易被忽略的设计:description字段同时承担"Agent 触发判断"与"注册表展示"双重职责;而 marketplace.json 中的描述则是面向人类浏览者的,两者各自维护、由脚本保证名称与路径一致。

自定义技能:复制、改 frontmatter、再生成

如需新增技能,可按 README.md 的流程操作:

  1. 复制一个现有技能目录并重命名(如hf-datasets/);
  2. 更新新目录SKILL.md的 frontmatter,补充name与description,正文写入操作指引、示例与护栏;
  3. 增补目录内引用的脚本、模板与参考文档;
  4. 在.claude-plugin/marketplace.json添加一条简洁、面向人类的描述;
  5. 运行python scripts/generate_agents.py校验结构并重新生成AGENTS.md与 README 技能表;
  6. 重装或重新加载技能包,使新目录生效。

整个闭环意味着:新增一个技能的唯一事实来源是它自己的SKILL.mdfrontmatter,其余注册表、marketplace 与 README 表格均由脚本同步派生,既避免了多份清单手工维护的漂移,也保证了 Agent 读取的AGENTS.md永远与仓库实际技能一一对应。

关键结论速查

  1. agents/AGENTS.md是技能发现入口,职责是让 Agent 在描述匹配时"必须读取对应SKILL.md",本身不承载执行逻辑。
  2. 仓库注册了 9 个技能,覆盖网页抓取、Hub CLI、数据集管理、模型评测、云端作业、模型训练、论文发布、API 工具构建与实验跟踪。
  3. 技能目录统一为SKILL.md+references/+scripts/(+ 可选templates/、examples/),frontmatter 的description决定触发时机。
  4. 安装只需bash scripts/link-skills.sh,脚本将技能目录整体软链到.claude/skills/,用/skills验证。
  5. AGENTS.md由 AGENTS_TEMPLATE.md 与 generate_agents.py 自动生成,并校验 marketplace 一致性、同步 README 技能表——新增技能后务必重新运行生成脚本。

【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询