미니 마이크로(Mini Micro)에서 LLM 에이전트, 미니클로(MiniClaw)를 만나보세요!

by DD
1개월 전
조회수 10

미니클로(MiniClaw)는 미니 마이크로(Mini Micro) 환경에서 작동하는 LLM 에이전트로, 파일 읽기/쓰기, 요약 등 다양한 작업을 수행함

에이전트는 지침 파일(instructions.txt), 메인 프로그램(agent.ms), 도구 파일(tools.ms)로 구성되며, LLM 호출 및 컨텍스트 관리를 담당함

JSON 형식의 응답(JSON Format Response)을 통해 LLM과 상호작용하며, 도구 호출 및 사용자 입력을 처리함

확장성(Extensibility)을 위해 새로운 도구 추가 및 LLM 공급자 변경이 가능하며, 사용자 인터페이스 개선 여지가 존재함

미니클로(MiniClaw)의 핵심 아키텍처

미니클로(MiniClaw)는 지침(Instructions), 프롬프트(Prompt), 응답 처리(Response Handling)의 세 가지 주요 구성 요소로 작동한다. 지침 파일은 LLM에 제공되는 고정된 지시 사항을 담고 있으며, 프롬프트는 사용자 입력, 이전 도구 호출 결과, 현재 작업 상태를 포함하여 LLM에 전달되는 가변적인 컨텍스트를 구성한다. LLM은 JSON 형식으로 응답하며, 도구 호출, 사용자 질문, 최종 메시지 등을 반환한다. addHistory 메서드를 통해 컨텍스트 길이를 제한하여 토큰 사용량을 최적화한다.

미니클로(MiniClaw)의 도구(Tools) 구현

미니클로(MiniClaw)의 핵심 기능은 도구 파일(tools.ms)에 정의된 도구들을 통해 구현된다. 각 도구는 특정 작업을 수행하는 함수로, 파일 시스템 접근(File System Access), 파일 읽기/쓰기, 디렉토리 생성 등 다양한 기능을 제공한다. 예를 들어, head_file 도구는 파일의 처음 n줄을 읽어오는 기능을 담당하며, 입력 인자를 검증하고 파일 존재 여부를 확인한 후 결과를 반환한다. JSON 형식의 인자(JSON Format Arguments)를 통해 LLM과 도구 간의 상호 작용이 이루어진다.

미니클로(MiniClaw)의 컨텍스트 관리

미니클로(MiniClaw)는 LLM의 성능과 비용 효율성을 위해 컨텍스트 관리(Context Management)에 중점을 둔다. addToHistory 메서드를 사용하여 히스토리 길이를 제한하고, 불필요한 정보를 제거한다. promptInput 함수는 현재 사용자 입력, 날짜/시간, 히스토리 정보를 포함하는 프롬프트를 생성하여 LLM에 전달한다. 이러한 컨텍스트 관리 전략은 LLM의 토큰 사용량(Token Usage)을 줄이고, 응답 속도를 향상시키는 데 기여한다.

미니클로(MiniClaw)의 확장성 및 활용 방안

미니클로(MiniClaw)는 확장성(Extensibility)을 고려하여 설계되었으며, 새로운 도구 추가 및 LLM 공급자 변경이 용이하다. 새로운 도구를 추가하려면 tools.ms 파일에 해당 기능을 구현하고, instructions.txt 파일에 도구 설명을 추가하면 된다. 또한, getResponse 함수를 수정하여 다른 LLM 공급자를 사용할 수 있다. 사용자 인터페이스 개선(User Interface Improvement)을 통해 사용자 경험을 향상시킬 수 있으며, 다양한 Mini Micro 환경에서 활용될 수 있다.

MiniClaw: A Tiny LLM Agent for Mini Micro