Skip to content

자가 진화형 AI 에이전트

스스로 성능을 개선하는 Self-Evolving 시스템


학습 목표

  • Self-Evolving AI 에이전트의 개념과 동작 원리를 이해한다.
  • 자가 진화 루프(Evolution Loop)의 전체 흐름을 파악한다.
  • 4가지 평가 그레이더(Graders)의 역할과 통과 기준을 설명할 수 있다.
  • 메타 프롬프트 에이전트가 프롬프트를 자동 개선하는 메커니즘을 이해한다.
  • VersionedPrompt 기반 프롬프트 버전 관리 패턴을 익힌다.
  • 자가 진화 시스템을 다른 도메인으로 확장하는 방법을 구상할 수 있다.

1. Self-Evolving AI 에이전트란?

Self-Evolving AI 에이전트는 사람의 개입 없이 스스로 성능을 진단하고, 피드백을 통해 프롬프트를 최적화하는 자가 개선 시스템이다. OpenAI 연구 자료에서 제시된 개념으로, 핵심 아이디어는 다음과 같다.

  • AI 에이전트가 작업을 수행한 후 자동화된 평가 시스템(Graders)으로 결과를 진단한다.
  • 평가 결과가 기준에 미달하면, 실패 원인을 분석한 피드백을 생성한다.
  • Meta Prompt 에이전트가 이 피드백을 받아 프롬프트를 자동으로 개선한다.
  • 이 과정을 반복하여 프롬프트가 점점 정교해지고, 에이전트의 성능이 자동으로 향상된다.

이 루프가 Self-Evolving의 핵심이다. 사람이 프롬프트를 수동으로 수정하는 것이 아니라, 시스템이 스스로 실패를 감지하고 개선 방향을 찾아 프롬프트를 진화시킨다.


2. 구현 예제: FDA 신약 승인 문서 요약 에이전트

Self-Evolving 시스템을 구체적으로 이해하기 위해, FDA 신약 승인을 위한 화학/의학 문서 요약 에이전트를 예제로 살펴본다.

도메인 배경

FDA(미국 식품의약국) 신약 승인 과정에서는 방대한 화학/의학 문서를 읽고 초안을 작성해야 한다. 이 작업을 AI 에이전트에게 맡기되, 프롬프트를 사람이 일일이 최적화하지 않고 시스템이 스스로 개선하도록 하는 것이 목표다.

초기 요약 에이전트

매우 간단한 프롬프트로 시작한다.

주어진 텍스트 일부를 읽고 요약을 생성하십시오.

이 한 줄짜리 프롬프트가 자가 진화 과정을 거치면서 점점 정교해진다. 화학물질명 보존, 길이 제약, 의미 유사도 유지 등 구체적인 지침이 자동으로 추가되는 것이다.


3. 핵심 구성 요소

Self-Evolving 시스템은 3가지 핵심 구성 요소로 이루어진다. 각 구성 요소가 명확한 역할을 갖고 유기적으로 연결된다.

구성 요소역할핵심 포인트
요약 에이전트프롬프트를 받아 문서를 요약프롬프트가 바뀌면 출력 품질이 달라진다
평가 그레이더요약 결과를 다각도로 평가4개의 독립적 그레이더가 각각 다른 관점에서 평가한다
메타 프롬프트 에이전트실패 원인을 분석하고 프롬프트를 개선피드백(reasoning)을 기반으로 구체적 개선안을 생성한다

4. 4가지 평가 그레이더 (OpenAI Evals API)

평가 그레이더는 요약 에이전트의 출력을 다각도로 정량 평가하는 핵심 구성 요소다. 각 그레이더는 서로 다른 관점에서 품질을 측정하며, 모든 그레이더를 통과해야 최종 승인이 된다.

그레이더 상세

그레이더평가 대상통과 기준
Chemical String Name Grader화학물질명 등 도메인 용어 보존 여부0.8점 이상
Summarization Length Grader요약문 길이 적절성 (목표 100단어, 오차 20%)80~120단어
Cosine Similarity Grader원문과의 의미적 유사도0.85점 이상
LLM Judge GraderGPT-4.1이 평가자로 정성적 품질 평가0.8점 이상

평가 파이프라인 흐름

각 그레이더 상세 설명

1. Chemical String Name Grader

원문에 포함된 화학물질명, 약품명 등 도메인 전문 용어가 요약문에서도 정확히 보존되었는지 검사한다. FDA 문서의 특성상 화학물질명이 누락되거나 변형되면 치명적인 오류가 된다.

2. Summarization Length Grader

요약문의 길이가 목표 범위(80~120단어) 안에 들어오는지 검사한다. 너무 짧으면 핵심 정보가 누락되고, 너무 길면 요약의 의미가 없어지므로 적절한 길이를 유지해야 한다.

3. Cosine Similarity Grader

원문과 요약문을 각각 임베딩 벡터로 변환한 뒤 코사인 유사도를 계산한다. 0.85 이상이어야 통과하며, 이를 통해 요약문이 원문의 핵심 의미를 충실히 담고 있는지 정량적으로 검증한다.

4. LLM Judge Grader

GPT-4.1이 평가자 역할을 수행하여 정성적 품질을 평가한다. 0점(중대한 오류)부터 1점(완벽)까지 점수를 부여하며, 0.8점 이상이어야 통과한다. 이른바 "LLM as a Judge" 개념으로, LLM이 다른 LLM의 결과를 평가하는 구조다.


5. 메타 프롬프트 에이전트

메타 프롬프트 에이전트는 Self-Evolving 시스템의 두뇌 역할을 한다. 평가 그레이더에서 실패가 발생하면, 실패 원인에 대한 피드백(reasoning)을 받아 프롬프트를 자동으로 개선한다.

동작 원리

  1. 현재 프롬프트와 실패 원인 피드백을 함께 입력받는다.
  2. 피드백을 분석하여 프롬프트의 어떤 부분이 부족한지 파악한다.
  3. 부족한 부분을 보완한 개선된 프롬프트를 생성한다.
  4. VersionedPrompt 클래스로 프롬프트 버전을 관리한다 (v0 -> v1 -> v2...).

프롬프트 진화 과정

프롬프트 버전 변화 예시

v0 (초기 프롬프트):

주어진 텍스트 일부를 읽고 요약을 생성하십시오.

이 프롬프트는 지나치게 간단하여 화학물질명을 누락하고, 길이 제어가 되지 않으며, 원문과의 의미 유사도가 낮은 결과를 생성한다.

v1 (1차 개선 후):

당신은 기술 요약 보조 도우미입니다. 과학 또는 규제 관련 텍스트의 일부가
주어지면 원문에 포함된 모든 명시적 세부 사항과 기술 정보를 체계적으로
유지하면서 간결하지만 포괄적인 요약을 생성해야 합니다.

지침:
- 화학물질명, 약품명 등 전문 용어는 원문 그대로 보존하십시오.
- 요약 길이는 80~120단어를 목표로 하십시오.
- 원문의 핵심 논지와 데이터를 빠짐없이 포함하십시오.

메타 프롬프트 에이전트가 "화학물질명 누락, 길이 초과"라는 피드백을 받아 역할 정의, 용어 보존 지침, 길이 제약을 자동으로 추가한 것이다.

v2 (2차 개선 후):

당신은 FDA 규제 문서 전문 요약가입니다. 화학/의학 텍스트의 일부가 주어지면,
규제 심사에 필요한 핵심 정보를 보존하면서 정확한 요약을 생성합니다.

필수 규칙:
1. 화학물질명(IUPAC명 포함), 약품명, 농도, 투여량 등 모든 기술 용어를
   원문 그대로 유지하십시오.
2. 요약 길이는 반드시 80~120단어 범위를 준수하십시오.
3. 원문의 인과관계와 실험 결과를 왜곡 없이 반영하십시오.
4. 규제적 판단에 영향을 미칠 수 있는 수치 데이터는 반드시 포함하십시오.
5. 불필요한 수식어나 일반적 설명은 제거하고 사실 중심으로 작성하십시오.

"유사도 부족"이라는 피드백을 받아 도메인 특화 역할(FDA 규제 문서 전문 요약가), 인과관계 보존, 수치 데이터 포함 지침이 추가되었다.

VersionedPrompt 클래스

프롬프트 버전을 체계적으로 관리하기 위해 VersionedPrompt 클래스를 사용한다.

python
class VersionedPrompt:
    def __init__(self, initial_prompt: str):
        self.versions = [initial_prompt]
        self.current_version = 0

    def get_current(self) -> str:
        """현재 버전의 프롬프트를 반환"""
        return self.versions[self.current_version]

    def evolve(self, improved_prompt: str) -> int:
        """개선된 프롬프트를 새 버전으로 추가"""
        self.versions.append(improved_prompt)
        self.current_version += 1
        return self.current_version

    def get_history(self) -> list:
        """전체 프롬프트 진화 이력을 반환"""
        return [
            {"version": i, "prompt": p}
            for i, p in enumerate(self.versions)
        ]

6. 자가 진화 워크플로 전체 흐름

지금까지 살펴본 구성 요소들이 하나로 결합되어 동작하는 전체 워크플로를 정리한다.

단계별 상세

1단계: 데이터 세트 준비

FDA 신약 승인 관련 화학/의학 문서를 입력 데이터로 준비한다. 여러 건의 문서를 사용하면 프롬프트가 특정 문서에 과적합(overfitting)되는 것을 방지할 수 있다.

2단계: 초기 프롬프트로 요약 에이전트 실행

"주어진 텍스트 일부를 읽고 요약을 생성하십시오"와 같은 매우 간단한 프롬프트(v0)로 시작한다. 처음부터 완벽한 프롬프트를 작성할 필요가 없다는 것이 핵심이다.

3단계: 4개 그레이더로 결과 평가

Chemical Grader, Length Grader, Similarity Grader, LLM Judge가 각각 독립적으로 결과를 평가한다.

4단계: 통과 여부 판단

모든 그레이더의 기준을 충족하면 최종 프롬프트로 확정한다. 하나라도 실패하면 피드백 생성 단계로 이동한다.

4-1단계: 피드백 생성

실패한 그레이더의 평가 결과를 기반으로 구체적인 피드백을 생성한다. 예를 들어 "Chemical Grader 실패: 화학물질명 2개 누락" 같은 형태다.

4-2단계: 메타 프롬프트 에이전트가 프롬프트 개선

현재 프롬프트와 피드백을 입력받아 개선된 새 버전의 프롬프트를 생성한다.

5단계: 개선된 프롬프트로 다시 실행

새 프롬프트로 요약 에이전트를 다시 실행하고, 3단계로 돌아가 평가를 반복한다.

6단계: 최종 프롬프트 확정

모든 그레이더를 통과하면 해당 버전의 프롬프트를 최종 프롬프트로 확정한다.


7. 다른 도메인으로의 확장

현재 예제는 FDA 문서 요약이지만, Self-Evolving 시스템의 구조를 그대로 유지하면서 도메인만 교체하면 어떤 분야에도 적용할 수 있다. 핵심은 도메인에 맞는 평가 그레이더를 설계하는 것이다.

확장 예시

코드 리뷰 에이전트:

그레이더평가 대상
테스트 통과율 Grader생성된 코드가 테스트를 통과하는 비율
코드 품질 Grader린트 점수, 복잡도, 가독성
보안 취약점 Grader알려진 보안 패턴 위반 여부
LLM Judge Grader코드 리뷰 품질의 정성적 평가

번역 에이전트:

그레이더평가 대상
BLEU 점수 Grader참조 번역과의 n-gram 일치도
용어 일관성 Grader도메인 전문 용어의 일관된 번역 여부
문법 Grader대상 언어의 문법 정확성
LLM Judge Grader번역 자연스러움의 정성적 평가

고객 지원 에이전트:

그레이더평가 대상
정보 정확성 Grader제공한 정보가 사실과 일치하는지
응대 톤 Grader고객 응대에 적합한 어조인지
해결률 Grader고객의 문제가 실제로 해결되었는지
LLM Judge Grader전반적 응대 품질의 정성적 평가

모든 확장 예시에서 LLM Judge Grader가 공통으로 포함되어 있다. 정량적 그레이더만으로는 포착하기 어려운 정성적 품질을 LLM이 보완 평가하는 것이 Self-Evolving 시스템의 일관된 패턴이다.


8. 핵심 정리

Self-Evolving AI 에이전트는 평가 그레이더와 메타 프롬프트 에이전트를 결합하여, 프롬프트를 자동으로 진화시키는 시스템이다. 간단한 프롬프트에서 시작해도 반복적인 자가 개선을 통해 전문가 수준의 프롬프트에 도달할 수 있다.

  • 자가 진화 루프: 작업 수행 -> 평가 -> 피드백 -> 프롬프트 개선의 반복 구조가 핵심이다.
  • 4가지 그레이더: Chemical(도메인 용어), Length(길이), Similarity(의미 유사도), LLM Judge(정성 평가)가 다각도로 품질을 검증한다.
  • 메타 프롬프트 에이전트: 실패 피드백을 분석하여 프롬프트를 자동 개선하며, VersionedPrompt로 버전을 관리한다.
  • 도메인 확장: 시스템 구조는 그대로 유지하고 평가 그레이더만 교체하면 어떤 도메인에도 적용 가능하다.
  • 핵심 인사이트: 처음부터 완벽한 프롬프트를 작성할 필요가 없다. 평가 기준만 잘 설계하면 시스템이 스스로 최적의 프롬프트를 찾아간다.