VL

vercel-labs/skills-handler

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

21 stars 质量 46 趋势 10

一个与框架无关的处理程序,通过知名的URI服务代理技能。实现代理技能发现规范。

概览

一个与框架无关的处理程序,通过知名的URI服务代理技能。实现代理技能发现规范。 请在app/.well-known/skills/[[...path]]/route.ts创建一个通用路线: - GET /.well-known/skills/index.json - 发现索引 - GET /.well-known/skills/git-workflow/SKILL.md - 技能指令 从文件系统加载技能,而不是在代码中定义: 每个 SKILL.md 文件都需要 YAML 前言: 通过代码中定义的技能创建提供者。 创建一个从文件系统加载技能的提供者。 合并多个提供者。后期提供者会覆盖同名技能的早期服务。

概述(AI 翻译)

一个与框架无关的处理程序,通过知名的URI服务代理技能。实现代理技能发现规范。

仓库: github.com/vercel-labs/skills-handler

安装

针对基于文件的技能加载:

快速入门(Next.js)

在app/.well-known/skills/[[...path]]/route.ts创建一个包通路由:

您的技能现已可在以下平台获取:

  • GET /.well-known/skills/index.json - 发现指数
  • GET /.well-known/skills/git-workflow/SKILL.md - 技能指导

基于文件的技能

从文件系统加载技能,而不是在代码中定义:

目录结构:

每个 SKILL.md 文件都需要 YAML 前言:

API 参考

createSkillsHandler(provider, config?)

创建请求处理程序。

createStaticProvider(skills, additionalFiles?)

通过代码中定义的技能创建提供者。

createFileProvider(directory)

创建一个从文件系统加载技能的提供者。

createCompositeProvider(providers)

合并多个提供者。后期提供者会覆盖同名技能的早期服务。

CLI

在你的项目中初始化一个技能终端:

创建一项新技能:

验证技能:

终点

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

skills-handler

A framework-agnostic handler for serving Agent Skills via well-known URIs. Implements the Agent Skills Discovery specification.

Repository: github.com/vercel-labs/skills-handler

Installation

npm install skills-handler

For file-based skill loading:

npm install skills-handler gray-matter

Quick Start (Next.js)

Create a catch-all route at app/.well-known/skills/[[...path]]/route.ts:

import { createSkillsHandler, createStaticProvider } from "skills-handler";

const handler = createSkillsHandler(
  createStaticProvider([
    {
      name: "git-workflow",
      description: "Follow team Git conventions for branching and commits.",
      body: `# Git Workflow

Create feature branches from \`main\`:

\`\`\`bash
git checkout -b feature/my-feature main
\`\`\``,
      files: ["SKILL.md"],
    },
  ])
);

export { handler as GET, handler as OPTIONS };

Your skills are now available at:

  • GET /.well-known/skills/index.json - Discovery index
  • GET /.well-known/skills/git-workflow/SKILL.md - Skill instructions

File-Based Skills

Load skills from the filesystem instead of defining them in code:

// app/.well-known/skills/[[...path]]/route.ts
import { createSkillsHandler, createFileProvider } from "skills-handler";
import path from "path";

const provider = await createFileProvider(path.join(process.cwd(), "skills"));
const handler = createSkillsHandler(provider);

export { handler as GET, handler as OPTIONS };

Directory structure:

project/
├── app/.well-known/skills/[[...path]]/route.ts
└── skills/
    ├── git-workflow/
    │   └── SKILL.md
    └── pdf-processing/
        ├── SKILL.md
        ├── scripts/
        │   └── extract.py
        └── references/
            └── TABLES.md

Each SKILL.md file requires YAML frontmatter:

---
name: git-workflow
description: Follow team Git conventions for branching and commits.
---

# Git Workflow

Your skill instructions here...

API Reference

createSkillsHandler(provider, config?)

Creates the request handler.

const handler = createSkillsHandler(provider, {
  basePath: "/.well-known/skills", // URL base path (default)
  verboseLogs: false,              // Enable debug logging
  cacheControl: "public, max-age=3600", // Cache header
  cors: "*",                       // CORS origin (* | string[] | false)
  onEvent: (event) => {},          // Analytics callback
});

createStaticProvider(skills, additionalFiles?)

Creates a provider from skills defined in code.

const provider = createStaticProvider([
  {
    name: "my-skill",
    description: "What the skill does and when to use it.",
    body: "# Skill Instructions\n\nMarkdown content...",
    files: ["SKILL.md"],
  },
]);
在 GitHub 查看完整 README

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add vercel-labs/skills-handler
新手?先看 mcpskill.org 教程 →