Skills CLI 1.0: 패키지를 위한 AI 에이전트 스킬 번들/배포
Skills CLI 1.0: 패키지를 위한 AI 에이전트 스킬 번들/배포 (Skills CLI 1.0: Bundle and distribute AI agent skills for your packages)
공식 AI 에이전트 스킬을 패키지와 함께 직접 배포해서 검색 가능성을 높이는 방법을 알아볼게요.
출처: 원문
본문
2025년 말부터 Agent Skills는 사용자가 AI 에이전트에게 더 나은 컨텍스트를 제공하는 방식을 바꿔 왔어요. 만들기 쉽고, 점진적 공개(progressive disclosure)를 통해 토큰을 효율적으로 사용해요. 이런 이점들이 합쳐져 지식 절벽(knowledge cutoff) 격차를 메워서, 에이전트가 익숙하지 않거나 업데이트된 코드베이스, 의존성, 도구에서 더 효과적으로 작업할 수 있게 해줘요.
오늘날 스킬은 보통 Git 저장소를 통해 공유돼요. 그래서 개발자는 파일을 수동으로 클론하고 복사하거나 npx skills 같은 도구에 의존해야 해요. npx skills가 잘 작동하긴 하지만, 저 같은 Dart 팬에게는 단 하나의 커맨드라인 도구를 실행하려고 Node.js를 요구하는 게 어색하게 느껴져요. Dart는 항상 "배터리 포함(batteries-included)" 접근 방식을 취해 왔어요. 필요한 모든 게 SDK에 내장되어 있죠. AI 스킬 관리는 그만큼 네이티브하게 느껴져야 해요.
이미 Node.js와 npx가 설치된 개발자에게도 검색 가능성과 패키지 버전 지원이 부족한 문제가 있어요. 여러분이 사용하는 스킬이 프로젝트의 패키지 정확한 버전과 일치하도록 어떻게 보장할까요?
Skills CLI의 등장
이 두 문제를 모두 해결하기 위해 Serverpod 팀이 skills CLI를 만들었어요. 우리는 버전 1.0을 발표하게 되어 기쁘고, 이제 Dart 팀이 직접 유지 관리하고 게시해요.
이 도구는 npx skills의 대체품 그 이상이에요. 진짜 마법은 패키지 작성자가 스킬을 패키지와 함께 쉽게 배포하게 해준다는 거예요. 그들은 최상위 skills/ 디렉터리에 스킬을 넣기만 하면 돼요.
my-project/
├── src/
├── skills/ <--- skills
├── pubspec.yaml
└── README.md
이 도구는 새로운 dart run skills@ 문법을 사용해 실행할 것을 권장해요. 이는 항상 최신 버전의 CLI를 전역 도구로 실행해요. 또는 dart install로 도구를 설치할 수도 있어요(주기적으로 업데이트하는 것만 잊지 마세요!).
패키지 소비자를 위한 것: 스킬 설치하기
pubspec.yaml의 의존성에서 직접 스킬을 가져오려면 get 명령을 실행하세요.
# Scans immediate dependencies and discovers available skills.
dart run skills@ get
skills CLI는 프로젝트 의존성에서 번들된 skills/ 디렉터리를 스캔해요. 그런 다음 사용 가능한 스킬을 나열하고 어떤 것을 설치할지 고르게 해줘요.
이후 실행은 점진적이에요. 새롭거나, 업데이트되거나, 제거되거나, 이전에 건너뛴 스킬만 표시해요. 또한 --all 플래그를 전달해서 모든 스킬 의존성을 한 번에 설치할 수도 있어요.
패키지 작성자를 위한 것: 스킬 배포하기
패키지 작성자는 오늘부터 코드와 함께 스킬을 배포할 수 있어요. 스킬을 만들려면 skills/ 안에 패키지 이름으로 접두사가 붙은 디렉터리(충돌 방지용)를 추가하고 SKILL.md 지침 파일을 포함하세요. 이는 표준 Agent Skills 레이아웃을 따르는 거예요.
예를 들어 networking라는 패키지가 다음과 같은 구조로 올바른 API 사용을 강제할 수 있어요.
---
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();
}
### 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 CLI가 AI 기반 Dart와 Flutter 개발을 어떻게 단순화하는지 보게 되어 정말 기대돼요!
여기 간단한 요약이 있어요.
- 패키지 작성자: 패키지 저장소에 skills/<package_name>-
/SKILL.md 파일을 추가하세요. - 패키지 소비자: 프로젝트 루트에서
dart run skills@ get을 실행해서 의존성에서 사용 가능한 스킬을 발견하고 설치하세요.
초기 구현에 기여한 Serverpod와, 우리와 함께 이런 에이전트 워크플로를 만들어 온 모든 조기 채택자에게 큰 감사를 드려요! 피드백이 있거나 문제가 발생하면 dart-lang/ai 저장소에 이슈를 제기해서 알려 주세요.
더 자세히 알아보고 스킬이 실제로 작동하는 모습을 살펴보려면:
- 문서: Package skills 가이드나 Flutter package skills 문서를 읽어 보세요.
- 패키지 작성자: 패키지와 함께 스킬을 배포하는 방법에 대한 가이드를 따라 해 보세요.
- CLI 도구: pub.dev에서 package:skills를 확인하세요.
- 예시: Jaspr, Serverpod, Flutter Scene, GenUI 같은 패키지에서 이미 배포 중인 스킬을 확인하세요.
더 알아보기
- Package skills 가이드 — 패키지와 함께 스킬 배포하기
- Flutter package skills 문서 — 스킬 사용/배포
- package:skills (pub.dev) — skills CLI 도구