<?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 Platform on jyukki's Blog</title><link>https://jyukki.com/tags/agent-platform/</link><description>Recent content in Agent Platform on jyukki's Blog</description><generator>Hugo -- 0.147.0</generator><language>ko-kr</language><lastBuildDate>Thu, 09 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jyukki.com/tags/agent-platform/index.xml" rel="self" type="application/rss+xml"/><item><title>2026 개발 트렌드: Harness Engineering, 에이전트 품질은 모델보다 실행 프레임에서 더 빨리 갈린다</title><link>https://jyukki.com/posts/2026-04-09-harness-engineering-agent-runtime-frame-trend/</link><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid>https://jyukki.com/posts/2026-04-09-harness-engineering-agent-runtime-frame-trend/</guid><description>최근 개발팀의 관심이 프롬프트 최적화에서 실행 프레임 설계로 이동하고 있습니다. Harness Engineering이 왜 에이전트 도입의 실질 성패를 가르는지 실무 기준으로 정리합니다.</description><content:encoded><![CDATA[<p>요즘 에이전트 이야기를 하는 팀들을 보면, 대화 주제가 조금씩 바뀌고 있습니다. 예전에는 &ldquo;어떤 모델이 더 코드를 잘 쓰는가&quot;가 중심이었다면, 지금은 &ldquo;이 에이전트를 어떤 프레임 안에서 움직이게 할 것인가&quot;가 더 중요한 질문이 됐습니다. 같은 모델을 써도 어떤 팀은 PR 품질과 운영 안정성이 같이 올라가고, 어떤 팀은 재시도만 늘고 리뷰 피로만 커집니다.</p>
<p>이 차이를 만드는 게 바로 <strong>Harness Engineering</strong>입니다. 여기서 harness는 단순 래퍼 스크립트가 아닙니다. 컨텍스트를 어떻게 주입하고, 어떤 도구를 언제 열어 주고, 어떤 결과만 통과시키고, 실패하면 어디서 멈추고 사람에게 넘길지를 정하는 <strong>실행 프레임</strong>에 가깝습니다.</p>
<p>즉 2026년의 경쟁 포인트는 &ldquo;더 똑똑한 모델 1개&quot;보다, <strong>덜 흔들리는 실행 구조 1개</strong>에 있습니다.</p>
<h2 id="이-글에서-얻는-것">이 글에서 얻는 것</h2>
<ul>
<li>Harness Engineering이 왜 프롬프트 튜닝 다음 단계가 아니라, 이미 별도 설계 분야로 올라왔는지 이해할 수 있습니다.</li>
<li>컨텍스트, 권한, 검증, 복구를 어떤 순서로 묶어야 에이전트 품질이 안정되는지 기준을 잡을 수 있습니다.</li>
<li>팀이 실제 도입 여부를 판단할 때 필요한 숫자 기준, 운영 우선순위, 실패 중단 조건을 바로 가져갈 수 있습니다.</li>
</ul>
<h2 id="핵심-개념이슈">핵심 개념/이슈</h2>
<h3 id="1-프롬프트보다-실행-경계가-더-큰-품질-차이를-만든다">1) 프롬프트보다 실행 경계가 더 큰 품질 차이를 만든다</h3>
<p>초기에는 프롬프트를 잘 쓰면 품질이 올라가는 구간이 분명 있었습니다. 하지만 팀 단위 운영으로 들어가면 프롬프트보다 더 큰 차이를 만드는 요소가 나타납니다.</p>
<ul>
<li>잘못된 컨텍스트를 얼마나 빨리 차단하는가</li>
<li>허용되지 않은 도구 호출을 어떻게 막는가</li>
<li>초안이 나왔을 때 어떤 검증기를 반드시 거치게 하는가</li>
<li>실패했을 때 무한 재시도 대신 어디서 중단하는가</li>
</ul>
<p>이 네 가지가 약하면 모델이 좋아도 결과가 흔들립니다. 그래서 최근 흐름은 프롬프트 엔지니어링에서 끝나지 않고, <a href="/posts/2026-04-04-schema-constrained-output-runtime-validator-trend/">Schema-Constrained Output + Runtime Validator</a>나 <a href="/posts/2026-04-05-tool-permission-manifest-runtime-attestation-trend/">Tool Permission Manifest + Runtime Attestation</a>처럼 <strong>계약과 실행 증적을 먼저 붙이는 구조</strong>로 이동하고 있습니다.</p>
<h3 id="2-좋은-harness는-무엇을-더-하게-할지보다-무엇을-못-하게-막을지를-먼저-정의한다">2) 좋은 harness는 &lsquo;무엇을 더 하게 할지&rsquo;보다 &lsquo;무엇을 못 하게 막을지&rsquo;를 먼저 정의한다</h3>
<p>실무에서 에이전트 사고는 대체로 기능 부족보다 경계 부족에서 시작합니다.</p>
<ul>
<li>읽기 전용이어야 할 작업이 쓰기 권한까지 가진 상태로 실행</li>
<li>테스트 증거 없이 코드 수정 결과를 그대로 PR에 반영</li>
<li>저장소 전체를 읽을 필요가 없는데 과도한 컨텍스트를 계속 주입</li>
<li>실패한 작업을 같은 조건으로 반복 실행</li>
</ul>
<p>결국 harness의 첫 역할은 생산성 증폭이 아니라 <strong>위험 반경 제한</strong>입니다. 이 점은 이미 <a href="/posts/2026-03-04-ai-coding-agent-runtime-governance-trend/">AI 코딩 에이전트 런타임 거버넌스</a>와 <a href="/posts/2026-02-28-ai-agent-observability-trend/">AI 에이전트 관측/통제</a> 흐름에서 드러났고, 최근에는 그 위에 더 세밀한 하네스 레이어가 붙고 있습니다.</p>
<h3 id="3-컨텍스트-주입-도구-권한-결과-검증-실패-복구는-분리-설계해야-한다">3) 컨텍스트 주입, 도구 권한, 결과 검증, 실패 복구는 분리 설계해야 한다</h3>
<p>Harness를 한 덩어리 설정 파일로 관리하면 빠르게 복잡해집니다. 실무에서는 보통 네 층으로 쪼개는 편이 안정적입니다.</p>
<ol>
<li><strong>Context layer</strong>: 어떤 저장소 정보, 문서, 히스토리를 넣을지 결정</li>
<li><strong>Capability layer</strong>: 읽기/쓰기/명령 실행/외부 호출 권한을 제한</li>
<li><strong>Validation layer</strong>: 스키마, 테스트, 정책, 위험 경로 검증</li>
<li><strong>Recovery layer</strong>: 재시도, 인간 승인, 중단, 롤백 흐름</li>
</ol>
<p>이 네 층이 섞이면 수정이 어려워지고, 실패 원인도 안 보입니다. 반대로 분리하면 같은 모델을 써도 작업 유형별로 harness만 달리 적용할 수 있습니다. 최근 <a href="/posts/2026-04-02-codebase-knowledge-graph-semantic-index-trend/">코드베이스 지식 그래프 + 시맨틱 인덱스</a>가 주목받는 것도 context layer를 별도 자산으로 보기 시작했기 때문입니다.</p>
<h3 id="4-품질-평가는-정답률보다-머지-가능성과-재작업률이-더-중요하다">4) 품질 평가는 정답률보다 &lsquo;머지 가능성&rsquo;과 &lsquo;재작업률&rsquo;이 더 중요하다</h3>
<p>데모 단계에서는 응답 품질이 중요하지만, 운영 단계에서는 다른 지표가 더 중요합니다.</p>
<ul>
<li>첫 시도 후 머지 가능 비율</li>
<li>리뷰어 수동 수정량</li>
<li>재시도 횟수</li>
<li>정책 위반 차단 건수</li>
<li>위험 경로 변경 시 인간 승인 전환 비율</li>
</ul>
<p>즉 harness는 모델 성능을 보기 좋게 만드는 장치가 아니라, <strong>팀이 받아들일 수 있는 결과만 통과시키는 게이트</strong>입니다. 그래서 최근 실무에서는 생성량보다 &ldquo;검증 후 통과율&quot;이 더 중요한 KPI가 됩니다.</p>
<h2 id="도입-초기에-가장-자주-터지는-실패-패턴">도입 초기에 가장 자주 터지는 실패 패턴</h2>
<h3 id="1-읽기-컨텍스트는-넓은데-쓰기-권한이-그대로-열려-있는-경우">1) 읽기 컨텍스트는 넓은데 쓰기 권한이 그대로 열려 있는 경우</h3>
<p>이 조합은 현업에서 정말 자주 보입니다. 저장소 전체를 읽을 수 있게 열어 놓고, 수정도 바로 가능하게 두면 에이전트는 빠르게 움직이지만 동시에 잘못된 파일까지 건드릴 확률도 올라갑니다. 특히 오래된 문서, 실험 코드, 생성 산출물이 섞인 저장소에서는 최신 경로와 폐기 경로를 구분하지 못한 채 수정이 퍼집니다.</p>
<p>실무에서는 먼저 <code>읽을 수 있는 범위</code>와 <code>쓸 수 있는 범위</code>를 분리해야 합니다. 예를 들어 전체 저장소 읽기는 허용하더라도, 쓰기는 특정 앱 디렉터리나 문서 경로만 허용하고 민감 디렉터리는 승인 게이트로 넘기는 식입니다. 이 구조가 있어야 <a href="/posts/2026-04-05-tool-permission-manifest-runtime-attestation-trend/">Tool Permission Manifest + Runtime Attestation</a> 같은 통제 레이어가 실제 효과를 냅니다.</p>
<h3 id="2-테스트는-돌리지만-통과-기준이-느슨한-경우">2) 테스트는 돌리지만 통과 기준이 느슨한 경우</h3>
<p>많은 팀이 &ldquo;테스트를 붙였다&quot;고 말하지만, 실제로는 일부 단위 테스트만 통과해도 결과를 올려버립니다. 이러면 하네스가 있어도 품질이 안정되지 않습니다. 중요한 건 테스트 실행 여부가 아니라 <strong>어떤 증거가 있어야 다음 단계로 넘어갈 수 있는지</strong>입니다.</p>
<p>예를 들어 코드 수정 작업이라면 <code>정적 분석 통과 + 변경 경로 테스트 통과 + 위험 파일 변경 여부 확인</code> 세 가지를 동시에 만족해야 제출 가능하게 만드는 편이 낫습니다. 문서 수정 작업도 마찬가지로 링크 점검, front matter 검증, 중복 확인이 빠지면 운영 품질이 계속 흔들립니다.</p>
<h3 id="3-실패-복구가-재시도-루프-하나로-끝나는-경우">3) 실패 복구가 재시도 루프 하나로 끝나는 경우</h3>
<p>재시도는 복구 전략의 일부일 뿐, 복구 그 자체가 아닙니다. 같은 컨텍스트와 같은 권한으로 세 번 반복하면 품질이 올라가기보다 비용만 늡니다. 그래서 recovery layer에는 최소한 아래 세 가지가 필요합니다.</p>
<ul>
<li>동일 오류 반복 시 read-only 강등</li>
<li>정책 차단과 테스트 실패를 구분한 분기</li>
<li>인간 승인 또는 handoff로 전환하는 상한선</li>
</ul>
<p>이 원칙이 없으면 에이전트 운영은 자동화가 아니라 반복 실패의 자동 확장이 됩니다. 최근 <a href="/posts/2026-04-03-inference-router-quality-cost-gateway-trend/">Inference Router + Quality-Cost Gateway</a>가 주목받는 이유도, 결국 모델 선택보다 먼저 실패 비용을 통제하는 프레임이 필요하기 때문입니다.</p>
<h2 id="실무-적용">실무 적용</h2>
<h3 id="1-언제-harness-engineering-투자가-필요한가">1) 언제 Harness Engineering 투자가 필요한가</h3>
<p>아래 조건 중 2개 이상이면 프롬프트 개선보다 harness 투자가 먼저입니다.</p>
<ul>
<li>AI 생성 결과의 재작업률이 20% 이상</li>
<li>동일 유형 작업의 성공 품질 편차가 큰 편</li>
<li>PR 생성까지는 빠르지만 머지 리드타임이 줄지 않음</li>
<li>민감 경로 변경, 외부 호출, 명령 실행이 함께 섞여 있음</li>
<li>실패 원인이 모델 탓인지 권한/검증/컨텍스트 탓인지 구분이 안 됨</li>
</ul>
<p>반대로 문서 초안, 요약, 비민감 read-only 작업 위주라면 무거운 harness가 과할 수 있습니다.</p>
<h3 id="2-의사결정-기준숫자조건우선순위">2) 의사결정 기준(숫자·조건·우선순위)</h3>
<p>권장 우선순위는 <strong>무단 실행 방지 &gt; 결과 검증 가능성 &gt; 재현성 &gt; 처리 속도 &gt; 비용</strong> 입니다.</p>
<p>초기 운영 기준 예시:</p>
<ul>
<li>미허용 도구 호출 차단률: 100%</li>
<li>스키마/정책 검증 통과 전 자동 제출률: 0%</li>
<li>첫 시도 머지 가능 비율: 60% 이상 목표</li>
<li>재작업률: 20% 미만</li>
<li>동일 작업 재시도 3회 초과 비율: 5% 미만</li>
<li>인간 승인 대기 p95: 10분 이내</li>
</ul>
<p>자동 완화 규칙 예시:</p>
<ul>
<li>동일 작업 2회 연속 정책 차단 시 read-only 모드로 강등</li>
<li>테스트 실패 + 민감 경로 변경 동시 발생 시 자동 중단</li>
<li>컨텍스트 stale 추정치 15분 초과 시 쓰기 권한 비활성화</li>
<li>재시도 3회 초과 시 모델 교체보다 harness 진단을 먼저 수행</li>
</ul>
<h3 id="3-권장-최소-하네스-구성">3) 권장 최소 하네스 구성</h3>
<p>작게 시작할 때는 아래 5개면 충분합니다.</p>
<ol>
<li>작업 유형별 권한 티어 분리</li>
<li>읽기 컨텍스트 allowlist와 stale 경보</li>
<li>출력 스키마 또는 체크리스트 기반 validator</li>
<li>민감 경로 변경 시 승인 게이트</li>
<li>실패 시 즉시 중단할 kill switch</li>
</ol>
<p>이 조합만 있어도 &ldquo;에이전트가 잘 썼는가&quot;보다 &ldquo;에이전트가 안전하게 일했는가&quot;를 볼 수 있습니다. 비용 최적화가 필요한 팀은 <a href="/posts/2026-04-03-inference-router-quality-cost-gateway-trend/">Inference Router + Quality-Cost Gateway</a>를 별도 레이어로 붙이는 편이 깔끔합니다.</p>
<h3 id="4-4주-도입-플랜">4) 4주 도입 플랜</h3>
<p><strong>1주차: 실패를 분류한다</strong><br>
모델 실패, 컨텍스트 실패, 권한 실패, 검증 실패, 승인 대기 실패를 나눠 기록합니다.</p>
<p><strong>2주차: 작업 유형별 하네스 분리</strong><br>
read-only, 문서 수정, 코드 수정, 배포 연계 작업을 각각 다른 권한과 검증으로 나눕니다.</p>
<p><strong>3주차: validator와 승인 게이트 연결</strong><br>
스키마 검증, 테스트 증거, 민감 경로 차단 규칙을 자동화합니다.</p>
<p><strong>4주차: 관측과 강등 규칙 고정</strong><br>
재시도 상한, 인간 handoff 조건, kill switch 절차를 문서화합니다.</p>
<h2 id="트레이드오프주의점">트레이드오프/주의점</h2>
<ol>
<li>
<p><strong>하네스를 너무 두껍게 만들면 속도가 떨어진다</strong><br>
모든 작업에 동일한 검증과 승인을 붙이면 작은 작업도 과하게 느려집니다. 작업 등급별 차등이 필요합니다.</p>
</li>
<li>
<p><strong>프레임이 좋아도 컨텍스트가 낡으면 결과는 계속 흔들린다</strong><br>
Harness는 모델을 보호하지만, 오래된 코드 정보까지 마법처럼 고쳐 주지는 못합니다.</p>
</li>
<li>
<p><strong>검증기가 약하면 하네스가 있어도 데모 수준에 머문다</strong><br>
출력 형식 검사만 하고 의미 검증을 안 하면, 보기 좋은 오답이 그대로 통과합니다.</p>
</li>
<li>
<p><strong>승인 체계를 병목으로 만들면 우회 경로가 생긴다</strong><br>
승인 SLA, 백업 승인자, 자동 강등 규칙 없이 통제만 강화하면 결국 비공식 사용이 늘어납니다.</p>
</li>
</ol>
<h2 id="체크리스트-또는-연습">체크리스트 또는 연습</h2>
<h3 id="체크리스트">체크리스트</h3>
<ul>
<li><input disabled="" type="checkbox"> 작업 유형별로 컨텍스트, 권한, 검증, 복구 규칙이 분리돼 있다.</li>
<li><input disabled="" type="checkbox"> 미허용 도구 호출과 민감 경로 변경은 자동 차단된다.</li>
<li><input disabled="" type="checkbox"> 결과 제출 전 validator 또는 테스트 증거가 필수다.</li>
<li><input disabled="" type="checkbox"> 재시도 상한과 인간 handoff 조건이 숫자로 정의돼 있다.</li>
<li><input disabled="" type="checkbox"> kill switch와 read-only 강등 절차가 문서화돼 있다.</li>
</ul>
<h3 id="연습-과제">연습 과제</h3>
<ol>
<li>최근 2주간 에이전트 작업 20건을 골라 실패 원인을 <code>모델/컨텍스트/권한/검증/승인</code>으로 재분류해 보세요.</li>
<li>가장 자주 반복되는 작업 1개에 대해 read-only 하네스와 write 하네스를 분리했을 때 재작업률이 얼마나 줄어드는지 측정해 보세요.</li>
<li>첫 시도 머지 가능 비율, 재시도율, 정책 차단율을 1주간 수집해 현재 팀의 하네스 성숙도를 점수화해 보세요.</li>
</ol>
<h2 id="관련-글">관련 글</h2>
<ul>
<li><a href="/posts/2026-03-04-ai-coding-agent-runtime-governance-trend/">AI 코딩 에이전트 런타임 거버넌스</a></li>
<li><a href="/posts/2026-02-28-ai-agent-observability-trend/">AI 에이전트 관측/통제 트렌드</a></li>
<li><a href="/posts/2026-04-02-codebase-knowledge-graph-semantic-index-trend/">코드베이스 지식 그래프 + 시맨틱 인덱스</a></li>
<li><a href="/posts/2026-04-04-schema-constrained-output-runtime-validator-trend/">Schema-Constrained Output + Runtime Validator</a></li>
<li><a href="/posts/2026-04-05-tool-permission-manifest-runtime-attestation-trend/">Tool Permission Manifest + Runtime Attestation</a></li>
<li><a href="/posts/2026-04-03-inference-router-quality-cost-gateway-trend/">Inference Router + Quality-Cost Gateway</a></li>
</ul>
]]></content:encoded></item></channel></rss>