创建 Skill / Agent / Team 仓库
如何组织 GitHub 仓库,让 Buda 能自动发现并发布你的 Skills、Agents 和 Teams
Buda 扫描你的 GitHub 仓库,根据特定清单文件的位置自动发现 Skills、Agents 和 Teams。
访问 agentskills.io 和 agentcompanies.io 浏览社区仓库获取灵感。
这篇是实现导向文档。
- 当你要直接搭仓库时,看这篇。
- 当你要把规范直接复制给 coding agent 时,看这篇。
- 如果你想先看商业模式和上架流程,先读 在 Buda 市场销售你的技能。
给 Coding Agent
如果你在使用 coding agent,可以直接把本页链接发给它。
这篇文档已经按"可执行规范"来写,包括:
- 仓库结构
- 必须文件
- 推荐的
README.md/SKILL.md分工 - 展示与可见性规则
- 私有仓库建议
- 常见错误
- 输出检查清单
规则速览
必须满足
- 每个 Skill 都必须有
SKILL.md - 每个 Agent 都必须有
agents/{name}/AGENTS.md,且包含有效 frontmatter - 每个 Team 都必须有
teams/{name}/TEAM.md,且包含有效 frontmatter
强烈建议
- 商业化 Skill 都加上同目录
README.md - 用
README.md写面向买家的展示文案 - 用
SKILL.md写面向 Agent 的执行指令 - 付费或专有 Skill 优先使用私有 GitHub 仓库
展示规则
- Marketplace 详情页优先显示
README.md - 如果没有
README.md,则回退显示SKILL.md/AGENTS.md
可见性规则
- 买家在购买前看不到完整 Skill 指令内容
- 支持私有仓库
- 完整实现逻辑保留在你的仓库内
仓库结构
本仓库遵循 Agent Companies 规范。
my-repo/
├── COMPANY.md ← 可选的公司根清单
│
├── skills/ ← Skills(任意布局均可)
│ ├── keyword-research/
│ │ ├── SKILL.md
│ │ └── README.md ← 可选详情 / 销售页
│ └── content-writer/
│ ├── SKILL.md
│ └── README.md
│
├── agents/ ← Agents 放这里
│ ├── research-assistant/
│ │ ├── AGENTS.md ← agent 清单 + 指令(必填)
│ │ └── README.md ← 详情页正文(可选,优先于 AGENTS.md)
│ └── code-reviewer/
│ └── AGENTS.md
│
└── teams/ ← Teams 放这里
├── marketing-team/
│ ├── TEAM.md ← team 清单(必填)
│ └── README.md ← 详情页正文(可选)
└── dev-team/
└── TEAM.md发现规则:
| 类型 | 触发文件 | 位置 |
|---|---|---|
| Skill | SKILL.md | 仓库任意位置 |
| Agent | AGENTS.md | 必须在 agents/{name}/ 下 |
| Team | TEAM.md | 必须在 teams/{name}/ 下 |
Skills — SKILL.md
Skill 是 Agent 可以安装和调用的可复用能力,SKILL.md 可以放在仓库任意位置。
详情页正文优先使用同目录下的 README.md,如果不存在则使用 SKILL.md 本身。
对于付费或商业化 Skill,我们强烈建议你在同目录额外写一个 README.md。
Buda 默认优先展示 README.md 作为 Listing 详情页正文;如果没有 README.md,才会回退显示 SKILL.md。
推荐做法
建议把两个文件分开承担不同职责:
README.md= 面向买家的展示页,用来写营销文案、定位、场景、卖点和销售内容SKILL.md= 面向 Agent 的指令文件,保留真正的执行逻辑
skills/keyword-research/
├── SKILL.md ← 必填:frontmatter(name、description)+ 指令内容
└── README.md ← 可选:更丰富的详情页正文(优先于 SKILL.md)---
name: 关键词研究
description: 自动发现高意图关键词并按主题分类。
---
# 关键词研究
## 何时使用
当用户询问关键词研究或搜索意图分析时使用。可见性与知识产权保护
私有仓库非常适合商业化 Skill:
- 在用户购买前,终端用户看不到完整的 Skill 指令内容
- Listing 详情页展示的是你希望用户看到的内容,最适合通过
README.md来承载 - 你的 know-how、提示词结构和工作流设计,可以放在私有仓库里得到较好的保护
Agents — agents/{name}/AGENTS.md
Agent 是具有特定角色和技能集的预配置 AI 助手。AGENTS.md 是必填的,frontmatter 包含 Agent 的元数据,markdown 正文是 Agent 的指令内容。
AGENTS.md 格式:
---
schema: agentcompanies/v1
name: 研究助手
slug: research-assistant
description: 一个严谨的研究 Agent,负责查找、总结并引用信息来源。
skills:
- https://github.com/buda-ai/buda-marketplace#web-search
- https://github.com/buda-ai/buda-marketplace#summarizer
- https://github.com/my-org/my-skills#citation-formatter
---
# 研究助手
你是一个研究助手。查找准确信息,清晰总结,始终引用来源。
## 行为规范
- 不捏造信息来源
- 对不确定的信息进行标注Frontmatter 字段说明:
| 字段 | 必填 | 说明 |
|---|---|---|
schema | ✓ | 必须为 agentcompanies/v1 |
name | ✓ | 在市场中显示的名称 |
slug | ✓ | 稳定标识符,与目录名一致 |
description | ✓ | Listing 卡片上的一句话描述 |
skills | ✓ | 技能依赖列表,格式为 repo#skillName |
可选 README.md: 如果存在,优先于 AGENTS.md 用作详情页正文。
Teams — teams/{name}/TEAM.md
Team 是一组协作完成复杂多步骤工作流的 Agent 集合。TEAM.md 是必填的,frontmatter 包含团队的元数据和成员列表。
TEAM.md 格式:
---
schema: agentcompanies/v1
name: 营销团队
slug: marketing-team
description: 负责内容策略、文案撰写和分发的协作团队。
includes:
- ../agents/strategist/AGENTS.md
- ../agents/copywriter/AGENTS.md
- ../agents/analyst/AGENTS.md
---
# 营销团队
负责内容策略、文案撰写和分发的协作团队。Frontmatter 字段说明:
| 字段 | 必填 | 说明 |
|---|---|---|
schema | ✓ | 必须为 agentcompanies/v1 |
name | ✓ | 在市场中显示的名称 |
slug | ✓ | 稳定标识符,与目录名一致 |
description | ✓ | Listing 卡片上的一句话描述 |
includes | ✓ | 成员 AGENTS.md 文件的相对路径列表 |
可选 README.md: 如果存在,用作团队详情页的正文内容。
快速开始
mkdir my-repo && cd my-repo
mkdir -p skills/my-skill agents/my-agent teams/my-team
# 创建 skill
cat > skills/my-skill/SKILL.md << 'EOF'
---
name: 我的技能
description: 简短描述这个技能的功能。
---
# 我的技能
AI Agent 的使用说明写在这里。
EOF
# 创建 agent
cat > agents/my-agent/AGENTS.md << 'EOF'
---
schema: agentcompanies/v1
name: 我的 Agent
slug: my-agent
description: 简短描述这个 Agent 的功能。
skills:
- https://github.com/my-org/my-repo#my-skill
---
# 我的 Agent
Agent 的指令写在这里。
EOF
git init && git add . && git commit -m "初始提交"
gh repo create my-repo --public --push私有仓库
你的仓库可以是私有的 — Buda 通过 GitHub App 安装令牌访问。安装你 Listing 的用户永远看不到你的源代码。
如果你希望保护知识产权,这通常是最推荐的方案:
- 买家看不到你的仓库源代码
- 买家在购买前看不到完整的 Skill 指令内容
- 你仍然可以通过
README.md做一个完整的展示 / 销售页 - 你的专有实现仍然保留在私有 GitHub 仓库中
审核与发布
Buda 使用 Company 级别的审核模型。单个 Listing 不能直接发布或下架——它们始终跟随所属 Company 的状态。
| Company 状态 | Listing 行为 |
|---|---|
pending | 从 Marketplace 隐藏,等待管理员审核 |
published | 所有 pending 的 Listing 变为可见。draft 的 Listing 被排除在外。 |
rejected | 所有 Listing 隐藏 |
Buda 管理员在 Company 级别进行审批。当 Company 被批准时,只有 pending 状态的 Listing 会被发布——draft 状态的 Listing(GitHub 内容已消失)会被有意排除。
更新内容后会发生什么
Buda 索引你的仓库——它为每个 Listing 存储元数据(名称、描述、GitHub URL)。当用户安装 skill 或 agent 时,Buda 在安装时实时从你的 GitHub 仓库获取内容。
重新同步后:
- 内容更新 → Listing 元数据更新,状态不变,用户下次安装时获取最新内容
- 文件从 GitHub 删除 → Listing 变为
draft,从 Marketplace 隐藏。已安装的用户保留其副本。 - 文件恢复 → Listing 从
draft变回pending,等待重新审核 - COMPANY.md 删除(monorepo 子目录删除)→ 该 Company 及其所有 Listing 变为
draft - COMPANY.md 恢复 → Company 变回
pending,等待重新审核
Draft Listing 不会被 Company 审批带回。 当 Buda 管理员批准一个 Company 时,只有 pending 的 Listing 会被发布。draft 的 Listing 保持隐藏。
安装需要文件在 GitHub 上存在。 由于 Buda 在安装时实时获取内容,如果 Listing 对应的源文件已从 GitHub 删除,即使 Listing 出现在 Marketplace 中,安装也会失败。删除内容后请务必重新同步,以便将受影响的 Listing 设为 draft。
创建仓库后
- 前往开发者中心 → 插件仓库
- 点击添加仓库并选择你的仓库
- Buda 扫描仓库并创建状态为
待审核的 Listing - Buda 团队在 24 小时内审核并通过
- 你的 Listing 出现在应用市场
常见错误
- 把
SKILL.md写成销售页,而不是指令文件 - 付费 Skill 没有配
README.md - Agent 没有放在
agents/下 - Team 没有放在
teams/下 AGENTS.md或TEAM.md的 frontmatter 缺少schema: agentcompanies/v1- 误以为买家购买前能看到完整 Skill 内容
输出检查清单
- 仓库结构符合 Buda discovery 规则
- 每个 Skill 都有
SKILL.md - 商业化 Skill 同时有
README.md README.md面向买家SKILL.md面向执行逻辑- 每个 Agent 都有
agents/{name}/AGENTS.md,frontmatter 包含schema: agentcompanies/v1 - 每个 Team 都有
teams/{name}/TEAM.md,frontmatter 包含schema: agentcompanies/v1 - 涉及知识产权保护时优先考虑私有仓库