그림 출처: arXiv:2608.09253 Fig. 3
arXiv:2608.09253 (2026-08-10, Fudan University) 정리했습니다. 핵심은 이겁니다. 에이전트에 스킬 문서를 넣어줘도 실행이 흔들리는 문제를, 모델도 에이전트도 수정하지 않고 런타임 훅으로 감시하고 보정하는 쪽에서 풀었다는 것.
평가는 SkillsBench 기반 15개 스킬, Claude Code(Haiku-4.5, Opus-4.6)와 Codex(GPT-5.2, GPT-5.4) 네 조합에서 했습니다. 평균 과제 성공률이 24.1% 올랐고 반복 실행 편차도 줄었습니다.
스킬이 있어도 실행은 흔들립니다
스킬 문서는 재사용 가능한 절차 지식을 줍니다. 근데 같은 스킬로 비슷한 과제를 반복 실행해도 결과가 계속 흔들립니다. 논문이 잡은 실패 원인은 두 가지입니다.
- 절차 이탈: 스킬이 정한 스텝을 건너뛰거나 순서를 바꿔서 실행
- 스텝 오류: 개별 스텝을 틀리게 수행하는 경우 (잘못된 인자, 잘못된 도구 호출)
그림 출처: arXiv:2608.09253 Fig. 2
Table II를 보면 macroeconomic-timeseries-detrending 스킬 하나도 설정별로 0.613에서 0.833까지 갈립니다. 같은 스킬 문서를 쓰는데도 실행 환경에 따라 성공이 왔다 갔다 하는 겁니다.
런타임 가이던스는 문서와 트레이스를 합쳐서 만듭니다
SkillSentry는 스킬 문서를 그대로 컨텍스트에 안 넣습니다. 스킬 문서에서 명세를 뽑고, 과거 성공/실패 트레이스에서 실행 경험을 캐서 합칩니다. 이걸 런타임 가이던스라고 부르고 전용 DSL로 표현합니다.
| 가이던스 필드 | 역할 |
|---|---|
| skill | 스킬 이름과 목표 |
| steps | 스텝별 논리적 액션 패턴 |
| on_enter | 스텝 진입 시 제안과 경고 |
| failure_patterns | 실패와 연관된 액션 패턴 |
| termination | 정상 종료 조건 |
그림 출처: arXiv:2608.09253 Fig. 5
on_enter에는 “이 스텝에서는 이런 액션을 권장, 이런 액션은 경고”가 스텝 단위로 들어갑니다. failure_patterns는 과거 실패 트레이스에서 나온 위험 패턴 모음이구요. 둘 다 자동으로 채워집니다.
실행 루프를 훅으로 감싸서 검사합니다
Claude Code와 Codex는 실행 루프의 라이프사이클 훅을 제공합니다. SkillSentry는 이 훅에 붙어서 에이전트가 계획한 액션을 실행 전에 검사합니다. 에이전트 구현 자체는 한 줄도 수정하지 않습니다.
- procedure checker: 액션이 현재 스텝의 논리 패턴과 맞는지 FSM으로 추적합니다. 이탈이나 failure_patterns 매치가 보이면 재계획 힌트를 줍니다.
- termination checker: termination 조건이 채워지기 전에 조기 종료하려 들면 경고를 줍니다.
그림 출처: arXiv:2608.09253 Fig. 6
패턴에 안 맞는 액션을 무조건 막지는 않습니다. 유효한 탐색일 수 있어서 실행은 허용하고 FSM 진행만 안 시킵니다. 영구 차단을 피한 설계라는 게 저자들의 강조점입니다.
결과: 평균 성공률 24.1% 상승
네 조합의 평균 성공률(Table IV 기준)입니다.
| 구성 | Base Agent | SkillSentry |
|---|---|---|
| Claude Code + Haiku-4.5 | 0.572 | 0.741 |
| Claude Code + Opus-4.6 | 0.661 | 0.811 |
| Codex + GPT-5.2 | 0.604 | 0.752 |
| Codex + GPT-5.4 | 0.668 | 0.805 |
개별 스킬 단위로 보면 격차가 더 큽니다. excitation-signal-design은 Haiku 기준 0.120에서 0.373으로 세 배 가까이 올랐습니다.
실행 비용은 턴 7.8% 토큰 8.7% 증가입니다
| 항목 | Base | SkillSentry |
|---|---|---|
| 추론 턴 (Haiku-4.5) | 20.2 | 22.2 |
| 토큰 비용 (Haiku-4.5) | 796K | 886K |
| 추론 턴 (GPT-5.4) | 27.8 | 30.4 |
| 토큰 비용 (GPT-5.4) | 757K | 804K |
증가 원인은 스텝 가이던스 전달과 이탈 감지 시 재계획 요청입니다. 성공률 개선 대비 비용 증가가 10% 미만이라는 게 실무적으로 쓸 만한 지점입니다.
트레이스가 쌓일수록 스스로 좋아집니다
가이던스는 고정이 아닙니다. 새 트레이스가 쌓일 때마다 갱신하는데, macro detrending 스킬을 10회 반복 진화하면 테스트 성공률이 약 58.2% 상대 상승합니다. 개선은 초반에 크고 후반에 수렴하며, 반복 실행 다섯 번의 표준편차도 줄어듭니다.
절제된 해석: 어디까지가 효과인가
어블레이션 결과를 보면 효과의 출처가 보입니다.
| 변형 | 평균 성공률 변화 |
|---|---|
| on_enter 제거 | -19.0% |
| failure_patterns 제거 | -13.6% |
| 가이던스를 시스템 프롬프트에 통째로 | -5.8% |
같은 정보라도 실행 시점에 해당 스텝만 전달하는 게 효과의 상당 부분이라는 뜻입니다. 크로스 모델 일반화도 확인했습니다. 다른 모델에서 진화한 가이던스를 가져다 써도 base 대비 +17.2%, 자체 진화 대비 94.2% 효율을 유지합니다.
내 해석을 붙이면 이 연구의 실체는 이렇습니다. 스킬을 정적 문서에서 실행 통계가 축적되는 산 물체로 바꾼 구조라는 것. 도큐먼트 최적화(DocsChisel 류)가 쓰기 전에 문서를 고친다면, SkillSentry는 실행 중에 감시하고 실행 뒤에 가이던스를 갱신합니다. 방향이 다르고 서로 충돌하지도 않습니다.
한계도 적습니다. SkillsBench 유래 15개 스킬, 두 에이전트, 30분 실행 제한이라는 설정이라는 점. 절차형 스킬에 특화된 평가라 자유 탐색형 과제에서는 FSM 추적이 어떻게 동작할지 확인이 필요합니다.
실무에서 바로 쓸 수 있는 부분
- Claude Code/Codex 훅 인터페이스로 외부 감시 레이어를 붙이는 패턴 자체가 참고가 됩니다. 에이전트 코드 수정이 0입니다.
- 스킬 문서를 계속 다시 쓰는 것보다, 성공/실패 트레이스에서 on_enter와 failure_patterns를 축적하는 편이 쌓이는 자산이 됩니다.
- 재현 실험을 반복 돌릴 때 성공률 편차를 잡는 용도로도 쓸 수 있습니다.
시작은 간단합니다. Claude Code나 Codex를 그대로 두고 훅부터 붙이는 걸로 시작하면 됩니다.
더 실습해보고 싶은 분들께
에이전트 하네스와 루프 설계를 더 다뤄보고 싶다면 두 자료를 추천합니다.