Experts.js: GPT-4o 기반 멀티 에이전트 시스템 구축을 위한 라이브러리

Experts.js: GPT-4o 기반 멀티 에이전트 시스템 구축을 위한 라이브러리

소개

최근 공개된 OpenAI의 GPT-4o 모델과 이를 활용한 Experts.js 라이브러리에 대해 소개합니다. 이 라이브러리는 복잡한 멀티 AI 에이전트 시스템을 쉽게 구축할 수 있도록 도와줍니다. ‘Omniscient’의 약자인 GPT-4o 모델은 더 향상된 성능을 제공합니다. 새로운 Assistants API는 AI 에이전트의 사용성을 크게 개선하며, 파일 및 이미지를 지식 소스로 활용할 수 있는 기능을 갖추고 있습니다. 이와 함께 Experts.js는 이러한 API를 간편하게 사용할 수 있도록 도와주는 라이브러리입니다.

Experts.js를 사용한 실제 사용 사례 구조: 메안 라우터 에이전트인 Company Asistant가 머천다이징 에이전트(Products Tool)가 VectorDB를 검색할 수 있는 OpenSearch Tool을 사용하는 사례

멀티 에이전트 시스템(MAS, Multi-Agent System)은 하나의 메인 에이전트(Router)가 각기 다른 전문가 에이전트들을 호출하여 복잡한 작업을 수행할 수 있는 에이전트 구축 방식입니다. Experts.js는 특히 이러한 멀티 에이전트 시스템을 개발할 때 복잡성을 줄이고 사용성을 높이는 데 중점을 둔 프레임워크, Experts.js 모델을 사용하면 OpenAI의 새로운 GPT-4o 모델과 Assistants API를 사용한 개인용 어시스턴트를 직접 개발할 수 있습니다.

사용법

설치방법

Express.js는 npm을 통해 설치할 수 있으며, 간단하게 사용할 수 있습니다.

# 설치
npm install experts
// 불러오기
import { Assistant, Tool, Thread } from "experts";

Assistant와 Tool

Assistant는 각각의 AI Agent를 나타내는 주요 객체입니다. 각 Assistant는 이름, 설명 및 지시사항을 필요로 하며, 생성 시 다양한 옵션을 설정할 수 있습니다. 다음은 간단한 Assistant 예시입니다:

class MyAssistant extends Assistant {
  constructor() {
    const name = "My Assistant";
    const description = "...";
    const instructions = "...";
    super(name, description, instructions, {
      model: "gpt-4-turbo",
      tools: [{ type: "file_search" }],
      temperature: 0.1,
      tool_resources: {
        file_search: {
          vector_store_ids: [process.env.VECTOR_STORE_ID],
        },
      },
    });
  }
}

const assistant = await MyAssistant.create();

Tools는 Assistant의 하위 클래스이며, Assistant가 사용할 수 있는 도구를 지정하는데 사용합니다. 다음은 Tool의 예시 코드입니다:

class EchoTool extends Tool {
  constructor() {
    const name = "Echo Tool";
    const description = "Echo";
    const instructions = "Echo the same text back to the user";
    super(name, description, instructions, {
      parentsTools: [
        {
          type: "function",
          function: {
            name: EchoTool.toolName,
            description: description,
            parameters: {
              type: "object",
              properties: { message: { type: "string" } },
              required: ["message"],
            },
          },
        },
      ],
    });
  }
}

다음과 같이 Assistant에게 특정 도구를 사용하도록 추가할 수도 있습니다:

class MainAssistant extends Assistant {
  constructor() {
    const name = "Company Assistant";
    const description = "...";
    const instructions = "...";
    super(name, description, instructions);
    this.addAssistantTool(EchoTool);
  }
}

더 자세한 사용 방법에 대해서는 Experts.js GitHub 저장소를 참고해주세요!

라이선스

Experts.js 프로젝트는 MIT License로 공개되었습니다.

더 읽어보기

Experts.js GitHub 저장소

Experts.js 및 Multi Agents System(MAS) 소개 글

위 글에 소개된 다른 Multi Agent System 프로젝트들

https://www.crewai.com/

파이토치 한국어 커뮤니티에 소개되었던 Agent 관련 글들




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요