AI 에이전트가 한 번 성공한 작업 절차를 스스로 재사용 가능한 스킬로 바꿔 학습 없이 점점 똑똑해진다
AI 에이전트가 한 번 성공한 작업 절차를 스스로 재사용 가능한 스킬로 바꿔 학습 없이 점점 똑똑해진다
LLM 에이전트가 복잡한 작업을 풀 때 그때그때 즉석에서 절차(워크플로우)를 만들지만, 성공한 절차는 보통 한 번 쓰고 버려진다. FlowEvo는 성공한 워크플로우를 실행 가능한 스킬로 컴파일해 저장해두고, 이후 비슷한 작업이 오면 그 스킬을 바로 실행하거나 새 워크플로우를 만들 때 참고자료로 활용한다. 모델 파라미터를 전혀 바꾸지 않고도 GPT-4o-mini만으로 ALFWorld에서 85.6%(기존 최고 대비 +26.4포인트)를 기록하면서 토큰 사용량은 3분의 1 수준으로 줄였다.
METAL MEDIA 해설 도표
AI 에이전트가 한 번 성공한 작업 절차를 스스로 재사용 가능한 스킬로 바꿔 학습 없이 점점 똑똑해진다
- 01에이전트가 작업을 성공적으로 풀면 그 과정을 재사용 가능한 '스킬'(호출 가능한 코드 + 사용 설명)로 자동 변환해 저장소에 보관한다
- 02새 작업이 들어오면 저장된 스킬을 조건에 따라 바로 실행하거나, 실행 대신 새 워크플로우를 짤 때 참고 정보로만 제공한다
- 03각 스킬이 실제로 도움이 되는지(성공률)를 계속 추적해서, 오히려 성능을 떨어뜨리는 스킬(부정적 전이)은 자동으로 사용을 중단시킨다
- 04GPT-4o-mini 하나만 백본으로 써서 ALFWorld, HumanEval, MBPP, GSM8K, MATH-500 다섯 개 벤치마크 전체 표준 분할에서 8개 비교 기법 중 가장 높은 정확도를 달성했다
- 057B부터 671B까지 파라미터 크기가 다른 10개 기반 모델에서 50개의 모델·데이터셋 조합 중 49개에서 기존 방법(ExpeL)보다 성능이 좋았다
무엇을 했나
- 에이전트가 작업을 성공적으로 풀면 그 과정을 재사용 가능한 '스킬'(호출 가능한 코드 + 사용 설명)로 자동 변환해 저장소에 보관한다
- 새 작업이 들어오면 저장된 스킬을 조건에 따라 바로 실행하거나, 실행 대신 새 워크플로우를 짤 때 참고 정보로만 제공한다
- 각 스킬이 실제로 도움이 되는지(성공률)를 계속 추적해서, 오히려 성능을 떨어뜨리는 스킬(부정적 전이)은 자동으로 사용을 중단시킨다
- GPT-4o-mini 하나만 백본으로 써서 ALFWorld, HumanEval, MBPP, GSM8K, MATH-500 다섯 개 벤치마크 전체 표준 분할에서 8개 비교 기법 중 가장 높은 정확도를 달성했다
- 7B부터 671B까지 파라미터 크기가 다른 10개 기반 모델에서 50개의 모델·데이터셋 조합 중 49개에서 기존 방법(ExpeL)보다 성능이 좋았다

| Route | Role of retrieved skill | Executes code | Indirect effect |
|---|---|---|---|
| Dynamic generation | No retrieved skill is used. | ✗ | ✗ |
| Direct skill execution | A retrieved skill is called as an executable subroutine before verification. | ✓ | ✗ |
| Skill-conditioned generation | Retrieved skills are supplied only as structured context for planning and generation. | ✗ | ✓ |
| ALFWorld | HumanEval | GSM8K | ||||
|---|---|---|---|---|---|---|
| Method | SR (%) | Tokens | pass@1 (%) | Tokens | Solve (%) | Tokens |
| Reflexion | 52.2 | 31,900 | 92.7 | 890 | 96.8 | 555 |
| ExpeL | 46.3 | 32,958 | 89.0 | 883 | 92.1 | 552 |
| ADAS | 53.0 | 29,671 | 82.4 | 3,776 | 90.8 | 2,820 |
| AFLOW | 59.2 | 30,137 | 94.7 | 3,826 | 93.5 | 2,494 |
| FlowEvo | 82.8 | 12,267 | 95.1 | 880 | 97.1 | 541 |
| Constant | Value |
|---|---|
| Retrieval | |
| top_k | 3 |
| retrieval_threshold | 5.0 |
| Historical positive-transfer cap | 2.5 |
| Negative-transfer risk cap | 3.0 |
| Routing | |
| _COMPATIBILITY_DIRECT_THRESHOLD | 0.55 |
| Direct-execute compat gate | ≥1.5 |
| _CODE_EXCERPT_THRESHOLD | 4.6 |
| Max seed context skills | 2 |
| Admission | |
| banned_imports | {os, subprocess, socket, requests, pathlib} |
| banned_calls | {eval, exec, compile, __import__, open} |
| prune_audit_fail_threshold | 2 |
| Curation (ALFWorld) | |
| _CONTRASTIVE_MIN_GUIDED | 5 |
| _CONTRASTIVE_MIN_UNGUIDED | 3 |
| _CONTRASTIVE_HARM_THRESHOLD | −0.1 |
| _AUDIT_MIN_USES | 3 |
| _AUDIT_UTILITY_THRESHOLD | 0.5 |
| _AUDIT_INACTIVITY_LIMIT | 50 episodes |
| Adaptive escalation | |
| Level 1 (greedy) | temp=0.0, max=2048 |
| Level 2 (mini-ensemble, 2 candidates) | temp=0.5, max=2048 |
| Level 3 (retry, hot) | temp=0.7, max=2048 |
| Level 4 (retry, cool) | temp=0.2, max=2048 |
| Reflexion reasoning | temp=0.0, max=300 |
| Execution | |
| ALFWorld max_steps | 50 |
| Sandbox timeout (code/math) | 10 s |
| Task type | Status | Uses | Success | Fail | Utility |
|---|---|---|---|---|---|
| pick_and_place_simple | active | 23 | 23 | 0 | 1.00 |
| pick_clean_then_place_in_recep | active | 28 | 28 | 0 | 1.00 |
| pick_heat_then_place_in_recep | active | 21 | 21 | 0 | 1.00 |
| pick_cool_then_place_in_recep | active | 20 | 18 | 2 | 0.90 |
| look_at_obj_in_light | active | 15 | 13 | 2 | 0.87 |
| pick_two_obj_and_place | suppressed | 10 | 1 | 9 | 0.10 |
| Task type | n | Direct | Cond. | Dyn. | Direct SR | Overall SR |
|---|---|---|---|---|---|---|
| look_at_obj_in_light | 18 | 0 | 12 | 6 | — | 14/18 (78%) |
| pick_and_place_simple | 24 | 14 | 9 | 1 | 14/14 | 24/24 (100%) |
| pick_clean_then_place_in_recep | 31 | 22 | 6 | 3 | 22/22 | 29/31 (94%) |
| pick_cool_then_place_in_recep | 21 | 12 | 8 | 1 | 12/12 | 19/21 (90%) |
| pick_heat_then_place_in_recep | 23 | 19 | 2 | 2 | 19/19 | 22/23 (96%) |
| pick_two_obj_and_place | 17 | 0 | 10 | 7 | — | 3/17 (18%) |
| Total | 134 | 67 | 47 | 20 | 67/67 | 111/134 (83%) |
왜 중요한가
모델을 다시 학습시키지 않고도 에이전트가 실행 도중 스스로 경험을 쌓아 성능과 효율을 동시에 개선할 수 있음을 보여준다. 반복 작업이 많은 실무 환경(가정용 로봇 제어, 코드/수학 문제 자동 풀이 등)에서 비용을 크게 줄이면서도 정확도를 높일 실질적 방법을 제시한다.
이 논문의 용어
- 워크플로우 · 에이전트가 작업을 풀기 위해 그때그때 구성하는 추론·도구사용·코드실행 절차
- 스킬 뱅크 · 성공한 워크플로우를 컴파일해 만든 실행 가능한 절차들을 모아두는 저장소
- 부정적 전이 · 과거에 저장한 스킬을 재사용했을 때 오히려 성공률이 떨어지는 현상
- 스킬-조건부 생성 · 저장된 스킬을 그대로 실행하지 않고 참고 맥락으로만 활용해 새 워크플로우를 만드는 방식
- 학습 없는(training-free) 방법 · 모델의 가중치를 업데이트하지 않고 추론 시점에서만 성능을 개선하는 접근
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다
METAL MEDIA 최신 기사
그림 출처: Zeyu Ren et al., arXiv:2607.21596, arxiv-nonexclusive