코딩 에이전트의 개선 방안은 크게 세 가지 축으로 나뉩니다.
1. 지침(Instructions) 개선
-
agents.md파일 활용: 에이전트의 LLM(대규모 언어 모델) 행동을 안내하는 시스템 프롬프트 외에,agents.md파일을 통해 비즈니스 도메인 규칙, 프로젝트별 단계, 커스텀 워크플로우, 그리고 흔한 실수 및 반복되는 문제점을 문서화하여 에이전트의 행동을 미세 조정할 수 있습니다. -
프레임워크 통합: Rails와 같은 프레임워크가 새로운 앱을 생성할 때
agents.md파일을 기본으로 포함해야 한다는 주장이 제기됩니다. 이는 LLM이 최신 프레임워크 버전이나 프로젝트의 특정 관행을 따라가지 못하는 격차를 메우는 데 중요합니다. -
Pre-commit 태스크: 테스트 실행, RuboCop 자동 수정, 보안 검사 등 인간 개발자와 에이전트 모두가 커밋 전에 수행해야 할 일련의 작업을 단일 명령어로 통합하는 것이 생산성 향상에 기여합니다.
2. 도구(Tools) 개선 (MCPs)
-
MCP(Multi-modal Communication Protocol)의 역할: MCP는 에이전트의 기능을 확장하는 새로운 표준으로, GitHub, Sentry, 데이터베이스 등 다양한 서비스와 연동하여 에이전트에게 새로운 도구를 제공합니다.
-
보안 문제: Simon Willis가 제시한 ‘Little Trifecta’ 개념은 MCP 사용 시 보안 위험을 경고합니다. 개인 데이터 접근, 외부 통신 가능성, 신뢰할 수 없는 콘텐츠 노출이라는 세 가지 조건이 충족될 경우, 에이전트가 민감한 데이터를 유출할 수 있습니다. 예를 들어, 에러 메시지나 로그에 악성 코드가 포함될 수 있습니다.
-
개선 방향: 더 적은 MCP 클라이언트와 더 나은 런타임이 필요하다는 주장이 제기됩니다. 이는 보안 위험을 줄이고 효율적인 통합을 가능하게 합니다.
3. 런타임(Runtime) 개선
-
런타임의 중요성: 런타임은 지침, 모델, 도구를 연결하여 에이전트가 작동하도록 하는 핵심 요소입니다. 커스텀 런타임을 구축하면 최고의 생산성을 이끌어낼 수 있습니다.
-
Tidewave 사례: Tidewave는 웹 개발자를 위한 코딩 에이전트로, 브라우저 내에 런타임을 통합하여 웹 애플리케이션과 에이전트 간의 깊은 상호작용을 가능하게 합니다. 템플릿과 DOM 매핑 이해, 선제적인 에러 처리, 브라우저 테스트, 언어 런타임 및 데이터베이스 접근 등을 통해 에이전트가 스스로 기능을 구현하고 테스트하며 버그를 수정하는 능력을 보여줍니다.
-
에이전트 통합: 코딩 에이전트를 우리가 구축하는 대상(예: 라이브러리는 에디터, 웹 앱은 브라우저, 데이터 분석은 노트북, 게임은 게임 엔진)에 직접 통합해야 한다는 주장이 강조됩니다. 이는 도구 간의 단편화를 줄이고 전체 개발 워크플로우를 유기적으로 연결합니다.
4. 인트로스펙션(Introspection)의 필요성
-
언어의 이해: 커스텀 코딩 에이전트가 효과적으로 작동하려면 언어, 프레임워크, 게임 엔진 등이 무엇을 하는지 완벽하게 이해할 수 있는 인트로스펙션 기능이 필수적입니다. Ruby와 Rails는 이미 훌륭한 인트로스펙션 기능을 갖추고 있지만, 특정 영역에서는 개선이 필요합니다.
-
구조화된 템플릿: 현재 Ruby의 ERB 파일은 HTML을 문자열 보간 방식으로 처리하여 구조적 이해나 유효성 검사가 어렵습니다. Herb와 같은 구조화된 HTML 템플릿은 인간 개발자뿐만 아니라 에이전트에게도 큰 이점을 제공합니다.
-
통합된 문서화: Ruby의 문서화는 접근성이 떨어지고 표준 API가 부족합니다. 런타임에서 문서화를 가져올 수 있는 API와 Ruby, Rails, 모든 Gem의 문서가 통합된 단일 웹사이트는 인간과 에이전트 모두에게 큰 도움이 될 것입니다.