<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Agent Skills on jyukki's Blog</title><link>https://jyukki.com/tags/agent-skills/</link><description>Recent content in Agent Skills on jyukki's Blog</description><generator>Hugo -- 0.147.0</generator><language>ko-kr</language><lastBuildDate>Tue, 26 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jyukki.com/tags/agent-skills/index.xml" rel="self" type="application/rss+xml"/><item><title>2026 개발 트렌드: Agent Skill Supply Chain, 코딩 에이전트 스킬은 프롬프트가 아니라 검증해야 할 의존성이다</title><link>https://jyukki.com/posts/2026-05-26-agent-skill-supply-chain-governance-trend/</link><pubDate>Tue, 26 May 2026 10:06:00 +0900</pubDate><guid>https://jyukki.com/posts/2026-05-26-agent-skill-supply-chain-governance-trend/</guid><description>AWS, Contentful, k-ID 같은 벤더가 agent skills를 공개하고 스킬 레지스트리가 늘어나는 흐름 속에서, 팀은 스킬을 단순 프롬프트가 아니라 버전·권한·출처·검증을 가진 의존성으로 관리해야 합니다.</description><content:encoded><![CDATA[<p>2026년 들어 코딩 에이전트 생태계에서 조용히 커지는 단어가 있습니다. 바로 <strong>agent skills</strong>입니다. AWS는 2026년 5월 6일 <a href="https://aws.amazon.com/about-aws/whats-new/2026/05/agent-toolkit/">Agent Toolkit for AWS</a>를 공개하며 agent skills, managed MCP server, 플러그인을 묶어 코딩 에이전트가 AWS 작업을 더 안정적으로 수행하도록 돕겠다고 설명했습니다. Contentful도 5월 20일 <a href="https://www.contentful.com/blog/introducing-contentful-skills/">Contentful Skills</a>를 공개했고, k-ID는 5월 18일 <a href="https://docs.k-id.com/changelog/agent-skills-public-launch">공식 Agent Skills bundle</a>을 발표했습니다. 이제 스킬은 개인이 로컬에 적어 둔 팁 파일이 아니라, 벤더가 배포하고 팀이 공유하는 실행 지식 패키지가 되고 있습니다.</p>
<p>동시에 연구 쪽에서는 경고음도 나옵니다. 2026년 4월 논문 <a href="https://arxiv.org/abs/2604.04323">How Well Do Agentic Skills Work in the Wild</a>는 3.4만 개 실제 스킬을 대상으로, 에이전트가 필요한 스킬을 직접 찾아 쓰는 현실 조건에서는 성능 이득이 줄어드는 문제를 다룹니다. 보안 연구인 <a href="https://arxiv.org/abs/2601.10338">Agent Skills in the Wild</a>와 <a href="https://arxiv.org/abs/2602.06547">Malicious Agent Skills in the Wild</a>는 스킬이 instruction bundle을 넘어 실행 코드와 권한 전제를 포함할 때 새로운 공격 표면이 된다는 점을 보여줍니다.</p>
<p>이 흐름을 저는 <strong>Agent Skill Supply Chain</strong>이라고 부르겠습니다. 관련 글인 <a href="/posts/2026-05-23-cloud-agent-toolkit-provider-maintained-workflow-trend/">Cloud Agent Toolkit</a>, <a href="/posts/2026-05-17-repo-local-agent-policy-trend/">Repo-local Agent Policy</a>, <a href="/posts/2026-04-05-tool-permission-manifest-runtime-attestation-trend/">Tool Permission Manifest</a>, <a href="/posts/2026-05-12-package-release-quarantine-gate-trend/">Package Release Quarantine Gate</a>와 같은 문제의식입니다. 코드 패키지가 supply chain이면, 에이전트의 행동을 바꾸는 skill도 supply chain입니다.</p>
<h2 id="이-글에서-얻는-것">이 글에서 얻는 것</h2>
<ul>
<li>agent skill을 단순 프롬프트가 아니라 검증 가능한 의존성으로 보는 기준을 얻습니다.</li>
<li>공식 skill, 커뮤니티 skill, 내부 skill을 서로 다른 신뢰 등급으로 관리하는 방법을 이해합니다.</li>
<li>skill registry, version pin, 권한 manifest, canary task, stale review를 어떤 순서로 도입할지 정리할 수 있습니다.</li>
<li>스킬을 많이 설치할수록 왜 검색 품질과 보안 위험이 동시에 나빠질 수 있는지 판단할 수 있습니다.</li>
</ul>
<h2 id="핵심-개념이슈">핵심 개념/이슈</h2>
<h3 id="1-스킬은-에이전트의-행동을-바꾸는-런타임-입력이다">1) 스킬은 에이전트의 행동을 바꾸는 런타임 입력이다</h3>
<p>사람이 README를 읽고 따라 하는 것과 에이전트가 skill을 로드하고 실행하는 것은 다릅니다. 사람은 이상한 명령을 보면 멈출 수 있지만, 에이전트는 skill에 적힌 절차를 신뢰하고 도구를 호출할 수 있습니다. 특히 스킬이 shell script, MCP tool, browser automation, cloud CLI, package manager를 다루면 위험 모델은 &ldquo;문서&quot;가 아니라 &ldquo;실행 가능한 운영 절차&quot;에 가까워집니다.</p>
<p>그래서 skill manifest에는 최소한 아래 필드가 필요합니다.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ff79c6">skill_id</span>: aws-core/serverless-api
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">source</span>: <span style="color:#f1fa8c">&#34;aws/agent-toolkit&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">version</span>: <span style="color:#f1fa8c">&#34;2026.05.06&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">owner</span>: platform-team
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">trust_tier</span>: official-vendor
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">allowed_tools</span>:
</span></span><span style="display:flex;"><span>  - docs_read
</span></span><span style="display:flex;"><span>  - iac_plan
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">blocked_tools</span>:
</span></span><span style="display:flex;"><span>  - cloud_apply
</span></span><span style="display:flex;"><span>  - secret_read
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">last_verified_at</span>: 2026-05-26
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">review_interval_days</span>: <span style="color:#bd93f9">30</span>
</span></span><span style="display:flex;"><span><span style="color:#ff79c6">canary_tasks</span>:
</span></span><span style="display:flex;"><span>  - <span style="color:#f1fa8c">&#34;generate plan-only S3 lifecycle policy&#34;</span>
</span></span></code></pre></div><p>핵심은 &ldquo;어떤 스킬을 설치했나&quot;보다 &ldquo;그 스킬이 어떤 권한으로 무엇을 하게 만들 수 있나&quot;입니다. 이 관점은 <a href="/posts/2026-04-30-tool-contract-test-agent-runtime-trend/">Tool Contract Test</a>와 바로 연결됩니다. 스킬은 설명이 아니라 테스트 대상입니다.</p>
<h3 id="2-스킬이-많을수록-항상-좋아지는-것은-아니다">2) 스킬이 많을수록 항상 좋아지는 것은 아니다</h3>
<p>스킬의 장점은 반복 절차를 줄이고 최신 도메인 지식을 넣는 것입니다. 하지만 100개, 1,000개가 넘어가면 다른 문제가 생깁니다.</p>
<ul>
<li>에이전트가 필요한 스킬을 찾지 못한다.</li>
<li>비슷한 스킬이 서로 다른 절차를 제안한다.</li>
<li>오래된 스킬이 새 API나 정책과 충돌한다.</li>
<li>스킬이 요구하는 권한이 실제 작업보다 넓다.</li>
<li>내부 규칙보다 외부 벤더 예제가 우선되는 drift가 생긴다.</li>
</ul>
<p>실무 기준으로는 한 repo에서 기본 로드되는 스킬을 10~20개 이하로 제한하는 편이 좋습니다. 나머지는 작업 유형별로 lazy load하거나, approved registry에서 명시적으로 선택하게 둡니다. 특히 보안, 배포, 클라우드, 데이터 마이그레이션 스킬은 자동 검색보다 allowlist 기반이 안전합니다.</p>
<h3 id="3-공식-출처와-내부-적합성은-별개다">3) 공식 출처와 내부 적합성은 별개다</h3>
<p>AWS, Contentful, k-ID 같은 공식 스킬은 신뢰할 수 있는 최신 지식을 제공한다는 장점이 있습니다. 하지만 공식 스킬이 곧 내부 기준에 맞는다는 뜻은 아닙니다. 예를 들어 벤더 예제는 특정 리전을 기본값으로 쓰거나, 빠른 데모를 위해 넓은 IAM 권한을 제안하거나, 내부 비용 태그·데이터 보존·네트워크 제한을 모를 수 있습니다.</p>
<p>따라서 공식 스킬도 내부 policy와 결합해야 합니다. 외부 스킬은 &ldquo;도메인 절차&quot;를 제공하고, repo-local policy는 &ldquo;우리 조직에서 허용되는 경계&quot;를 제공합니다. 둘이 충돌하면 내부 policy가 이겨야 합니다.</p>
<h2 id="실무-적용">실무 적용</h2>
<h3 id="1-skill-registry를-패키지-registry처럼-운영한다">1) skill registry를 패키지 registry처럼 운영한다</h3>
<p>처음부터 큰 플랫폼을 만들 필요는 없습니다. <code>approved-skills.yaml</code> 하나로 시작해도 충분합니다.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ff79c6">skills</span>:
</span></span><span style="display:flex;"><span>  - <span style="color:#ff79c6">id</span>: contentful/nextjs-migration
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">source_url</span>: <span style="color:#f1fa8c">&#34;https://www.contentful.com/blog/introducing-contentful-skills/&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">pinned_ref</span>: <span style="color:#f1fa8c">&#34;2026-05-20&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">trust_tier</span>: official-vendor
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">allowed_repos</span>: [<span style="color:#f1fa8c">&#34;web-storefront&#34;</span>, <span style="color:#f1fa8c">&#34;marketing-site&#34;</span>]
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">allowed_tools</span>: [<span style="color:#f1fa8c">&#34;file_read&#34;</span>, <span style="color:#f1fa8c">&#34;file_write&#34;</span>, <span style="color:#f1fa8c">&#34;test_run&#34;</span>]
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">denied_tools</span>: [<span style="color:#f1fa8c">&#34;external_write&#34;</span>, <span style="color:#f1fa8c">&#34;secret_read&#34;</span>]
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">owner</span>: <span style="color:#f1fa8c">&#34;web-platform&#34;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#ff79c6">expires_at</span>: <span style="color:#f1fa8c">&#34;2026-06-30&#34;</span>
</span></span></code></pre></div><p>이 목록에 없는 스킬은 기본 차단하거나 read-only 실험으로만 허용합니다. 설치 요청에는 source, 목적, 필요한 도구 권한, 예상 변경 범위, canary task가 있어야 합니다. 커뮤니티 스킬은 최소 24<del>72시간 quarantine window를 두고, 내부 task corpus 3</del>5개로 smoke를 돌린 뒤 승인하는 편이 안전합니다.</p>
<h3 id="2-skill-ci를-만든다">2) skill CI를 만든다</h3>
<p>스킬도 테스트해야 합니다. 좋은 테스트는 모델 성능 전체를 평가하는 것이 아니라, 스킬이 절대 깨면 안 되는 계약을 좁게 확인합니다.</p>
<ul>
<li>금지된 도구를 호출하지 않는가</li>
<li>내부 policy와 충돌하는 권한을 요구하지 않는가</li>
<li>최신 API 문서 링크가 살아 있는가</li>
<li>예제 명령이 dry-run 또는 plan-only로 끝나는가</li>
<li>실패 시 사람 승인으로 멈추는가</li>
<li>출력에 비밀값, 내부 URL, 고객 데이터가 섞이지 않는가</li>
</ul>
<p>지표는 단순합니다. <code>skill_canary_pass_rate</code>는 95% 이상, <code>forbidden_tool_call</code>은 0건, <code>stale_skill_count</code>는 전체의 10% 이하를 목표로 잡습니다. 30일 이상 검증되지 않은 외부 스킬은 자동으로 warning, 60일 이상이면 기본 로드에서 제외하는 방식이 현실적입니다.</p>
<h3 id="3-스킬-산출물도-artifact로-남긴다">3) 스킬 산출물도 artifact로 남긴다</h3>
<p>스킬이 실제 작업에 영향을 줬다면 결과에 흔적이 남아야 합니다. PR 본문이나 agent receipt에 <code>skill_id</code>, <code>skill_version</code>, <code>loaded_at</code>, <code>allowed_tools</code>, <code>canary_status</code> 정도를 남기면 나중에 문제를 추적하기 쉽습니다. 이 구조는 <a href="/posts/2026-05-19-agent-artifact-registry-trend/">Agent Artifact Registry</a>와 잘 맞습니다.</p>
<p>예를 들어 클라우드 설정 PR에서 문제가 났을 때 &ldquo;Codex가 만들었다&quot;는 정보는 거의 쓸모가 없습니다. 어떤 AWS skill 버전이 로드됐고, 어떤 내부 policy와 함께 실행됐고, dry-run 결과가 어디에 남았는지가 필요합니다.</p>
<h2 id="트레이드오프주의점">트레이드오프/주의점</h2>
<p>첫째, 스킬 검증을 너무 엄격하게 만들면 팀이 우회합니다. 모든 외부 스킬을 보안팀 승인으로 묶으면 개인 로컬 폴더에 복사해 쓰는 문화가 생길 수 있습니다. 읽기 전용, plan-only, 내부 repo 한정처럼 낮은 위험 경로를 열어 두고, 쓰기 권한부터 강하게 막는 편이 낫습니다.</p>
<p>둘째, 스킬을 많이 깔수록 retrieval noise가 늘어납니다. 에이전트가 매번 50개 스킬 중 하나를 고르게 만들면 실패 가능성이 커집니다. 기본 로드 스킬은 작게 유지하고, 작업 라벨이나 repo metadata로 후보를 줄여야 합니다.</p>
<p>셋째, 공식 스킬은 lock-in을 만들 수 있습니다. 벤더가 제공하는 절차는 빠르고 최신이지만, 내부 추상화가 모두 특정 벤더 용어로 굳으면 나중에 다른 클라우드나 다른 CMS로 이동할 때 비용이 커집니다. 핵심 정책은 내부 형식으로 남기고, 벤더 스킬은 adapter처럼 쓰는 편이 좋습니다.</p>
<p>넷째, 에이전트가 스킬을 자동 생성하는 기능은 편하지만 더 위험합니다. 자동 생성 스킬은 초안으로만 두고, 팀 공유 registry에 올리기 전에는 owner review와 canary task를 반드시 거쳐야 합니다.</p>
<h2 id="체크리스트-또는-연습">체크리스트 또는 연습</h2>
<ul>
<li><input disabled="" type="checkbox"> 팀에서 사용하는 agent skill 목록과 설치 위치를 한 곳에서 볼 수 있다.</li>
<li><input disabled="" type="checkbox"> 외부 스킬은 source, pinned ref, owner, allowed tools, review interval을 가진다.</li>
<li><input disabled="" type="checkbox"> 기본 로드되는 스킬은 repo당 10~20개 이하로 제한한다.</li>
<li><input disabled="" type="checkbox"> cloud, deploy, security, data migration 스킬은 allowlist 기반으로만 로드한다.</li>
<li><input disabled="" type="checkbox"> 스킬별 canary task와 forbidden tool call 테스트가 있다.</li>
<li><input disabled="" type="checkbox"> 30일 이상 검증되지 않은 외부 스킬은 stale 후보로 표시한다.</li>
<li><input disabled="" type="checkbox"> PR/receipt에 사용된 skill id와 version이 남는다.</li>
</ul>
<p>연습으로 현재 사용하는 코딩 에이전트의 skill 폴더를 열고, 스킬 5개를 <code>공식 벤더 / 내부 제작 / 커뮤니티 / 자동 생성</code>으로 분류해 보세요. 각 스킬에 대해 &ldquo;이 스킬이 잘못되면 어떤 도구를 잘못 호출할 수 있는가&rdquo;, &ldquo;누가 업데이트하는가&rdquo;, &ldquo;마지막으로 실제 task에서 검증한 날짜가 언제인가&quot;를 적어 보면 바로 우선순위가 나옵니다. 답이 없는 스킬은 제거 대상이 아니라, 먼저 quarantine과 검증 대상입니다.</p>
]]></content:encoded></item></channel></rss>