AI 에이전트 개발이 생각보다 훨씬 간단하다는 사실을 아시나요?
•
생산성 앱 개발자 크리스(Chris)가 단 48시간 만에, 100줄도 안 되는 코드로 실용적인 AI 에이전트를 구현한 과정을 공개했습니다. 특히 Zapier MCP를 활용하여 Slack, Gmail, Notion 등 수천 개의 앱과 연동하는 방법까지 포함되어 있어 매우 실용적입니다.
•
"월요일에 시실리아와 언제 헬스장에 갈 수 있을까?"라고 물으면 두 사람의 캘린더를 확인하고 최적의 시간을 찾아주는 AI 에이전트. 이것이 단 이틀 만에 구현되었다는 것이 놀랍습니다.
•
오늘은 이 AI 에이전트가 어떻게 작동하는지, 어떻게 구현했는지, 그리고 여러분의 앱에도 적용할 수 있는 실전 팁들을 상세히 살펴보겠습니다.
How I Coded a USEFUL AI Agent in 48 Hours (from scratch)
1. AI 에이전트의 핵심 개념 - ChatGPT에 도구를 준다면?
AI 에이전트를 가장 쉽게 설명하자면 "도구를 사용할 수 있는 ChatGPT"입니다. 일반적인 챗봇은 대화만 할 수 있지만, 에이전트는 실제로 작업을 수행할 수 있는 도구들을 갖추고 있죠.
크리스의 일일 계획 앱 Ellie를 위한 에이전트는 다음과 같은 도구들을 사용할 수 있습니다:
•
작업(Task) 생성
•
캘린더 이벤트 조회
•
작업 업데이트
•
캘린더 간 일정 조정
1.
도구 호출 루프의 이해
AI 에이전트의 핵심은 "루프"입니다. 사용자의 요청을 받으면 필요한 도구를 호출하고, 그 결과를 보고 추가 도구가 필요한지 판단합니다. 충분한 정보를 얻을 때까지 이 과정을 반복합니다.
2.
실제 예시로 보는 작동 원리
"이번 주 언제 헬스장에 갈 수 있을까?"라는 질문을 받으면:
•
먼저 캘린더 조회 도구를 호출 / 빈 시간대를 분석 / 적절한 시간을 찾아 사용자에게 응답
3.
단순하지만 강력한 구조
복잡해 보이지만 실제로는 LLM + 도구 정의 + 루프 처리만 있으면 됩니다. 이 간단한 구조로 놀라운 기능을 구현할 수 있습니다.
2. 첫 번째 도구 구현하기 - 작업 생성 기능
크리스가 가장 먼저 구현한 것은 '작업 생성' 도구입니다. 이 과정을 통해 AI 에이전트 개발의 기본 패턴을 이해할 수 있습니다.
도구 정의의 3요소
1.
이름: create_task
2.
설명: "새로운 작업을 생성합니다"
3.
파라미터: 작업 제목, 날짜, 우선순위 등
4.
도구 정의 코드 구조
도구는 JSON 형식으로 정의됩니다. 특히 '설명' 부분이 중요한데, LLM이 이를 읽고 언제 이 도구를 사용해야 할지 판단하기 때문입니다.
5.
실제 실행 함수 구현execute_tool 함수에서 도구 이름을 확인하고, 해당하는 백엔드 API를 호출합니다. 크리스의 경우 이미 존재하는 API를 활용해 몇 줄의 코드로 구현했습니다.
6.
결과 반환의 중요성
도구 실행 결과를 LLM에게 명확히 전달해야 합니다. "작업이 성공적으로 생성되었습니다" 같은 메시지로 다음 행동을 결정할 수 있게 합니다.
3. 복잡한 시나리오 처리 - 여러 도구의 연계
단일 도구만으로는 한계가 있습니다. 실제 유용한 에이전트는 여러 도구를 연계해서 사용할 수 있어야 합니다.
"치과 예약을 1시간 앞으로 옮겨줘"라는 요청을 처리하려면:
1.
먼저 '치과 예약' 작업을 검색
2.
해당 작업의 시간을 1시간 앞으로 업데이트
3.
검색 도구 추가
작업을 검색하는 도구를 추가합니다. 설명, 라벨, 날짜 범위로 검색할 수 있도록 파라미터를 정의합니다.
4.
업데이트 도구 구현
검색 결과로 얻은 작업 ID를 사용해 시간, 제목, 상태 등을 변경할 수 있는 도구를 만듭니다.
5.
도구 간 데이터 전달
첫 번째 도구의 결과가 두 번째 도구의 입력이 됩니다. LLM이 이 흐름을 자연스럽게 이해하고 처리하는 것이 인상적입니다.
4. 캘린더 통합의 도전 - 복잡성 다루기
캘린더 기능은 Google, Outlook, Apple 캘린더를 모두 지원해야 하므로 복잡도가 높습니다. 하지만 기존 백엔드 코드를 활용하면 쉽게 구현할 수 있습니다.
1.
캘린더 목록 조회
사용자가 연결한 모든 캘린더를 가져오고, 주 캘린더를 식별하는 도구를 만듭니다.
2.
이벤트 조회 및 분석
특정 캘린더의 이벤트를 가져와 빈 시간을 찾는 로직을 구현합니다. LLM이 이를 해석해 사용자에게 적절한 시간을 제안합니다.
3.
다중 사용자 일정 조정
"시실리아와 나의 공통 시간 찾기"같은 복잡한 요청은 초기에 어려움이 있었습니다. 시스템 프롬프트에 구체적인 워크플로우를 명시하여 해결했습니다.
5. 프롬프트 엔지니어링의 중요성 - AI를 올바르게 가이드하기
AI 에이전트가 복잡한 작업을 수행하려면 명확한 지침이 필요합니다. 크리스가 사용한 프롬프트 전략을 살펴봅시다.
1.
구체적인 워크플로우 제시
"두 사람의 일정을 조정할 때는 다음 순서를 따르세요:
2.
각자의 캘린더 목록 가져오기
3.
주 캘린더 식별하기
4.
두 캘린더의 이벤트 조회
5.
겹치지 않는 시간 찾기"
6.
예시를 통한 학습
구체적인 예시를 프롬프트에 포함시키면 LLM의 이해도가 크게 향상됩니다.
7.
모델 선택의 중요성
GPT-4o mini는 빠르고 저렴하지만 복잡한 작업에는 한계가 있었습니다. 특정 작업을 위해 더 강력한 모델을 호출하는 도구를 만드는 것도 좋은 전략입니다.
6. Zapier MCP 통합 - 게임 체인저
가장 혁신적인 부분은 Zapier MCP(Model Context Protocol) 통합입니다. 이를 통해 직접 구현하지 않고도 수천 개의 앱과 연동할 수 있습니다.
실제 사용 예시
"브라이언이 서버 비용 검토하라고 Slack 메시지 보냈는데, 찾아서 오늘 할 일로 만들어줘"
•
Slack 검색 도구로 메시지 찾기
•
내용을 파싱하여 Ellie에 작업 생성
1.
MCP 클라이언트 설정
약 30분, 100줄 미만의 코드로 MCP 클라이언트를 구현했습니다. Anthropic의 문서를 따라 JavaScript로 구현하면 됩니다.
2.
도구 통합 방식
Zapier의 도구들은 기존 Ellie 도구 배열에 자동으로 추가됩니다. 에이전트는 이를 네이티브 도구처럼 사용할 수 있습니다.
3.
무한한 확장 가능성
GitHub, Linear, Todoist, Gmail 등 Zapier가 지원하는 모든 서비스와 연동 가능합니다. "Linear의 오늘 작업을 모두 Ellie로 가져와줘"같은 복잡한 워크플로우도 가능합니다.
Zapier MCP - Connect your AI to any app instantly
7. 실전 AI 코딩 팁 - 2일 만에 완성한 비결
크리스가 단 48시간 만에 실용적인 AI 에이전트를 만들 수 있었던 비결을 정리해보겠습니다.
1.
기존 코드 최대한 활용
백엔드 API가 이미 있다면 도구 구현은 정말 간단합니다. 새로 만들지 말고 있는 것을 감싸기만 하세요.
2.
단순하게 시작하기
채팅 UI는 Cursor로 3개 프롬프트만에 생성했습니다. 핵심 기능에 집중하고 UI는 나중에 개선하세요.
3.
안전장치 필수
무한 루프 방지를 위해 최대 3회 루프 제한을 설정했습니다. API 비용 폭탄을 막는 필수 안전장치입니다.
4.
점진적 복잡도 증가
•
단일 도구로 시작 (작업 생성)
•
다중 도구 연계 (검색 + 업데이트)
•
외부 서비스 통합 (Zapier)
5.
실시간 테스트와 반복
각 기능을 추가할 때마다 즉시 테스트하고 개선합니다. 완벽을 추구하지 말고 작동하는 버전을 먼저 만드세요.
6.
문서화의 힘
Anthropic과 Zapier의 문서를 Cursor에 입력하면 대부분의 구현 코드를 자동으로 생성할 수 있습니다.
8. 향후 발전 방향과 가능성
크리스는 이 프로토타입을 실제 제품으로 발전시킬 계획입니다.
1.
모바일 통합
iPhone 버전에 음성 인식을 추가하여 "시리야"처럼 사용할 수 있게 만들 예정입니다.
2.
베타 테스트 전략
소수의 사용자에게 먼저 공개하여 엣지 케이스를 발견하고 실용성을 검증합니다.
3.
비용 최적화
LLM 비용이 계속 낮아지고 있어 이제는 대규모 배포가 현실적입니다.
이 영상은 AI 에이전트 개발이 더 이상 대기업의 전유물이 아님을 보여줍니다.
•
적절한 도구와 접근 방법만 있다면 개인 개발자도 강력한 AI 기능을 구현할 수 있습니다. 특히 Zapier MCP같은 통합 솔루션을 활용하면 개발 시간을 획기적으로 단축할 수 있습니다.
•
여러분의 앱에도 AI 에이전트를 추가해보는 것은 어떨까요? 생각보다 간단하고, 사용자에게 큰 가치를 제공할 수 있는 기능입니다. 크리스의 사례처럼 기존 API를 활용한다면 며칠 안에 실용적인 프로토타입을 만들 수 있을 것입니다.