본문 바로가기

소프트웨어-이야기/데이터과학

Babyagi: AI task Management System

babyagi은 ai 기반의 태스크 관리 시스템이다. 이 시스템은 open ai, chroma, weaviate 같은 vector database을 사용하고 있다. 

이 시스템은 스스로 태스크를 생성하고, 우선순위를 정하고, 실행한다. 시스템의 기본 아이디어는 이전의 태스크 결과와 미리 정의한 목표를 기반으로 태스크를 생성한다는 것이다. 그리고 OpenAI의 NLP를 사용하여 목표에 따라 새 태스크를 생성하고, vector database에 결과를 저장하고, 검색한다.

Babyagi은 Task-driven Autonomous Agent의 축소버전이다. 

처리 순서

agent은 다음 태스크를 무한 반복하며, 태스크를 대신 수행한다. 

1. 태스크 목록에서 태스크를 가져온다.

2. Execution Agent으로 태스크를 전송하면, Execution Agent은 OpenAI의 API를 활용해 태스크를 수행한다.

3. 결과를 보강해, vector database에 결과 값을 저장한다. 

4. 새로운 태스크를 만들고, 이전 태스크 결과에 따라 태스크의 우선순위를 조정한다.

 

agent

execution agent

목표와 태스크라는 두가지 매개변수를 받아서 동작하는 에이전트다. 프롬프트에 태스크, 목표, 목표에 대한 설명을 담아, OpenAI에 api을 호출해 문자열의 실행 결과를 받는다. 

task creation agent

목표와 이전 태스크 결과를 바탕으로 새로운 태스크를 만들 때 사용된다.

이 함수는 "목표, 이전 태스크 결과, 태스크 설명, 현재 작업 목록" 네가지 변수를 사용해, OpenAI에 새 작업 목록을 물어본다.

prioritization agent

OpenAI에 프롬프트를 전송해, 재조정된 태스크 우선순위를 받아낸다. 

context agent 

스크립트는  vector database(Chroma/Weaviate)를 사용해 작업 결과를 검색하고 저장한다. 

 

사용해보기 

git clone https://github.com/yoheinakajima/babyagi.git
cd babyagi
docker-compose up

https://github.com/yoheinakajima/babyagi/blob/main/docs/README-ko.md