AIA의 도구 통합은 세 가지 주요 계층으로 구성됩니다. 첫째, 동적 프롬프트 콘텐츠 생성을 위한 ERB(Embedded Ruby) 처리와 쉘 통합입니다. ERB는 프롬프트 내 Ruby 로직 구현을 통해 조건부 콘텐츠 및 동적 데이터 생성을 지원하며, 쉘 통합은 시스템 환경 변수나 쉘 명령 출력을 프롬프트에 포함하여 시스템 정보 등을 통합합니다. 이는 정적 프롬프트를 상황 인식적인 동적 템플릿으로 변환합니다.
둘째, AIA는 RubyLLM::Tool
서브클래스로 정의된 외부 도구를 통해 LLM 처리 중 시스템, API, 외부 서비스와 능동적으로 상호작용합니다. 이 도구들은 API 통합, 고급 파일 작업, 시스템 명령 실행, 데이터 처리 등 광범위한 기능을 제공합니다. shared_tools
젬은 사전 구축된 도구 컬렉션을 제공하며, 사용자는 --tools
옵션으로 사용자 정의 도구를 로드할 수 있습니다.
셋째, Model Context Protocol(MCP)은 AI 도구 통합의 최전선입니다. AIA는 ruby_llm-mcp
젬을 통해 MCP 서버와 상호작용하며, 주로 LLM 프롬프트 컨텍스트 강화를 위한 도구 기능을 활용합니다. MCP는 AI 애플리케이션이 외부 도구, 데이터 소스, 서비스를 동적으로 발견하고 상호작용하는 표준화된 방법을 제공하며, 런타임에 새로운 도구 추가를 가능하게 하여 확장 가능한 AI 플랫폼을 구축합니다.
또한, direnv
와 jq
같은 지원 도구들은 AIA 효율성을 높입니다. direnv
는 디렉터리 기반 환경 변수 관리를 통해 프로젝트별 AIA 설정을 용이하게 하며, jq
는 JSON 데이터를 효율적으로 필터링하고 변환하여 비용과 시간을 절약합니다.