14P by GN⁺ 6일전 | ★ favorite | 댓글 1개
  • Agent Skills는 Codex에 작업별 전문 능력을 추가해 특정 워크플로를 안정적으로 수행하게 하는 확장 구조
  • 각 스킬은 SKILL.md 파일과 선택적 스크립트·리소스·에셋으로 구성되어, 팀이나 커뮤니티 간 공유 가능
  • Codex는 스킬을 명시적 호출(/skills 명령 또는 $ 입력)과 암묵적 호출(작업 설명과 일치 시 자동 사용) 방식으로 실행
  • 스킬은 REPO, USER, ADMIN, SYSTEM 등 여러 저장 위치와 우선순위 체계를 통해 관리되며, $skill-creator로 새 스킬을 생성 가능
  • 이 기능은 Codex의 CLI와 IDE 확장 모두에서 사용 가능하며, GitHub 등에서 스킬을 설치해 기능을 확장할 수 있음

Agent Skills 개요

  • Agent Skills는 Codex에 새로운 기능과 전문성을 부여하는 구조
    • 스킬은 특정 작업을 수행하기 위한 지침, 리소스, 선택적 스크립트를 패키징
    • 팀 또는 커뮤니티 간 공유 가능하며, open Agent Skills standard를 기반으로 함
  • Codex의 CLI와 IDE 확장 모두에서 사용 가능

스킬 구조와 구성 요소

  • 각 스킬은 SKILL.md 파일을 중심으로 구성되며, 다음과 같은 폴더 구조를 가짐
    • SKILL.md: 필수, 지침 및 메타데이터 포함
    • scripts/: 선택적 실행 코드
    • references/: 선택적 문서
    • assets/: 선택적 템플릿 및 리소스
  • Codex는 progressive disclosure 방식을 사용해 컨텍스트를 효율적으로 관리
    • 시작 시 스킬의 이름과 설명만 로드하고, 필요 시 전체 지침을 읽음

스킬 호출 방식

  • 명시적 호출 (Explicit invocation)
    • /skills 명령이나 $ 입력으로 스킬을 직접 지정
    • Codex 웹 및 iOS 버전은 아직 명시적 호출을 지원하지 않지만, 저장소에 포함된 스킬은 프롬프트로 사용 가능
  • 암묵적 호출 (Implicit invocation)
    • 사용자의 작업이 스킬 설명과 일치할 때 Codex가 자동으로 해당 스킬을 사용

스킬 저장 위치와 우선순위

  • Codex는 여러 위치에서 스킬을 로드하며, 우선순위가 높은 위치의 스킬이 동일 이름의 하위 스킬을 덮어씀
  • 주요 스코프 및 위치
    • REPO: $CWD/.codex/skills, $CWD/../.codex/skills, $REPO_ROOT/.codex/skills
    • USER: $CODEX_HOME/skills 또는 ~/.codex/skills
    • ADMIN: /etc/codex/skills
    • SYSTEM: Codex에 기본 포함된 스킬
  • 각 스코프는 개인, 팀, 시스템 수준의 관리 목적에 따라 사용

스킬 생성 방법

  • Codex 내장 $skill-creator 스킬을 사용해 새 스킬을 자동 생성 가능
    • $plan 스킬과 결합하면 스킬 생성 전 계획을 수립
  • 수동 생성 시, 유효한 위치에 폴더를 만들고 SKILL.md 파일을 작성
    • 필수 항목: name, description
    • 선택 항목: metadata.short-description
  • 스킬은 Agent Skills specification을 기반으로 함

스킬 설치 및 예시

  • $skill-installer 스킬을 사용해 GitHub의 공개 스킬 저장소에서 스킬 설치 가능
    • 예: $skill-installer linear
    • 다른 저장소의 스킬도 설치 가능
  • 내장 스킬 예시
    • $plan: 새로운 기능 개발이나 복잡한 문제 해결을 위한 계획 수립
    • $skill-installer linear: Linear 컨텍스트 접근
    • $skill-installer notion-spec-to-implementation: Notion 데이터 접근

Codex 개발자에게의 의미

  • Agent Skills는 Codex의 확장성과 협업성을 높이는 핵심 구성요소
  • 개발자는 자신만의 스킬을 정의해 자동화된 개발 워크플로를 구축 가능
  • CLI·IDE 통합, GitHub 연동, 표준화된 스킬 사양을 통해 Codex 생태계 확장 가능성 강화
Hacker News 의견들
  • Skills이 표준으로 자리 잡는 게 정말 반가움
    단순한 Markdown 파일로 작성할 수 있고, 기본적으로 context 효율적
    기존 도구 위에 얹을 수 있어서 GitHub MCP 대신 gh CLI 사용법을 설명하는 skill을 만들 수도 있음
    여러 skill을 조합해 사용할 수 있고, Python이나 JS 스크립트도 포함 가능함
    덕분에 별도의 MCP 서버 노출 없이도 훨씬 단순하고 유연한 접근이 가능해짐

    • 여기에 더해, 에이전트 자체가 skill을 편집·개선·추가할 수 있음
      예를 들어 “이번 세션의 핵심 포인트를 skill로 추가해줘” 같은 식으로 자동화 가능함
      좋은 세션뿐 아니라 시행착오가 많았던 세션에서도 학습 내용을 skill로 남길 수 있음
      MCP보다 훨씬 빠르고 접근성 높은 기능 확장 흐름을 제공함
    • 중간 규모의 Django + PostgreSQL + Python 웹앱에서 skill을 어떻게 활용할 수 있을지 고민 중임
      CRUD 중심보다는 데이터 사이언스나 DevOps 쪽에서 더 유용할지도 궁금함
    • 결국 skill은 use case / workflow 레시피 캐싱 같은 개념으로 이해됨
  • Skills의 핵심은, 스펙상 skill 코드나 markdown의 본문 내용에는 RAG가 적용되지 않음
    즉, front-matter의 이름과 설명만 prompt에 포함되어 skill 선택에 사용됨
    따라서 설명에 언급되지 않은 로직은 아예 발견되지 않을 수도 있음
    또한 skill 설명은 일종의 prompt injection이므로, 전체 톤이나 token 비용에도 영향을 줌
    관련 예시는 이 코드 링크 참고

    • 개인적으로는 skill 인덱스가 도움보다 부담이 될 수도 있다고 느낌
      context를 깔끔하게 유지하는 게 중요하므로, 필요할 때만 md 파일을 직접 추가하는 방식을 선호함
      MCP는 과도하게 복잡하고, skill조차 약간 과설계된 느낌이 있음
    • 일부 agentic 시스템은 skill에 RAG를 적용함
      이는 LLM 자체보다는 agentic harness 설계 문제
      앞으로는 LLM과 harness가 더 긴밀히 통합될 것으로 보임
    • MCP나 tools도 결국 같은 문제를 가짐
  • 나는 예전부터 비슷한 방식을 써왔음
    각 기능별로 폴더를 만들고, README.md, scripts, GUIDE.md를 구성함
    재사용 가능한 코드(예: clerk.dev 통합)를 발견하면 폴더로 정리하고,
    필요할 때 merge-to-md로 병합해 사용했음
    이런 접근이 완벽히 잘 작동했는데, 이제 이런 기능이 에이전트에 기본 탑재되는 게 반가움

    • 이 설명 덕분에 skill 개념이 쉽게 이해됨
  • Skills는 장기적으로 오픈소스 라이브러리처럼 발전할 수 있을 것 같음
    인증, 멀티테넌시 같은 표준화된 솔루션을 skill로 제공하면
    보안성과 코드 품질이 크게 향상될 것임

    • 나아가 모델이 글로벌 skill 인덱스에서 필요한 skill을 검색·다운로드해
      즉시 사용할 수 있게 되면, 지속적 학습의 대안이 될 수도 있음
  • Skills, plugins, apps, connectors, MCPs, agents… 솔직히 헷갈림

    • 이런 혼란은 기술의 미성숙과 빠른 변화 때문임
      아직 최적의 접근법이 정해지지 않았고, 용어도 정리되지 않음
      “Agent”조차 그룹마다 의미가 다름
    • 사실 이 모든 건 context를 불러오는 편의 장치일 뿐임
      도구 실행 외에는 prompt에 문맥을 추가하는 다양한 방법임
    • 어떤 사람은 이걸 전부 임시방편(bandaid) 이라 표현함
    • 또 다른 사람은 단지 API와 prompt의 마케팅 이름일 뿐이라 봄
    • LLM이 비슷하지만 약간씩 다른 아이디어를 대량으로 생성하는 현상과도 닮았음
  • 최근 이 글에서
    agent가 LLM을 반복 호출하며 JSON 형식으로 도구 사용 요청을 주고받는 구조를 설명했는데,
    이 프레임워크에서 skill은 어떤 형태일까 궁금함

    • 첫 루프 전에 harness가 LLM에 <Skills> 블록을 전송함
      예: <Skill><Name>postgres</Name><Description>pre-prod DB 쿼리 방법</Description><File>skills/postgres.md</File></Skill>
      이 알림을 주기적으로 재전송해 LLM이 skill을 “잊지 않게” 함
      결국 이름+설명+파일 경로만 전달하므로 token 비용이 적음
      하지만 충분히 똑똑한 LLM이라면 이런 구조 없이도 잘 동작할 수도 있음
    • 에이전트는 필요할 때 하나 이상의 skill을 선택적으로 로드
      skill의 prompt와 관련 스크립트를 함께 불러와 사용하는 표준화된 방식임
  • 많은 사람들이 Skills를 오해하고 있음
    핵심은 .md 파일이 아니라 코드와 지시문의 번들링
    Skills는 코드 실행 환경을 전제로 함

    • 실행 가능한 코드를 미리 승인해두고, 필요할 때 prompt에서 호출할 수도 있음
      메타데이터 인덱싱과 지연 로딩을 통한 context 절약이 큰 장점임
    • 어떤 사람은 이를 literate programming의 부활로 표현함
  • 만약 skills.md 마켓플레이스가 있다면 기술 확산에 도움이 될 것 같음

    • 하지만 현실적으로는 스팸, 보안, 수익성 부재 문제로 운영이 어렵다고 봄
      MCP 관련 스팸 사례만 봐도 알 수 있음
      결국 신뢰할 수 있는 기업이나 유명 개발자 중심으로만 유지될 가능성이 큼
    • 이미 Anthropic의 skills 저장소가 존재함
      평점이나 댓글은 없지만 품질은 기대할 만함
    • 이런 시도는 자주 등장하지만, 맞춤형 skill 제작 비용이 거의 0이라
      남의 prompt를 쓸 유인이 적음
    • 나도 Anthropic 문서를 참고해 skill을 작성하는 skill을 만들어봤음
      결국 중요한 건 자신의 워크플로우와 코드베이스에 맞게 최적화하는 것임
  • 생성된 skill을 활용해, 에이전트가 여러 시도 끝에 얻은 최종 해결책을 정리할 수 있을지 궁금함

    • 나도 “meta skill”을 만들어 세션이 끝난 뒤 스스로 규칙을 갱신하도록 함
      이렇게 flywheel 효과를 만들어가고 있음
  • Anthropic이 OpenAI의 Chief Product Officer처럼 보인다는 농담이 있었음

    • 거기에 “보상도 없는” 덧붙임 농담이 이어짐