에이전트 스킬 공유
에이전트 스킬 공유 (Share agent skills)
Git 저장소에서 스킬을 설치하거나 호스트 에이전트에서 가져와 로컬 샌드박스에서 사용하는 방법을 알아볼게요.
출처: 문서
본문
공유 에이전트 스킬을 사용하면 Git 저장소에서 스킬을 설치하거나 호스트의 지원 에이전트에서 스킬을 가져와 로컬 샌드박스에서 사용할 수 있어요. sbx는 설치된 스킬을 샌드박스 삭제 후에도 유지되고, 지원 에이전트를 실행하는 새 샌드박스와 기본적으로 공유되는 영구 저장소에 보관해요.
[!NOTE] 공유 에이전트 스킬은 실험적이에요.
저장소에서 스킬 추가 (Add skills from a repository)
Git 저장소의 모든 스킬을 추가하세요:
$ sbx skills add anthropics/skills
저장소에는 유효한 SKILL.md 파일이 하나 이상 있어야 해요. GitHub owner/repository 축약어나 HTTPS와 SSH URL을 포함한 Git URL을 사용할 수 있어요.
특정 스킬을 추가하려면 각 이름에 --skill을 사용하거나 쉼표로 구분된 목록을 전달하세요:
$ sbx skills add https://github.com/anthropics/skills --skill frontend-design --skill pdf
같은 이름의 스킬이 이미 설치되어 있으면 sbx가 교체 전에 물어봐요. --force로 프롬프트 없이 기존 스킬을 교체하세요.
설치된 스킬 관리 (Manage installed skills)
공유 저장소의 스킬 나열:
$ sbx skills ls
저장소에서 설치한 모든 스킬 업데이트:
$ sbx skills update
특정 스킬만 업데이트하려면 이름을 하나 이상 전달하세요:
$ sbx skills update frontend-design pdf
sbx skills update는 sbx skills add로 설치한 스킬만 갱신해요. 호스트에서 가져온 스킬을 갱신하려면 sbx skills import를 다시 실행하세요. sbx skills update로 관리하려면 저장소에서 설치하세요.
설치된 스킬을 하나 이상 제거하세요:
$ sbx skills rm frontend-design pdf
sbx는 실행 중인 에이전트가 사용할 수 있는 스킬을 제거하기 전에 확인을 요구해요. 스크립트에서는 --force로 확인을 건너뛰세요.
호스트에서 스킬 가져오기 (Import skills from the host)
복사하지 않고 sbx가 찾는 스킬을 미리 보세요:
$ sbx skills import --dry-run
이 명령은 다음 디렉터리를 순서대로 검사해 각 스킬 하위 디렉터리를 공유 저장소에 복사해요. 샌드박스가 시작되면 sbx가 저장소를 에이전트가 샌드박스 안에서 읽는 경로에 마운트해요.
| 에이전트 | 호스트 소스 | 샌드박스 마운트 대상 |
|---|---|---|
| Claude Code | ~/.claude/skills |
/home/agent/.claude/skills |
| Codex 및 Devin | ~/.agents/skills |
/home/agent/.agents/skills |
| Copilot | ~/.copilot/skills |
/home/agent/.copilot/skills |
| Cursor | ~/.cursor/skills |
/home/agent/.cursor/skills |
| Droid | ~/.factory/skills |
/home/agent/.factory/skills |
가져온 모든 스킬은 출처와 무관하게 같은 저장소로 들어가요. 둘 이상의 소스에 같은 디렉터리 이름의 스킬이 있으면 표에서 첫 소스의 스킬이 이기고 sbx가 나머지에 대해 경고해요.
스킬을 가져오세요:
$ sbx skills import
최종 출력은 공유 저장소 경로를 보고해요. 기본 위치는:
| 플랫폼 | 공유 저장소 경로 |
|---|---|
| macOS | ~/Library/Application Support/com.docker.sandboxes/sandboxes/agent-skills |
| Linux | ~/.local/state/sandboxes/sandboxes/agent-skills |
| Windows | %LOCALAPPDATA%\DockerSandboxes\sandboxes\state\agent-skills |
Linux에서 XDG_STATE_HOME이 설정되면 sbx는 $XDG_STATE_HOME/sandboxes/sandboxes/agent-skills을 사용해요.
저장소에 스킬이 이미 있으면 sbx가 교체 전에 물어봐요. --force로 프롬프트 없이 기존 스킬을 교체하세요. 가져오기는 파일을 병합하지 않고 전체 스킬 디렉터리를 교체해요. 호스트에서 업데이트를 복사하고 싶으면 가져오기 명령을 다시 실행하세요. 가져오기가 저장소 설치 스킬을 교체하면 sbx는 더 이상 그 스킬을 저장소와 연관 짓지 않으므로 sbx skills update가 갱신하지 않아요.
공유 저장소 동작 (Shared store behavior)
sbx reset을 실행하면 공유 저장소가 지워져요.
지원 에이전트를 위해 생성된 샌드박스는 공유 저장소를 기본적으로 읽기 전용으로 마운트해요. 이 샌드박스들은 시작할 때마다 저장소 내용을 마운트하므로, 생성 전후에 스킬을 설치할 수 있어요.
sbx run이나 sbx create에 --skills를 사용해 샌드박스를 만들 때 접근 모드를 선택하세요:
readonly: 에이전트가 스킬을 읽을 수 있지만 수정할 수 없도록 저장소를 마운트.readwrite: 에이전트가 공유 스킬을 읽고 수정할 수 있도록 저장소를 마운트.off: 공유 저장소 마운트를 생략.
예를 들어 공유 저장소 없이 샌드박스를 만들려면:
$ sbx run --skills=off claude
향후 샌드박스의 기본값을 바꾸려면 skills.defaultMode를 off, readonly, readwrite로 설정하세요:
$ sbx settings set skills.defaultMode readonly
모드는 샌드박스가 생성될 때만 적용돼요. sbx를 업그레이드하거나 skills.defaultMode를 바꿔도 기존 샌드박스 마운트는 바뀌지 않아요. 모드를 바꾸려면 샌드박스를 제거하고 다시 만드세요. 공유 스킬 없이 만든 샌드박스도 저장소를 마운트하려면 재생성이 필요해요.
[!WARNING]
readwrite접근이 있는 샌드박스는readonly접근을 포함한 다른 샌드박스가 로드하는 스킬을 수정할 수 있어요. 읽기 전용 접근은 그 샌드박스의 쓰기를 막지만 저장소 변경으로부터 격리하지는 않아요. 저장소는 전용 샌드박스 상태이므로, 이 자체로는 수정된 스킬을 호스트에서 실행하지 않아요. 이 공유 신뢰 경계 밖에 두려면 샌드박스를 만들 때--skills=off를 사용하세요.
일부 에이전트는 세션이 시작될 때 스킬을 검사해요. 설치된 스킬이 기존 세션에 나타나지 않으면 다른 에이전트 세션을 시작하세요.