1. 프롬프트 파일 형식의 혁신
AIA v1.0.0의 가장 큰 변화는 프롬프트 구조의 현대화입니다. 기존의 .txt 파일과 별도의 .json 메타데이터 파일을 사용하는 방식에서 벗어나, 단일 .md 파일 구조로 통합되었습니다.
- YAML Front Matter: 모델 설정(model), 온도(temperature), 매개변수 정의 등을 파일 상단의 YAML 블록에서 관리합니다.
- ERB 매개변수: 기존의
[PLACEHOLDER]구문 대신 Ruby 표준인<%= placeholder %>형식을 사용하여 동적 텍스트 삽입 및 로직 구현이 가능해졌습니다. - 파일 포함(Inclusion):
<%= include('file.md') %>구문을 통해 다른 프롬프트 조각을 재사용할 수 있습니다.
2. 다중 모델 동시 실행 및 합의 알고리즘
Ruby의 Async 프레임워크와 파이버(Fiber)를 활용하여 여러 모델을 병렬로 호출할 수 있는 기능이 추가되었습니다.
- 병렬 쿼리:
--model "gpt-4o,claude-3-5-sonnet"과 같이 여러 모델을 지정하면 동시에 실행되어 응답 시간을 단축합니다. - 합의 모드(Consensus): 여러 모델의 답변을 종합하여 하나의 통일된 답변을 생성하는
--consensus플래그를 지원합니다. - 역할 할당: 동일하거나 서로 다른 모델에
gpt-4o=architect,claude-3-5-sonnet=security와 같이 개별 역할을 부여하여 다각도의 분석이 가능합니다.
3. MCP(Model Context Protocol) 및 도구 통합
Anthropic에서 제안한 MCP를 지원하여 모델이 외부 도구와 상호작용할 수 있는 능력이 대폭 강화되었습니다.
- 외부 도구 연결: 파일 시스템, 데이터베이스, GitHub 등 MCP 서버와 연결하여 모델이 직접 데이터를 조회하거나 조작할 수 있습니다.
- 커스텀 도구 개발:
RubyLLM::Tool서브클래스를 작성하여 Ruby로 직접 도구를 구현하거나shared_tools젬을 통해 공유된 도구를 로드할 수 있습니다. - 비용 추적:
--cost플래그를 통해 모델별 토큰 사용량과 실제 발생 비용을 실시간으로 확인하고 예측할 수 있습니다.
4. 실행 가능한 프롬프트와 유닉스 파이프라인
CLI 도구로서의 사용성을 극대화하기 위해 유닉스 철학을 적극 수용했습니다.
- Shebang 지원: 프롬프트 파일 상단에
#!/usr/bin/env aia를 추가하고 실행 권한을 부여하면 독립적인 스크립트처럼 실행할 수 있습니다. - 파이프라인 통합:
ls | aia summarize와 같이 표준 입력(STDIN)을 받아 처리하고,--no-output을 통해 결과를 표준 출력(STDOUT)으로 보내 다른 명령어로 전달할 수 있습니다. - 로컬 모델 지원: Ollama 및 LM Studio와 연동하여 로컬 환경에서 구동되는 모델을 쉽게 활용할 수 있습니다.
5. 마이그레이션 및 보안
기존 v0.9.x 사용자를 위해 자동 마이그레이션 도구인 bin/migrate_prompts를 제공합니다. 이 도구는 기존 .txt 파일을 새로운 .md 형식으로 변환하고 매개변수 구문을 자동으로 업데이트합니다. 또한, 셸 인젝션 방지를 위한 프로세스 실행 방식 개선, 임시 파일 처리 강화 등 보안 측면에서도 대폭적인 보강이 이루어졌습니다.