agent-skills

1 개의 포스트

line

ODW #6: Git 자동화 관점에서 본 MCP와 에이전트 스킬의 장단점 (새 탭에서 열림)

AI 에이전트 개발에서는 MCP 서버보다 에이전트 스킬이 구현과 아키텍처 측면에서 간단해지는 추세다. 글은 `skill-creator`를 활용해 Git 릴리스 자동화 스킬을 만들고, 요구사항을 구체화하는 과정을 실무 예제로 설명한다. 핵심은 명확한 프롬프트와 로컬 Python 스크립트를 결합해 반복 작업을 자동화하는 것이다. ## MCP에서 에이전트 스킬로의 전환 - MCP 서버 구축보다 에이전트 스킬이 구현하기 쉽고 구조가 단순하다. - 기본 개념이나 대규모 GitHub 예제는 많지만, 일상 업무에 적용하는 실용적인 안내는 부족하다. - 이 글은 스킬 자체의 개념을 깊게 설명하기보다 실제 예제를 만들며 활용 방법을 보여주는 데 초점을 둔다. ## Git 스마트 릴리스 자동화 스킬 - 현재 디렉터리의 Git 프로젝트를 자동으로 릴리스하는 스킬을 예제로 선택했다. - `skill-creator`를 사용해 스킬 정의와 실행 스크립트를 자동 생성한다. - 핵심 작업 흐름은 다음과 같다. - 가장 최근 태그 이후의 `git log` 분석 - 변경 사항을 요약해 `CHANGELOG.md` 최상단에 추가 - `pyproject.toml`의 버전 변경 - 변경 파일 커밋 - 새 버전 태그 생성 - 스킬은 현재 터미널 경로인 `pwd`를 기준으로 동작하는 로컬 Python 스크립트 형태로 구성한다. ## 명확한 요구사항의 중요성 - 에이전트가 엉뚱한 디렉터리를 수정하거나 과도하게 복잡한 계획을 세우지 않도록 목표와 제약 조건을 프롬프트에 구체적으로 작성해야 한다. - 초기 요구사항에는 다음 내용이 포함된다. - `v0.1.0` 등 최근 태그 이후의 커밋 조회 - `CHANGELOG.md`가 없으면 새로 생성 - 버전을 patch 단위로 증가 - `chore: release v[새 버전]` 형식으로 커밋 - 새 버전의 Git 태그 생성 - 현재 작업 경로에서만 실행 ## 대화형 요구사항 구체화 에이전트는 모호한 부분을 질문하고, 사용자는 답변을 통해 스킬 동작을 확정한다. - 버전 증가 방식 - patch, minor, major 모두 지원 - 사용자가 원하는 릴리스 유형을 선택 - 최초 릴리스 - 기존 태그가 없으면 `v0.1.0`부터 시작 - 변경 로그 - Keep a Changelog 형식을 따름 - 버전, 날짜, `feat`, `fix`, `docs` 등의 변경 분류를 포함 - 원격 저장소 - 로컬 커밋과 태그 생성 후 원격 저장소에도 push - 작업 디렉터리 안전성 - 커밋되지 않은 변경 사항이 있으면 작업을 중단 - 중단 이유를 사용자에게 설명 ## 생성된 스킬의 구조 - `git-smart-release/SKILL.md` - 스킬의 메타데이터와 에이전트가 따라야 할 실행 절차를 담는다. - `git-smart-release/scripts/smart_release.py` - Git 명령 실행, 파일 수정, 버전 변경 등 실제 작업을 수행한다. - `git-smart-release/evals/evals.json` - 스킬 동작을 검증하기 위한 테스트 케이스를 담는다. ## SKILL.md와 실행 스크립트의 역할 - 프런트매터 - YAML 형식의 메타데이터다. - 에이전트가 스킬을 언제 사용할지 판단할 수 있도록 짧은 설명과 검색 정보를 제공한다. - 마크다운 본문 - 스킬 사용이 결정된 뒤 읽히는 실행 매뉴얼이다. - 구체적인 절차와 워크플로를 정의한다. - `smart_release.py` - Git 상태 확인, 로그 분석, 파일 변경, 커밋과 태그 생성 등을 직접 처리한다. - LLM이 모든 파일 내용을 직접 읽고 수정하는 대신 결정된 작업을 코드로 실행해 토큰 사용과 오류를 줄인다. ## 실무 적용 방식 - 사용자는 “릴리스해 줘”처럼 자연어로 요청할 수 있다. - 에이전트는 요청에 맞는 버전 유형을 선택하고 스킬 지침을 따른다. - 스크립트는 먼저 작업 디렉터리가 깨끗한지 확인한다. - 변경 사항이 있으면 안전을 위해 중단하고, 문제가 없을 때만 변경 로그 작성부터 커밋·태그·원격 push까지 진행한다. - 글은 이후 Python 계산기 프로젝트를 대상으로 제작한 스킬을 테스트하는 시나리오로 이어진다. 반복적인 Git 릴리스 업무를 자동화하려면 요구사항, 예외 처리, 실행 범위를 프롬프트에 명확히 적고, 실제 파일·Git 조작은 검증 가능한 스크립트로 분리하는 것이 좋다. 특히 자동 push 기능은 되돌리기 어려우므로 dirty check와 실행 전 확인 절차를 함께 두는 것을 권장한다.