Agent Skills 작성법: 소프트웨어 공학 관점의 접근
Authoring Agent Skills: A Software-Engineering Approach
TL;DR Highlight
스킬을 소프트웨어로 보고 설계하니 선택·로딩·보장 범위가 정리됐다
Who Should Read
Claude Code 스킬을 만들었는데 자동으로 안 불리거나 지시를 무시해서 고민인 개발자
Core Mechanics
- 스킬도 소프트웨어다
- 스킬은 SKILL.md와 스크립트, 참고 문서로 된 버전 관리 가능한 파일이다.
- 인터페이스는 description이고 구현은 본문과 번들 파일이다.
- description이 곧 트리거다
- 모델은 name과 description만 보고 스킬을 고른다.
- 무엇을 하는지와 언제 쓰는지를 3인칭으로, 구체적인 용어를 넣어 쓴다.
- 3단계로 나눠 로딩한다
- 시작할 때는 스킬당 약 100토큰의 메타데이터만 올라간다.
- 본문은 선택될 때, 참고 파일과 스크립트는 필요할 때만 읽거나 실행한다.
- 반드시 지켜야 하면 hook에 넣는다
- 스킬은 모델이 판단해서 읽는 확률적 방식이라 건너뛸 수 있다.
- hook은 런타임이 이벤트마다 실행하고 PreToolUse에서는 동작을 막을 수도 있다.
- 테스트는 통과율로 본다
- 스킬은 모델과 함께 돌려야 동작해서 단위 테스트가 아니라 통합 테스트에 가깝다.
- 결과가 비결정적이라 여러 번 돌린 통과율과 루브릭으로 판단한다.
Evidence
- 정량 실험은 없는 개념 정리 노트다
- 벤치마크나 정답률 같은 실험 수치는 원문에 없다.
- 원문이 제시한 제약과 기준값
- name은 64자 이하, description은 1024자 이하다.
- 메타데이터는 스킬당 약 100토큰이고 본문은 약 500줄(수천 토큰) 이내를 권장한다.
- 참고 파일 길이 기준
- 참고 파일이 약 100줄을 넘으면 맨 위에 목차를 둔다.
- 참조는 SKILL.md에서 한 단계 깊이까지만 연결한다.
How to Apply
- 내 스킬 description부터 고쳐 쓰기
- 지금 쓰는 스킬의 description을 3인칭으로 바꾸고 기능과 사용 시점, 실제 요청에 나올 용어를 넣는다.
- 'Handles releases' 같은 문장은 'Drafts release notes from… Use when…' 형태로 바꾼다.
- 꼭 지켜야 할 규칙을 hook으로 옮기기
- 스킬 본문에 '반드시'라고 적어둔 규칙을 찾는다.
- 커밋 전 검증이나 파일 저장 후 포맷팅 같은 규칙은 .claude/settings.json의 hook으로 등록한다. 위험한 명령 차단은 PreToolUse에서 exit code 2로 막는다.
- 평가 먼저 쓰고 스킬 만들기
- 스킬 없이 대표 작업을 돌려 실패 지점을 기록하고 테스트 케이스로 만든다.
- 그 케이스를 통과할 최소한의 지시만 쓰고, 새 인스턴스로 트리거 여부를 확인하며 고친다.
- 외부 스킬 설치 전 점검하기
- SKILL.md, 번들 스크립트, 참조 리소스, 외부 URL을 읽고 스킬의 목적과 맞는지 확인한다.
- 로컬 파일을 읽거나 외부로 데이터를 보내는 스킬일수록 더 꼼꼼히 본다.
Try It
# Claude나 Claude Code에 붙여넣기: 논문 방법의 간이 버전 (스킬 description 점검)
아래 SKILL.md의 frontmatter와 본문을 검토해줘.
{{SKILL.md 전체 내용}}
점검 기준:
1. description이 3인칭인가
2. 무엇을 하는지와 언제 쓰는지가 둘 다 있는가
3. 실제 요청에 나올 구체적 용어가 들어 있는가
4. name이 64자 이하이고 소문자, 숫자, 하이픈만 쓰는가
5. 본문이 약 500줄 이내이고 모델이 이미 아는 설명이 없는가
6. 참조 파일이 SKILL.md에서 한 단계 깊이로만 연결되는가
7. 반드시 지켜야 하는 규칙이 본문에 적혀 있다면 hook으로 옮길 후보로 표시
각 항목을 통과/실패로 표시하고, 실패 항목은 고친 문장을 제안해줘.
이어서 해 볼 것: 이 스킬이 불려야 할 요청 5개와 불리지 말아야 할 요청 5개를 만들어 줘.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓
Original Abstract (Expand)
Agent Skills are an emerging way to extend large language model agents with reusable procedural knowledge that the agent loads on demand. Anthropic introduced Agent Skills and published the format as an open specification supported across several agent tools. This note argues that a skill is a software artefact and that its construction should follow software-engineering principles, with qualifications: single responsibility, separation of interface from implementation, low coupling, and economy in a shared token budget, together with behavioural evaluation in place of deterministic testing. Using Claude Code as the reference implementation, it describes how a skill is structured, how its contents are loaded in stages, and how to write the description on which selection depends. It places skills against the other mechanisms a developer can use to shape agent behaviour, like project memory files, slash commands, subagents, external tool connections, and hooks, and gives a rule for choosing between them based on who decides that a mechanism runs and what guarantee it provides. It then sets out an evaluation-driven authoring process, a set of patterns and faults commonly encountered in authoring, and the trust question raised by using skills from third parties. We illustrate the comparison drawn in UML class style, the loading model, the anatomy of a skill, the relative position of each mechanism, and the points at which skills and hooks act during a session.