본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 28. 20:08

Weapon: 에이전트에게 진정한 기술 무기고를 부여하세요

요약

FROST V4.1에서 도입된 Weapon Registry는 에이전트가 보유한 기술을 체계적으로 관리하는 시스템입니다. 기존의 하드코딩된 도구 호출 방식에서 벗어나, 기술을 발견 가능하고 조합 가능한 단위로 정의하여 에이전트의 능력을 확장합니다.

핵심 포인트

  • Weapon은 발견 가능하고 조합 및 버전 관리가 가능한 기술 단위임
  • 동적 발견(Discovery) 기능을 통해 에이전트가 필요한 기술을 스스로 탐색 가능
  • 복합 Weapon(Composite weapons)을 통해 기본 기술을 조합하여 새로운 능력 생성
  • 기존의 하드코딩된 도구 호출 방식보다 유연하고 확장성 있는 구조 제공

Weapon: 에이전트에게 진정한 기술 무기고를 부여하세요

FROST 5차원 메타 모델 (Five-Dimensional Meta-Model) 시리즈 · 파트 1

당혹스러운 시나리오

당신에게 에이전트 (Agent)가 있다고 상상해 보세요. 이 에이전트는 똑똑합니다. 코드를 작성하고, 데이터를 분석하며, 정보를 검색할 수 있습니다.

하지만 당신이 다음과 같이 요청하면 에이전트는 얼어붙습니다: "이커머스 가격을 스크래핑하고 트렌드를 분석할 크롤러를 만드는 것을 도와줘."

능력이 없어서가 아니라, 자신이 알고 있는 것을 찾지 못하기 때문입니다.

에이전트는 코드베이스 곳곳에 흩어진 수많은 기술 (skills)을 가지고 있지만, "너는 이런 것들을 알고 있으니 필요할 때 사용해"라고 알려주는 통합된 장소가 없습니다.

이것이 현재 에이전트 프레임워크 (Agent frameworks)가 가진 공통적인 문제입니다: 기술은 존재하지만, 정리되어 있지 않습니다.

Weapon Registry: 에이전트의 기술 무기고

FROST V4.1에서 우리는 Weapon Registry를 도입했습니다.

Weapon은 전통적인 "도구 (tool)"나 "함수 (function)"가 아닙니다. 그것은 다음과 같습니다:

발견 가능하고 (discoverable), 조합 가능하며 (composable), 버전 관리가 가능한 (versionable) 기술 단위 (skill unit).

이렇게 생각해보세요:

  • 전통적인 에이전트 기술은 바닥에 흩어져 있는 레고 (LEGO) 블록과 같습니다.
  • FROST의 Weapon은 무기고에 깔끔하게 정리된 장비와 같으며, 각 장비는 ID, 설명, 사용 사례를 가지고 있습니다.

세 가지 핵심 기능

1. 등록 (Registration): 기술에 정체성 부여하기

from core.armory import Armory

# weapon registry 생성
...

모든 Weapon은 다음을 가집니다:

  • 고유 이름 (Unique name): web_scraper, 다른 기술과 충돌하지 않음
  • 버전 번호 (Version number): 1.0.0, 업그레이드 및 롤백 지원
  • 메타데이터 (Metadata): 입출력 스키마 (Input/output schemas), 카테고리, 설명

2. 발견 (Discovery): 필요할 때 기술 찾기

# 카테고리별로 찾기
data_skills = armory.find_by_category("data_collection")
# => [web_scraper, api_fetcher, file_parser, ...]
...

에이전트는 더 이상 "내가 무엇을 할 수 있는지"를 하드코딩할 필요가 없습니다. 대신 어떤 Weapon을 사용할 수 있는지 동적으로 발견 (dynamically discover) 합니다.

3. 조합 (Composition): 기술을 쌓아 새로운 능력 만들기

# 복합 Weapon 정의
armory.register_composite(
    name="ecommerce_price_tracker",
...

**복합 Weapon (Composite weapons)**은 에이전트의 능력을 기하급수적으로 성장하게 합니다:

  • 2개의 기본 무기 (base weapons) → 1개의 복합 무기 (composite weapon)
  • 10개의 기본 무기 (base weapons) → 100개 이상의 가능한 조합

이것이 기존의 "도구 호출 (Tool Calling)"과 어떻게 다른가요?

차원 (Dimension)기존의 도구 호출 (Traditional Tool Calling)FROST Weapon Registry
발견 (Discovery)소스 코드에 하드코딩됨동적 쿼리, 필요에 따라 매칭됨
.........
핵심 차이점: Weapon Registry는 기술을 단순한 코드의 부속물이 아닌, **일급 시민 (first-class citizens)**으로 만듭니다.

실제 시나리오

**자동 경쟁사 분석 에이전트 (automated competitor analysis Agent)**를 구축한다고 가정해 봅시다:

기존 방식

# 모든 단계를 하드코딩함
class CompetitorAnalyzer:
    def __init__(self):
...

문제점:

  • ❌ 스크레이퍼 (scraper)를 교체할 수 없음 (코드를 수정하지 않는 한)
  • ❌ 분석기 (analyzer)를 재사용할 수 없음 (이 클래스에 종속됨)
  • ❌ 도구를 동적으로 선택할 수 없음 (예: URL에 따라 스크레이퍼 유형을 자동 선택 불가)

FROST 방식

# 선언적 구성 (Declarative composition)
agent = Agent(armory=armory)

...

장점:

  • ✅ 언제든 어떤 무기든 교체 가능 (더 나은 스크레이퍼를 찾았나요? 그냥 등록하면 됩니다)
  • ✅ 무기 재사용 가능 (trend_analyzer는 다른 시나리오에서도 작동합니다)
  • ✅ 에이전트가 최적의 무기를 자율적으로 선택 (메타데이터 매칭 기반)

왜 "도구 (Tool)"가 아니라 "무기 (Weapon)"인가?

이것이 FROST의 설계 철학입니다:

도구는 수동적이지만, 무기는 능동적입니다.

  • 도구는 인간이 사용하기를 기다립니다.
  • 무기는 에이전트의 장비입니다. 에이전트가 능동적으로 선택하고 능동적으로 사용합니다.

FROST의 가족 거버넌스 모델 (family governance model)에서:

  • **조상 (Ancestor)**은 헌법을 정의하며, 어떤 무기를 사용할 수 있는지 지정합니다.
  • **부모 (Parent)**는 작업을 조정하며, 어떤 무기 조합을 사용할지 결정합니다.
  • **자식 (Child)**은 특정 작업을 실행하며, 작업을 완료하기 위해 무기를 사용합니다.

Weapon Registry는 이 과정을 감사 가능하고 (auditable), 제어 가능하며 (controllable), 진화 가능하게 (evolvable) 만듭니다.

다음 단계: Event

Weapon은 "에이전트가 무엇을 할 수 있는가"를 해결합니다.

하지만 에이전트들은 어떻게 **협업 (collaborate)**할까요? 에이전트들은 어떻게 "작업 완료", "오류 발생", "도움 필요"를 알 수 있을까요?

그 답은 에이전트의 신경계인 Event에 있습니다.

다음 기사 미리보기: Event: 에이전트에게 "외치도록" 가르치기 (Teaching Agents to "Shout Out")

관련 링크

FROST: 에이전트에게 혈통, 기억, 그리고 명예를 부여합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0