Leonardo는 Rails 개발자를 위한 강력한 AI 도구로, 다음과 같은 핵심 기능을 제공합니다.
1. Rails 애플리케이션 구축 및 수정
-
완전한 제어: Leonardo는 파일 시스템에 직접 접근하여 코드를 읽고 쓸 수 있으며,
scaffolding및 마이그레이션 명령과 같은 개발자가 사용하는 모든 도구를 실행할 수 있습니다. -
실시간 미리보기: 데모에서는 완전히 비어있는 Rails 애플리케이션을 오른쪽 화면의 iframe으로 미리 보여주며, 왼쪽의 채팅 인터페이스를 통해 명령을 입력합니다.
-
예시: “Rails 개발자를 위한 작업 추적 앱을 만들어달라”는 요청으로 시작하여, Leonardo가 필요한 필드를 질문하고 자동으로 코드를 생성하는 과정을 시연합니다.
2. 에러 처리 및 디버깅
- 대화형 디버깅: 생성된 앱에서 에러가 발생했을 때, 에러 메시지를 Leonardo에게 복사하여 붙여넣으면 문제를 진단하고 수정하는 과정을 보여줍니다. 이는 Claude Code와 유사한 대화형 디버깅 경험을 제공합니다.
3. AI 챗봇 빌더 (에이전트 워크플로우)
-
Rails 컨트롤러 활용: Leonardo는 Rails 컨트롤러를 도구 호출(tool calls)로 사용하여 에이전트 워크플로우를 생성할 수 있습니다.
-
인증 지원: Devise와 CanCan과 같은 인증 시스템과 연동하여, 로그인한 사용자의 역할에 특화된 서브 에이전트를 만들 수 있습니다.
-
예시: “작업을 읽고, 쓰고, 편집할 수 있는 AI 챗봇을 만들어달라”는 요청을 통해, AI가 Rails 컨트롤러의 index 라우트를 호출하여 모든 작업을 표시하고, 새로운 작업을 생성하는 과정을 시연합니다.
4. 딥 에이전트(Deep Agent) 패턴
-
장기 계획: Leonardo는 장기 계획을 위해 ‘할 일’ 관리 도구를 사용하며, 파일 시스템에 컨텍스트를 오프로드하여 더 긴 프로세스를 처리합니다.
-
서브 에이전트: 부모 에이전트의 컨텍스트 창을 보호하기 위해 서브 에이전트를 생성합니다.
-
도구 호출: 에이전트는 본질적으로 LLM이 루프에서 도구 호출을 수행하는 방식이며, Leonardo는 Ruby on Rails의 “날카로운 도구”를 활용합니다.