RAG·AI 에이전트·멀티에이전트 팀·MCP·Voice·메모리·파인튜닝 — 10대 카테고리에 걸친 111k★ 컬렉션을 해부한다. agno 프레임워크 한 줄, Streamlit UI, 그리고 "복붙하면 돌아가는 데모" 100개의 설계 원칙.
먼저, awesome-llm-apps가 뭔가?
Shubhamsaboo/awesome-llm-apps는 RAG·AI 에이전트·멀티에이전트 팀·MCP·Voice·메모리·파인튜닝 카테고리의 LLM 앱 100개 이상을 한 레포에 모은 큐레이션 + 실행 가능 예제 컬렉션이다. 단순 링크 모음이 아니라, 각 폴더에 app.py·requirements.txt·README.md가 들어 있어서 레포 클론 → cd → pip install → streamlit run 4단계로 데모가 뜬다.
운영자는 인도의 데브렐(DevRel) 출신 Shubham Saboo. 그가 운영하는 뉴스레터 Unwind AI의 콘텐츠 백본 역할을 하는 레포다. 2025년부터 폭발적으로 별을 모아 111k★, 16k fork, GitHub 트렌딩에 62번 올랐다.
트렌딩 상위에 60+번 올라간 이유.
대부분의 "awesome-" 레포는 외부 링크 모음이라 누르면 외부 사이트로 흩어진다. 반면 awesome-llm-apps는 소스 코드가 같은 레포 안에 들어 있고, requirements.txt가 같이 있어서 한 번에 따라 할 수 있다. "보고 끝"이 아니라 "복붙하고 돌려보고 끝".
비슷한 컬렉션들(예: awesome-langchain, awesome-llm)은 README에 외부 링크만 잔뜩 있다. awesome-llm-apps는 starter_ai_agents/ai_travel_agent/app.py처럼 폴더 안에 코드가 있어서, GitHub 페이지에서 바로 읽을 수 있고 ZIP 다운받아 돌릴 수 있다.
100개 앱이 같은 UI 라이브러리(Streamlit 1.41.1)를 쓴다. streamlit run app.py 한 줄이면 브라우저에 데모가 뜬다. 처음 보는 앱도 5초 안에 실행해서 만져볼 수 있다는 게 큰 차별점.
옛 이름 Phidata로 알려진 agno 라이브러리가 거의 모든 에이전트 예제의 기반이다. 한 번 agno 패턴을 익히면 100개 앱을 다 읽을 수 있게 된다. "같은 어휘"로 다양한 도메인을 풀어쓴 게 학습 자료로 강력.
대부분 컬렉션은 한두 주제(RAG만, 또는 에이전트만)에 몰린다. 여기는 10대 카테고리를 다 커버한다. 입문자가 "다음에 뭘 배우지?"를 결정할 때 지도가 되어준다.
운영자 Shubham Saboo의 뉴스레터 theunwindai.com이 사실상 이 레포의 마케팅 채널이다. 매주 새 트렌드(예: Nano Banana Pro, DeepSeek 출시 직후)에 맞춰 데모 앱이 빠르게 추가된다. "트렌드 따라잡기"용 자료로도 유용.
앱 100개의 공통 분모.
from agno.agent import Agent로 임포트해서 Agent(model=..., tools=[...], instructions="...") 한 줄로 에이전트가 만들어진다. agentos.com에서 운영.st.text_input()·st.button()·st.chat_message() 같은 함수 호출만으로 UI 구성. 디자이너 없이 데모 만들 때 절대강자.ollama 또는 vllm으로 띄워 사용.text-embedding-3-small/large, Google embedding-gemma, BGE-M3, Nomic Embed.pypdf, unstructured, docling, llama-index의 reader 군.firecrawl.scrape(url) 한 줄로 마크다운 추출.※ 2026-05-23 분석 기준. 현재 README에서 TinyFish·Tiger Data MCP 스폰서 섹션이 확인되지 않을 수 있음 (스폰서 계약 변경 가능성).
개별 앱이 아니라 "레포 전체"가 어떻게 구성됐나.
이 레포의 진짜 가치는 "각 앱이 동일한 패턴을 따른다"는 점이다. 100개 앱이 다 같은 구조라서 한 번 익히면 어디든 적용된다.
{앱_이름}/
├── README.md # 무엇을 하는 앱인지 + 실행 방법
├── requirements.txt # 4~10개 핵심 의존성
├── <앱명>.py # Streamlit UI + 에이전트 정의 + 메인 루프
│ # (파일명은 앱마다 다름: travel_agent.py, ai_data_analyst.py 등)
└── (선택) .env.example # API 키 템플릿
핵심: 한 폴더 = 한 데모. 의존성 충돌이 거의 없고, 다른 앱을 망가뜨릴 일이 없다. 각 폴더가 독립된 가상환경처럼 동작한다.
┌─────────────────────────────────────────────────────────────┐
│ awesome-llm-apps (README가 인덱스 역할) │
└─────────────────────────────────────────────────────────────┘
│
├── starter_ai_agents/ (12개) — 첫 발 떼는 앱
│ ├── ai_travel_agent/ ← agno + 검색
│ ├── ai_data_analysis_agent/ ← agno + DuckDB
│ └── ...
│
├── advanced_ai_agents/ (40+) — 실전 시나리오
│ ├── single_agent_apps/ (단일 에이전트)
│ │ ├── ai_deep_research_agent/
│ │ ├── ai_health_fitness_agent/
│ │ └── ...
│ ├── multi_agent_apps/ (멀티 에이전트)
│ │ ├── ai_self_evolving_agent/
│ │ └── agent_teams/ (협업하는 팀)
│ │ ├── ai_competitor_intelligence_agent_team/
│ │ ├── ai_finance_agent_team/
│ │ └── ...
│ └── autonomous_game_playing_agent_apps/ (게임 AI)
│
├── rag_tutorials/ (20+) — RAG 패턴 모음
│ ├── corrective_rag/ ← CRAG
│ ├── agentic_rag_*/ ← 검색을 자율 판단
│ ├── hybrid_search_rag/ ← BM25 + 벡터
│ └── knowledge_graph_rag_citations/
│
├── mcp_ai_agents/ (5+) — MCP 활용
│ ├── github_mcp_agent/
│ ├── notion_mcp_agent/
│ └── multi_mcp_agent_router/
│
├── voice_ai_agents/ (4+) — 음성 인터페이스
│ └── voice_rag_openaisdk/
│
├── advanced_llm_apps/ (15+)
│ ├── llm_apps_with_memory_tutorials/
│ ├── chat_with_X_tutorials/
│ ├── llm_optimization_tools/
│ └── llm_finetuning_tutorials/
│
├── ai_agent_framework_crash_course/
│ ├── google_adk_crash_course/
│ └── openai_sdk_crash_course/
│
└── awesome_agent_skills/ (20+) — Claude Code 스킬
├── academic-researcher/
├── code-reviewer/
└── ...
대부분 앱은 app.py 한 파일에 모든 게 들어 있다. 에이전트 정의 + UI + 메인 루프가 한 곳에. 분리 안 하는 게 단점이 아니라 학습용으로는 장점이다. 한 파일을 처음부터 끝까지 읽으면 전체 흐름이 잡힌다.
Streamlit이 "프론트엔드", agno가 "에이전트 백엔드" 역할. 사용자가 st.text_input에 질문을 치면 → agno Agent에 전달 → Agent가 도구 호출하며 응답 → st.write로 출력. 이 패턴이 80% 앱의 뼈대.
Streamlit 사이드바(st.sidebar.text_input(type='password'))에서 사용자가 API 키를 직접 입력한다. 레포에 .env를 안 넣어도 데모가 돌아간다. 처음 보는 사람이 클론하자마자 키만 붙여넣고 실행 가능.
ai_finance_agent_team 같은 팀 앱은 Web Agent(검색 담당) + Finance Agent(YFinance 호출 담당) + Team Lead(둘을 조율) 3개 에이전트로 분리. 각자 다른 시스템 프롬프트 + 다른 도구를 가지고, 팀 리드가 라우팅한다.
멀티에이전트는 회사 조직도와 똑같다. CEO(Team Lead)가 "이 일 해줘"라고 던지면, 검색팀(Web Agent)이 자료 모으고, 분석팀(Finance Agent)이 데이터 뽑고, 보고서팀이 합쳐서 발표. agno가 이 위계 구조를 코드로 직접 표현한다 — team_leader.team = [web_agent, finance_agent].
각 폴더에 뭐가 있나, 어디부터 봐야 하나.
처음 본다면 여기부터. 한 파일짜리 데모가 12개. 외부 API도 단순한 것만 쓴다.
ai_travel_agent/ — DuckDuckGo 검색 + GPT로 여행 일정 생성. 가장 추천.ai_data_analysis_agent/ — Streamlit + DuckDB + 자연어 SQL. CSV 던지면 분석해주는 미니 BI.ai_blog_to_podcast_agent/ — 블로그 URL → TTS로 팟캐스트 변환.xai_finance_agent/ — Grok-2 + YFinance.openai_research_agent/ — OpenAI Deep Research 패턴.mixture_of_agents/ — 여러 LLM이 의견을 합쳐서 답 — Mixture of Experts 패턴의 단순 버전.단일 에이전트지만 도구·메모리·상태가 복잡한 앱들.
ai_deep_research_agent/ — 다단계 검색 → 요약 → 인용 포함 리포트.ai_journalist_agent/ — 토픽 입력 → 인터뷰 질문 자동 생성 → 가상 인터뷰 → 기사.ai_health_fitness_agent/ — 나이·체중·목표 입력 → 식단·운동 플랜.ai_consultant_agent/ — 비즈니스 문제 → SWOT·BCG·5 Forces 분석.ai_meeting_agent/ — 회의 녹음 → 요약 + 액션 아이템.여러 에이전트가 역할을 나눠 일하는 본격 멀티에이전트.
ai_self_evolving_agent/ — 가장 흥미로움. 에이전트가 자기 코드를 수정해서 개선하는 패턴.devpulse_ai/ — 개발 활동(commit·PR)을 분석해서 시그널 인텔리전스 생성.product_launch_intelligence_agent/ — 신제품 출시 분석.ai_home_renovation_agent/ — Nano Banana Pro(Gemini 이미지)로 인테리어 시뮬레이션.ai_financial_coach_agent/ — 멀티 에이전트 재무 코치.역할 분리가 명확한 팀형 앱.
ai_competitor_intelligence_agent_team/ — Firecrawl 크롤링 + agno로 경쟁사 분석.ai_finance_agent_team/ — Web Agent + Finance Agent + Team Lead 3인조.ai_legal_agent_team/ — 법률 문서 분석 (계약서·약관).ai_recruitment_agent_team/ — 이력서 스크리닝 + 인터뷰 시뮬레이션.ai_services_agency/ — agency-swarm 기반 (agency-swarm==1.7.0, CrewAI와 별개 프레임워크). 디지털 마케팅 에이전시를 통째로 시뮬레이션.multimodal_uiux_feedback_agent_team/ — UI 스크린샷 + Nano Banana로 디자인 피드백.RAG의 진화 과정이 폴더 이름에 그대로 담겨 있다.
rag_chain/ — 가장 기본. LangChain 표준 RAG.corrective_rag/ — CRAG. 검색 결과의 품질을 자체 평가해서 나쁘면 웹 검색 폴백.agentic_rag_with_reasoning/ — 검색 자체를 에이전트가 자율 판단 (어떤 쿼리·언제·몇 번).hybrid_search_rag/ — BM25(키워드) + 벡터 검색 합치기.rag_database_routing/ — 여러 DB 중 어디서 검색할지 LLM이 라우팅.vision_rag/ — 이미지를 직접 임베딩해서 검색.knowledge_graph_rag_citations/ — Neo4j 그래프 RAG.rag_failure_diagnostics_clinic/ — RAG가 왜 잘못 답했는지 진단.github_mcp_agent/ — 레포 분석·이슈 작성.notion_mcp_agent/ — Notion 페이지 자동 생성.browser_mcp_agent/ — Playwright MCP로 브라우저 조작.multi_mcp_agent_router/ — 여러 MCP 서버를 동시에 라우팅.voice_rag_openaisdk/ — OpenAI Realtime API로 음성 RAG.customer_support_voice_agent/ — 콜센터 상담봇.ai_audio_tour_agent/ — 위치 입력 → 오디오 가이드 자동 생성.llm_apps_with_memory_tutorials/ — mem0·Zep으로 사용자 메모리 구현 5개.chat_with_X_tutorials/ — GitHub·Gmail·PDF·논문·YouTube와 대화하는 6개 앱.llm_optimization_tools/ — TOON 포맷·Headroom으로 토큰 비용 30~90% 절감.llm_finetuning_tutorials/ — Gemma 3 + Llama 3.2 파인튜닝 노트북.google_adk_crash_course/ — Google Agent Development Kit 스타터 → 메모리 → 멀티에이전트.openai_sdk_crash_course/ — OpenAI Agents SDK 스타터 → 핸드오프 → 스웜.이 폴더가 가장 최근에 추가된 영역. Claude Code의 SKILL.md 표준에 맞춘 20+개 스킬.
academic-researcher/, code-reviewer/, content-creator/data-analyst/, debugger/, decision-helper/deep-research/, editor/, email-drafter/fact-checker/, fullstack-developer/, meeting-notes/project-planner/, python-expert/, self-improving-agent-skills/sprint-planner/, strategy-advisor/, technical-writer/ux-designer/, visualization-expert/각 기술에서 배울 점 + 실습 아이디어.
agno의 API는 매우 단순하다. Agent(LLM + 도구 + 지시문), Tool(함수에 @tool 데코레이터), Team(Agent의 리스트 + 리더)이 거의 전부. 100개 앱이 이 3개로 다 만들어진다. 한 앱 deep-read만 하면 다른 99개를 빨리 읽을 수 있다.
실습: starter_ai_agents/ai_travel_agent/app.py를 한 줄씩 주석 달면서 읽기. 그다음 agent_teams/ai_finance_agent_team로 넘어가 team 패턴 확장 비교.
HTML/CSS/JS 안 만져도 챗봇·대시보드·폼이 다 만들어진다. st.session_state로 상태 관리, st.chat_message로 채팅 UI, st.sidebar로 설정 패널. 데이터 사이언티스트·연구자가 PoC를 빨리 만들 때 황금 도구.
실습: ai_data_analysis_agent/app.py의 Streamlit 구조 파악. st.file_uploader로 CSV 받고 → DuckDB에 등록 → 자연어 질의 → 결과 표시 흐름.
RAG 1년 진화를 한 폴더에서 추적 가능. 단순 RAG → CRAG(자체 평가) → Agentic RAG(자율 판단) → Hybrid → Vision → Graph. 각 단계마다 "왜 이게 부족했나"가 명확해서 진화 동기를 이해하기 좋다.
실습: rag_chain → corrective_rag → agentic_rag_with_reasoning 순서로 3개 앱 비교 읽기. 검색 제어권이 어떻게 LLM 쪽으로 이동하는지 본다.
혼자 푸는 큰 문제를 작은 역할로 쪼개고, 리더가 라우팅하고, 결과를 합친다. 마이크로서비스 아키텍처와 닮았다. CrewAI·LangGraph·AG2·agno Team이 같은 문제를 다른 추상화로 푼다.
실습: 같은 도메인(예: 경쟁사 분석)을 agno Team과 CrewAI로 각각 구현해보고 코드 길이·복잡도 비교.
예전엔 GitHub 도구를 LangChain용·LlamaIndex용·OpenAI Tool용 따로 만들어야 했다. MCP는 그걸 표준화해서 한 번 짜면 어디서나 작동. multi_mcp_agent_router가 라우팅까지 보여준다.
실습: github_mcp_agent를 클론해서 직접 GitHub 토큰 넣고 돌려보기. 다음으로 자기 회사 도구용 MCP 서버 직접 작성.
음성 → STT → LLM → TTS → 음성 4단계가 1초 안에 일어나는 파이프라인. 콜센터·음성 비서 만들 때 베이스라인 코드.
실습: voice_rag_openaisdk로 자기 PDF에 대해 음성으로 질문해보기. STT/TTS 지연이 체감되는 부분 측정.
llm_optimization_tools가 실전적이다. JSON 대신 TOON(Token-Oriented Object Notation)으로 입력을 압축해 30~60% 토큰 절감. Headroom은 컨텍스트의 중복 부분을 자동 압축해 50~90% 절감.
실습: 자기가 자주 보내는 프롬프트를 TOON으로 바꿔보고 토큰 카운트 비교.
20+개 SKILL.md 예제가 같은 디렉토리에. 도메인별로 어떻게 트리거 기술을 쓰는지, references/·assets/ 구조 어떻게 만드는지 모범 사례 모음.
실습: 자기 업무용 스킬(예: 회사 보고서 요약)을 만들어볼 때 code-reviewer·technical-writer 폴더를 참고로.
뭘 갖춰야 다 돌릴 수 있나.
ollama pull llama3.1로 모델 받기.각 앱마다 외부 API 키가 필요하고, 단순 합산으로도 월 수십 달러. 본인 관심 카테고리에서 3~5개만 골라 깊게 파는 게 효율적. 100개 README만 훑고 그 중 흥미로운 거 위주로.
OpenAI 무료 크레딧 + Google Gemini 무료 + DuckDuckGo 검색(키 불필요)로 돌아가는 앱: ai_travel_agent, ai_data_analysis_agent, xai_finance_agent, chat_with_pdf. 이 4개로 시작해서 익숙해진 후 유료 API 확장.
난이도별 5개 — 1번부터 순서대로.
starter_ai_agents/ai_travel_agent/app.py를 클론하고, 프롬프트를 "한국 국내 여행" 위주로 바꾼다. 검색 도구는 그대로 DuckDuckGo. 30분 안에 완성 가능. 결과: 지역 입력 시 한국어로 일정 짜주는 미니 챗봇.
학습 포인트: agno Agent 인스턴스화, 시스템 프롬프트가 결과에 미치는 영향, Streamlit UI 5줄 작성.
advanced_llm_apps/chat_with_X_tutorials/chat_with_pdf를 베이스로, 기본 OpenAI 임베딩을 한국어 친화 임베딩(BGE-M3 또는 ko-sbert)으로 교체. PDF를 자기 회사 매뉴얼·논문으로 넣고 한국어 질의 정확도 측정.
학습 포인트: 임베딩 모델 교체가 검색 품질에 어떻게 영향 주는지 체감. 벡터 DB(Chroma) 직접 다루기.
mcp_ai_agents/github_mcp_agent를 출발점으로, 자기 GitHub 계정에 연결. "최근 한 달간 가장 활발한 레포는?", "닫히지 않은 이슈 중 우선순위 매겨줘" 같은 질의를 한국어로 처리하도록 시스템 프롬프트 작성.
학습 포인트: MCP 서버 연동, GitHub API 토큰 관리, 시스템 프롬프트 엔지니어링.
agent_teams/ai_competitor_intelligence_agent_team를 본인 업무 도메인에 적용. 예: 부동산 시장 분석 팀(시세 크롤러 + 동향 분석가 + 보고서 작성가). agno의 Team 클래스로 3개 에이전트 역할 분리.
학습 포인트: 멀티에이전트의 라우팅·종합 단계, 각 에이전트 시스템 프롬프트의 효과적 분할, 도구 분배 전략.
llm_finetuning_tutorials/gemma3_finetuning 노트북을 Colab Pro에서 실행. 한국어 instruction 데이터셋(KoAlpaca·KuLLM)으로 파인튜닝. 결과 모델을 Ollama로 로드해서, 위 실습 1~4 앱들에서 OpenAI API 자리에 끼워넣기.
학습 포인트: Unsloth + LoRA 워크플로, 4bit 양자화, GGUF 변환, 로컬 추론 통합. 전체 풀스택 경험.
8주 커리큘럼 (주당 약 5시간).
레포 클론 → starter_ai_agents의 12개 README 훑기 → 3개 직접 실행. agno 문서(docs.agno.com) 읽기. 목표: Agent · Tool · 시스템 프롬프트의 관계 이해.
rag_chain → autonomous_rag → corrective_rag 순서. 벡터 DB는 Chroma로 통일. 목표: 임베딩·청크·리트리벌·재순위(rerank)의 4단계 이해.
agentic_rag_with_reasoning + hybrid_search_rag. 검색 전략을 LLM이 직접 결정하는 패턴. 목표: BM25(키워드)와 벡터(의미)의 보완 관계 체감.
ai_finance_agent_team·ai_competitor_intelligence_agent_team 코드 분석. 역할 분리 → 라우팅 → 종합 패턴. 목표: 한 가지 본인 도메인 멀티에이전트 PoC 직접 작성.
ai_services_agency(CrewAI)와 LangGraph 기반 RAG를 비교. 추상화 차이 분석. 목표: 어떤 문제에 어떤 프레임워크가 맞는지 감 잡기.
mcp_ai_agents 3개 + voice_rag_openaisdk + llm_apps_with_memory_tutorials 2개. 목표: 외부 도구·음성·장기 메모리를 한 에이전트에 합치는 통합 패턴 습득.
TOON 포맷 적용 → gemma3_finetuning 노트북 실행. 목표: 프로덕션 비용 관점 사고. "토큰 = 돈"임을 체감.
1~7주차 배운 걸 종합해서 "내 도메인 멀티에이전트 + RAG + 음성"을 통합한 한 가지 앱 완성. 이걸 SKILL.md 형식으로 변환해 Claude Code 스킬로 publish. 목표: 학습한 게 결과물로 남는다.
레포에 자주 등장하는 용어 정리.
agentos.com에서 호스팅 서비스도 제공.st.button()·st.text_input() 같은 함수 호출만으로 화면 구성. 데모·PoC 만들 때 압도적 1위. 100개 앱이 거의 다 이걸 씀.레포 + 프레임워크 공식 문서.
git clone → ai_travel_agent 폴더로 이동 → pip install -r requirements.txt → streamlit run app.py. 30분 안에 첫 LLM 앱이 브라우저에 뜬다.ai_competitor_intelligence_agent_team → "내 분야 경쟁사 분석" 같은 식.