【文章翻譯】Skills CLI 1.0: Bundle and distribute AI agent skills for your packages

【文章內容使用 Gemini 2.5 Flash 自動翻譯產生】

原文:https://dart.dev/blog/skills-cli-1-0-bundle-and-distribute-ai-agent-skills-for-your-packages

Skills CLI 1.0:為您的套件捆綁和分發 AI 代理技能

直接與您的套件一起發布官方 AI 代理技能,以提高可發現性。

作者:Jake Macdonald
2026 年 9 月 8 日 · 閱讀約 4 分鐘

Illustration representing package skills in Dart.

自 2025 年末以來,Agent Skills 一直在改變使用者為其 AI 代理提供更好背景資訊的方式。它們易於建立,並透過漸進式披露有效利用 token。這些優點共同彌補了知識截止期的差距,使代理能夠更有效地處理不熟悉或更新的程式碼庫、依賴項和工具。

今天,技能通常透過 Git 儲存庫共享,要求開發人員手動複製和拷貝檔案,或依賴 npx skills 等工具。雖然 npx skills 運作良好,但對於像我這樣熱衷於 Dart 的人來說,僅僅為了運行一個命令列工具就需要 Node.js 感覺格格不入。Dart 始終採用「開箱即用」的方法,您所需的一切都內建於 SDK 中。管理 AI 技能也應該感覺同樣原生。

即使對於已經安裝 Node.js 和 npx 的開發人員來說,仍然缺乏可發現性和套件版本支援。您如何確保您使用的技能與專案中套件的確切版本匹配?

導入 skills CLI

為了解決這兩個問題,Serverpod 團隊建立了 skills CLI。我們很高興地宣布 1.0 版本,現在由 Dart 團隊直接維護和發布。

這個工具不僅僅是 npx skills 的替代品。真正的魔力在於它使套件作者能夠輕鬆地直接與其套件一起發布技能。他們所需要做的就是將它們放在頂層的 skills/ 目錄下:

1
2
3
4
5
my-project/
├── src/
├── skills/ <--- skills
├── pubspec.yaml
└── README.md

我們建議使用新的 dart run skills@ 語法運行此工具,它始終將 CLI 的最新版本作為全域工具運行。或者,您可以使用 dart install 安裝該工具(只需記住定期更新它!)。

對於套件消費者:安裝技能

若要直接從 pubspec.yaml 中的依賴項獲取技能,請運行 get 命令:

1
2
# Scans immediate dependencies and discovers available skills.
dart run skills@ get

skills CLI 掃描您的專案依賴項中的捆綁 skills/ 目錄。然後它會列出可用的技能,讓您選擇要安裝的技能。

隨後的運行是增量的——只顯示新的、更新的、已移除的或先前跳過的技能。您也可以傳遞 --all 標誌以一次安裝所有技能依賴項。

對於套件作者:發布技能

套件作者今天就可以開始與其程式碼一起發布技能。若要建立技能,請在 skills/ 中加入一個目錄,並以您的套件名稱作為前綴(以防止衝突),並包含一個 SKILL.md 指令檔。這遵循標準的 Agent Skills 佈局。

例如,一個名為 networking 的套件可以使用以下結構強制執行正確的 API 使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
---
name: networking-error-handling
description: >-
Use when the user is making network requests using the networking APIs
to ensure safe patterns.
---

# Networking Error Handling

## Guidelines

- Operations must always be wrapped in a try/catch block.
- You must catch `NetworkException` specifically
to handle retries and log diagnostics.
- Provide fallback UI state in the event of a timeout.

## Examples

```dart
try {
final response = await NetworkingClient.fetchData();
} on NetworkException catch (e) {
Logger.log(e.context);
return FallbackData();
}
1
2
3
4
5
6
7
8

## 使用 `add` 命令從 Git 安裝

雖然直接從依賴項中提取技能很方便,但整個生態系統已經圍繞透過 GitHub 儲存庫共享技能而存在。這些甚至可能不直接與 Dart 或 Flutter 套件相關聯。`skills` CLI 還支援使用 `add` 命令從任何 Git 儲存庫明確安裝技能:

```bash
# Install universally applicable skills from a Git repository
dart run skills@ add https://github.com/my-org/custom-ai-skills.git

您可以安裝在 skills.sh 上找到的任何技能,這是一個流行的技能聚合網站,只需將 npx skills 命令替換為 dart run skills@。

這使團隊能夠從多個來源(包括 Dart 依賴項和外部儲存庫)組合他們的指令,所有這些都由單一工具管理。

今天就試試 skills

我們很高興看到 skills CLI 如何簡化 AI 驅動的 Dart 和 Flutter 開發!

以下是一個快速回顧:

  • 套件作者: 在您的套件儲存庫中加入 skills/<package_name>-<skill-name>/SKILL.md 檔案。
  • 套件消費者: 在您的專案根目錄中運行 dart run skills@ get 以發現並安裝來自您的依賴項的可用技能。

非常感謝 Serverpod 的初步實作,以及所有與我們一起塑造這些代理工作流程的早期採用者!如果您有任何回饋或遇到任何問題,請在 dart-lang/ai 儲存庫中提交問題告訴我們。

若要了解更多並探索實際操作中的技能: