개요

ElizaOS를 좀 더 딥하게 다루기 위해 아래와 같은 내용을 다룬다.

이번 글에서는 ElizaOS의 Action과 Evaluator가 어떤 역할을 하는지, 어떻게 작성하는지를 실제로 코드를 보며 스터디해본다. 또한 이를 토대로 커스텀 Plugin을 만들어 나의 Agent에 다양한 기능을 붙여보자.

먼저, 간단한 다이어그램을 통해 각 컴포넌트가 어떻게 동작하는지 알아보자.

image.png

  1. 사용자가 에이전트에게 1SOL을 엘리스에게 보내달라고 요청한다.
  2. 에이전트는 이를 해석하고 SOL plugin에서 등록한 컨텍스트에 해당하는지 판단한다.
  3. 만약 SOL plugin을 이용해야 되는 컨텍스트라면, SOL plugin의 Action 코드 블록을 실행한다. 이때 사용되는 여러 파라미터(누구에게, 얼마를 보낼지 등)는 모두 LLM 모델을 통해 추출한다.
  4. Action을 통해 명령을 실행하고, Evaluator를 통해 데이터를 검증한다. (예를 들어, Action의 결과물로 Tx Hash가 나온다던지 하는…)

여기서는 에이전트에게 “나 두들 몇번 홀더야” 라고 명령하면 프로필 이미지를 추출하여 응답하는 에이전트 플러그인을 만들어보려고 한다.

Action

이전 글에서도 한번 언급했듯, LLM 모델 자체로는 어떤 “기능”을 달기 어렵다. 물론 각 AI model provider(OpenAI 등)에서 여러 Function Call 기능 등을 제공하긴 하지만, ElizaOS에서도 플러그인을 통해 “기능”을 구현할 수 있도록 만들었다.

그 중 에이전트가 직접 실행할 기능의 로직을 Action이라고 한다.

이번 예제에서 에이전트가 실행할 Action의 로직은 두들 NFT의 이미지 주소를 가져오는 것이다. 이를 위해 먼저 Alchemy NFT metadata API를 사용하기로 했다.

https://github.com/boohyunsik/eliza-starter/blob/example/src/character.ts#L169