주의: 이 글은 GitHub에서 Custom Middleware를 사용한 레포지토리들을 찾아 AI에게 분석시킨 결과입니다. AI가 작성한 내용이므로 부정확할 수 있습니다. 정확한 정보가 필요하다면 각 프로젝트의 링크를 통해 직접 확인하시기 바랍니다.
LangChain 1.0 Custom Middleware 활용 분석 보고서
전체 통계 및 개요
분석 대상
- 총 분석 프로젝트 수: 20개
- 총 Star 수: 약 22,000+ (mcp-use 8,815, intentkit 6,500, Yuxi-Know 3,730 등)
- 분석 기간: 2025년 LangChain 1.0 출시 이후
LangChain 1.0 Middleware 핵심 개념
LangChain 1.0에서 도입된 Middleware는 에이전트의 핵심 루프(모델 + 도구)를 세밀하게 제어할 수 있는 아키텍처입니다. 주요 Hook:
| Hook | 실행 시점 | 주요 용도 |
|---|---|---|
before_agent |
에이전트 루프 시작 전 | 리소스 초기화, 상태 준비, 컨텍스트 주입 |
after_agent |
에이전트 루프 종료 후 | 리소스 정리, 결과 저장, 팩트 추출 |
before_model |
모델 호출 전 | 메시지 트리밍, 컨텍스트 편집 |
after_model |
모델 호출 후 | 응답 검증, 비용 추적, 크레딧 확인 |
wrap_model |
모델 호출 래핑 | 동적 프롬프트, 모델 교체, 도구 바인딩 |
wrap_tool |
도구 호출 래핑 | 에러 처리, 승인 플로우, 출력 압축 |
주요 활용 패턴 통계
| 활용 패턴 | 프로젝트 수 | 비율 |
|---|---|---|
| 동적 시스템 프롬프트 주입 | 15 | 75% |
| 도구 에러 처리 / 재시도 | 8 | 40% |
| 토큰 비용 추적 | 6 | 30% |
| 컨텍스트 메모리 관리 | 5 | 25% |
| Human-in-the-Loop 워크플로우 | 5 | 25% |
| 실시간 UI 스트리밍 | 4 | 20% |
| 샌드박스 실행 환경 | 3 | 15% |
| 크레딧/과금 시스템 | 2 | 10% |
산업별 분포
| 분야 | 프로젝트 수 | 대표 프로젝트 |
|---|---|---|
| 개발자 도구 / DevOps | 6 | openchoreo, daiv, open-ptc-agent |
| AI 에이전트 플랫폼 | 5 | intentkit, Yuxi-Know, mcp-use |
| 보안 / CTF | 2 | crAPI, SickHackShark |
| 금융 / 비즈니스 | 2 | ai-stock-picker, langchain-barber-agent |
| 터미널 / CLI | 3 | linux-cop, langrepl, langchain_terminal_agent |
| 기타 | 2 | c64vibe, ai-discord-bot-PigPig |
프로젝트별 상세 분석
OWASP/crAPI
- Stars: 1,404
- 링크: https://github.com/OWASP/crAPI
- 레포 요약: API 보안의 10대 주요 위험을 교육하기 위해 의도적으로 취약하게 설계된 마이크로서비스 기반 API 애플리케이션. 안전한 환경에서 API 보안 취약점을 학습하고 실습할 수 있는 플랫폼 제공.
- 미들웨어 사용 요약:
before_model훅을 활용한truncate_tool_messages미들웨어 구현. MCP 도구, SQL 데이터베이스 도구, RAG 검색 도구의 실행 결과가 LLM 토큰 제한을 초과하는 것을 방지. JSON 구조를 보존하면서 지능적으로 콘텐츠를 절단하고, 가장 긴 필드부터 우선 절단하여 정보 손실 최소화.
Shy2593666979/AgentChat
- Stars: 176
- 링크: https://github.com/Shy2593666979/AgentChat
- 레포 요약: LangChain 1.0 기반 지능형 대화 시스템. 다중 Agent 협업, 지식베이스 검색, MCP 서버 통합, 실시간 대화 등을 지원하는 종합 AI 플랫폼. FastAPI + Vue 3 구성.
- 미들웨어 사용 요약:
EmitEventAgentMiddleware클래스로after_model,wrap_model,wrap_tool세 가지 훅을 모두 활용.get_stream_writer()를 통한 실시간 WebSocket 이벤트 스트리밍으로 도구 실행 상태(START/END/ERROR)를 사용자에게 전달. MCP Agent에서는wrap_tool_call로 사용자별 인증 정보를 동적 주입하여 멀티테넌트 환경 지원.
SickHackPark/SickHackShark
- Stars: 18
- 링크: https://github.com/SickHackPark/SickHackShark
- 레포 요약: 텐센트 클라우드 해커톤 프로젝트. AI Agent 기반 CTF 네트워크 보안 경쟁 자동화 도구. 다중 Agent 아키텍처로 웹 보안 테스트(정보 수집, 취약점 스캔, 익스플로잇, flag 획득) 자동 수행.
- 미들웨어 사용 요약:
ImportantNotesMiddleware로 보안 테스트 중 발견한 중요 정보(취약점, flag 후보)를 구조화 저장.LongChainWakeUp은 장기 실행 시 연속적인 도구 호출에 빠지는 것을 방지하고, 일정 횟수 후 중요 정보 기록을 강제. YAML 설정 기반 동적 미들웨어 구성으로 메인/서브 에이전트에 개별 적용.
ThomasITU/arch-recon-agent
- Stars: 0
- 링크: https://github.com/ThomasITU/arch-recon-agent
- 레포 요약: 코드베이스 아키텍처 재구성 에이전트. Module viewpoint, Component & Connector viewpoint, Allocation viewpoint 등 다양한 관점에서 시스템 아키텍처 문서화 자동화.
- 미들웨어 사용 요약:
PersistentPlanningMiddleware로TodoListMiddleware확장. 스크래치패드(메모장) 기능으로 대화 스레드 간 컨텍스트 유지.@after_agent데코레이터 사용한clear_message함수로 2단계 파이프라인(git_clone_agent -> arch_recon_agent) 간 메시지 정리.
Tunahanyrd/linux-cop
- Stars: 0
- 링크: https://github.com/Tunahanyrd/linux-cop
- 레포 요약: Google Gemini AI와 LangChain v1.0 활용 지능형 리눅스 터미널 어시스턴트. 자연어 명령 처리, 5가지 성격 모드, 다국어 지원(영어/터키어), 셸 명령 및 Python REPL 실행.
- 미들웨어 사용 요약:
SystemInfoMiddleware로before_model훅 구현. 첫 상호작용 시 fastfetch로 시스템 환경 정보 수집 후SystemMessage로 주입. 캐싱으로 중복 실행 방지, 3초 타임아웃 설정, 15줄 제한으로 토큰 최소화.
aayush-aryal/ai-stock-picker
- Stars: 2
- 링크: https://github.com/aayush-aryal/ai-stock-picker
- 레포 요약: AI 기반 주식 거래 및 예측 플랫폼. XGBoost, Bi-directional LSTM 활용 주식 예측과 LangChain RAG 시스템 통한 AI 주식 분석 어시스턴트 제공.
- 미들웨어 사용 요약:
@dynamic_prompt데코레이터로 RAG 시스템 구현.prompt_with_context미들웨어가 런타임 컨텍스트(source, ticker, year, quarter)를 기반으로 Chroma 벡터 스토어에서 뉴스 또는 실적 발표 데이터 검색 후 시스템 프롬프트에 동적 주입.
alpha-xone/langmiddle
- Stars: 7
- 링크: https://github.com/alpha-xone/langmiddle
- 레포 요약: LangGraph 에이전트를 위한 프로덕션급 미들웨어 라이브러리. SQLite, PostgreSQL, Supabase, Firebase 지원. 시맨틱 메모리, 자동 요약, 팩트 추출/검색 기능.
- 미들웨어 사용 요약:
ContextEngineer미들웨어로before_agent에서 관련 메모리(core facts + context facts) 주입 및 대화 요약,after_agent에서 팩트 추출 및 스토리지 저장.ChatSaver로 채팅 히스토리 영속화.ToolRemover로 도구 메시지 필터링. 2단계 배치 검색, 관련성 점수 시스템(최신성 40% + 접근빈도 30% + 사용피드백 30%), 적응형 팩트 포맷팅 구현.
bbence84/c64vibe
- Stars: N/A
- 링크: https://github.com/bbence84/c64vibe
- 레포 요약: AI로 Commodore 64 게임 생성하는 전문 에이전트. Chainlit 웹 인터페이스와 CLI 제공. C64 BASIC V2.0 코드 자동 생성, 구문 검사, 에뮬레이터 실행 지원.
- 미들웨어 사용 요약:
ChainlitMiddlewareTracer로wrap_tool훅 구현. 모든 도구 호출을 Chainlit UI에 Step으로 실시간 시각화. 도구별 입력/출력 포맷팅(BASIC 코드 구문 강조, 할일 목록 마크다운 테이블), Chainlit TaskList 컴포넌트로 인터랙티브 작업 목록 UI 제공.
crestalnetwork/intentkit
- Stars: 6,500
- 링크: https://github.com/crestalnetwork/intentkit
- 레포 요약: 블록체인 상호작용, 소셜 미디어 관리, 커스텀 스킬 통합 등 다양한 기능의 AI 에이전트 프레임워크. LangGraph 기반, 확장 가능한 스킬 시스템과 다중 에이전트 지원.
- 미들웨어 사용 요약: 4개 커스텀 미들웨어 구현.
TrimMessagesMiddleware(before_model)로 토큰 기반 메시지 트리밍.DynamicPromptMiddleware(wrap_model)로 에이전트/컨텍스트 기반 동적 시스템 프롬프트 생성.ToolBindingMiddleware(wrap_model)로 public/private 컨텍스트에 따른 도구 선택 및 프로바이더별 최적화.CreditCheckMiddleware(after_model)로 도구 호출 전 크레딧 잔액 검증 및 StreamWriter로 실시간 피드백.
eosho/langchain-barber-agent
- Stars: 6
- 링크: https://github.com/eosho/langchain-barber-agent
- 레포 요약: AI 구동 이발소 예약 시스템. 자연어 대화 인터페이스, FastAPI 백엔드, Human-in-the-Loop 승인 프로세스로 예약 생성/취소/수정 작업 수동 승인 요구.
- 미들웨어 사용 요약: 8개 커스텀 미들웨어 구현. 도메인별 미들웨어(
CustomerLookup,Booking,Availability,BarberInfo,ServiceCatalog)로wrap_model_call훅 사용해 시스템 프롬프트 동적 확장.BusinessRulesMiddleware(before_tool_call)로 예약 비즈니스 규칙(과거 날짜, 당일 예약 최소 통보, 영업시간 등) 검증.ConversationSummaryMiddleware(before_model)로 대화 이력 정리.UsageTrackingMiddleware(after_model)로 토큰 사용량 추적.
eosho/langchain_terminal_agent
- Stars: 3
- 링크: https://github.com/eosho/langchain_terminal_agent
- 레포 요약: Human-In-The-Loop 터미널 어시스턴트. Bash 및 PowerShell 명령 실행. 정책 기반 안전장치, 인간 감독, 지속적인 셸 세션 관리.
- 미들웨어 사용 요약:
ShellSessionMiddleware로before_agent에서 셸 프로세스 초기화,after_agent에서 세션 종료.ShellPolicyMiddleware(after_model)로 명령어 정책 검증(화이트리스트/블랙리스트, 샌드박스 제한, 길이 제한) 및 토큰 사용량 로깅.@hook_config(can_jump_to=["end"])로 정책 위반 시 에이전트 즉시 종료 가능.
midodimori/langrepl
- Stars: 153
- 링크: https://github.com/midodimori/langrepl
- 레포 요약: LLM 에이전트 구축/실행 대화형 터미널 CLI. Deep Agent 아키텍처, 멀티 프로바이더 LLM, 영구 대화 관리, MCP 서버 통합, 비용 추적.
- 미들웨어 사용 요약: 7개 커스텀 미들웨어.
TokenCostMiddleware(after_model)로 비용 계산.ApprovalMiddleware(wrap_tool)로 승인 모드별 자동 승인/거부 및 영구 규칙 저장.CompressToolOutputMiddleware(wrap_tool)로 대용량 출력 가상 파일시스템 저장.create_dynamic_prompt_middleware(@dynamic_prompt)로 런타임 템플릿 렌더링.PendingToolResultMiddleware(before_agent)로 중단된 도구 호출 복구.ReturnDirectMiddleware(before_model + @hook_config)로 조건부 에이전트 종료.SandboxMiddleware(wrap_tool)로 Bubblewrap 격리 실행.
letta-ai/learning-sdk
- Stars: 31
- 링크: https://github.com/letta-ai/learning-sdk
- 레포 요약: 한 줄 코드로 모든 LLM 에이전트에 지속적 학습과 장기 메모리 추가하는 Drop-in SDK. 세션 간 컨텍스트 기억으로 stateful 에이전트 구현.
- 미들웨어 사용 요약:
@wrap_model_call데코레이터로add_letta_memory미들웨어 구현. Letta의learning()컨텍스트 매니저로 모델 호출 래핑. LLM API 호출 인터셉트하여 관련 메모리 자동 주입, 대화 캡처 및 시맨틱 검색용 저장. 에이전트별 메모리 격리 지원.
mcp-use/mcp-use
- Stars: 8,815
- 링크: https://github.com/mcp-use/mcp-use
- 레포 요약: Model Context Protocol(MCP) 풀스택 프레임워크. Python/TypeScript 양쪽에서 6줄 코드로 MCP 서버, 클라이언트, AI 에이전트 구축. LangChain 1.0 통합, 관찰성, 스트리밍, 멀티 서버 지원.
- 미들웨어 사용 요약:
@wrap_tool_call데코레이터로tool_error_handler구현. 도구 실행 중 모든 예외(ValidationError, ConnectionError 등) 포착하여 에러 메시지를 LLM에게 반환. LLM이 올바른 입력으로 자동 재시도 가능.retry_on_error=True설정으로 조건부 활성화.
natefleming/dao-ai
- Stars: 11
- 링크: https://github.com/natefleming/dao-ai
- 레포 요약: YAML 기반 선언적 설정으로 멀티 에이전트 AI 시스템 구축/배포/관리하는 Infrastructure-as-Code 프레임워크. LangGraph 기반, Databricks 플랫폼 배포.
- 미들웨어 사용 요약: DSPy 영감 받은
AssertMiddleware,SuggestMiddleware,RefineMiddleware(after_model)로 응답 검증/재시도/반복 개선.GuardrailMiddleware(after_model)로 LLM 기반 응답 평가.ContentFilterMiddleware(before_agent + after_model)로 금지 키워드 차단.SafetyGuardrailMiddleware(after_agent)로 최종 응답 안전성 평가. 다양한 검증 미들웨어(UserIdValidation,ThreadIdValidation,CustomFieldValidation)와@dynamic_prompt로 동적 프롬프트 생성.
Chen-zexi/open-ptc-agent
- Stars: 620
- 링크: https://github.com/Chen-zexi/open-ptc-agent
- 레포 요약: Anthropic의 Programmatic Tool Calling(PTC) 패러다임 구현. 코드 실행으로 도구 호출하여 컨텍스트 윈도우 85-98% 감소. Daytona 샌드박스, MCP 서버 통합.
- 미들웨어 사용 요약:
PlanModeMiddleware로submit_plan도구 제공하여 2단계(계획-실행) 워크플로우 구현.ViewImageMiddleware(wrap_tool)로 이미지를 HumanMessage 콘텐츠 블록으로 변환하여 비전 모델 지원.BackgroundSubagentMiddleware(wrap_tool + after_agent)로 서브에이전트 백그라운드 비동기 실행 및 “waiting room” 패턴으로 결과 수집.ToolCallCounterMiddleware로 서브에이전트 도구 호출 메트릭 추적.
openchoreo/openchoreo
- Stars: 586
- 링크: https://github.com/openchoreo/openchoreo
- 레포 요약: Kubernetes 내부 개발자 플랫폼(IDP). Backstage 기반 개발자 포털, 애플리케이션 CI/CD, GitOps, 관찰성 제공. CNCF 프로젝트 모듈화 프레임워크.
- 미들웨어 사용 요약: RCA(Root Cause Analysis) 에이전트에 3개 미들웨어 적용.
LoggingMiddleware(wrap_model)로 디버그 모드에서 전체 메시지 흐름 파일 로깅.TimingMiddleware(wrap_model + wrap_tool)로 모델/도구 호출 실행 시간 측정.OutputProcessorMiddleware(wrap_tool)로 관찰성 도구(로그, 메트릭, 트레이스)의 JSON 응답을 마크다운으로 변환, 메트릭 통계 분석 및 이상 탐지 수행.
srtab/daiv
- Stars: 16
- 링크: https://github.com/srtab/daiv
- 레포 요약: GitLab/GitHub 통합 오픈소스 자동화 AI 어시스턴트. 이슈 자동 처리, 코드 리뷰 지원, 코드베이스 채팅. LangChain + LangGraph 기반 AI 에이전트 시스템.
- 미들웨어 사용 요약: 9개 이상 미들웨어로 모듈화된 에이전트 구축.
InjectImagesMiddleware(before_agent)로 마크다운/HTML 이미지 추출 및 멀티모달 콘텐츠 블록 변환.AgentsMDMiddleware(before_agent)로 프로젝트별 AGENTS.md 지침 주입.AnthropicPromptCachingMiddleware(wrap_model)로 OpenRouter Anthropic 모델 캐싱 지원.FileNavigationMiddleware,FileEditingMiddleware,SandboxMiddleware,WebSearchMiddleware,MergeRequestMiddleware등으로 도구 그룹화 및 시스템 프롬프트 확장.SkillsMiddleware로 점진적 공개 방식 스킬 제공.PlanMiddleware와ExecutorMiddleware로 Plan-and-Execute 패턴 구현.
starpig1129/ai-discord-bot-PigPig
- Stars: 47
- 링크: https://github.com/starpig1129/ai-discord-bot-PigPig
- 레포 요약: LLM 기반 멀티모달 Discord 봇. 자연어 이해/생성, 비주얼 Q&A, AI 이미지 생성, 음악 재생, 지능형 채널 메모리, 자동 업데이트 시스템.
- 미들웨어 사용 요약:
DirectToolOutputMiddleware로after_tools훅 구현.@hook_config(can_jump_to=["end"])로 도구 실행 후 즉시 에이전트 종료. 2단계 에이전트(info_agent -> message_agent) 아키텍처에서 info_agent가 정보 수집만 수행하고 추가 모델 호출 없이 결과 반환하도록 보장.
xerrors/Yuxi-Know
- Stars: 3,730
- 링크: https://github.com/xerrors/Yuxi-Know
- 레포 요약: LangGraph v1 + Vue.js + FastAPI + LightRAG 기반 RAG 지식 베이스와 지식 그래프 융합 인텔리전트 에이전트 플랫폼. 전체 에이전트 개발 도구 키트 제공.
- 미들웨어 사용 요약: 4개 커스텀 미들웨어.
AttachmentMiddleware(wrap_model)로 첨부 파일(PDF, 이미지) 컨텍스트 자동 주입.context_aware_prompt(@dynamic_prompt)로 런타임 컨텍스트에서 동적 시스템 프롬프트 생성.context_based_model(@wrap_model_call)로 런타임에 모델 동적 선택.DynamicToolMiddleware(wrap_model)로 MCP 도구 포함 런타임 도구 동적 선택 및 사전 로드.
결론 및 인사이트
핵심 발견사항
-
wrap_model이 가장 인기 있는 Hook: 20개 프로젝트 중 15개(75%)가 동적 시스템 프롬프트 주입에 사용
-
에러 처리와 복원력이 중요: 도구 에러 자동 처리, 재시도 로직, 중단된 작업 복구 등 안정성 관련 미들웨어 다수
-
2단계/다중 에이전트 패턴 증가: 계획-실행, 정보수집-응답생성, 메인-서브에이전트 등 복잡한 워크플로우 구현에 미들웨어 활용
-
관찰성과 디버깅 중시: 로깅, 타이밍, 비용 추적, 실시간 UI 스트리밍 등 운영/디버깅 미들웨어 다수
-
보안과 승인 플로우: Human-in-the-Loop, 정책 기반 명령어 검증, 샌드박스 실행 등 안전한 에이전트 운영 패턴
권장 활용 사례
| 요구사항 | 권장 미들웨어 패턴 |
|---|---|
| 동적 컨텍스트 주입 | @dynamic_prompt 또는 wrap_model |
| 도구 에러 복원력 | wrap_tool + 예외 처리 |
| 토큰 최적화 | before_model + 메시지 트리밍/요약 |
| 비용 모니터링 | after_model + usage_metadata 추적 |
| 사용자 승인 | wrap_tool + interrupt 또는 HITL |
| 리소스 관리 | before_agent 초기화 + after_agent 정리 |
| 응답 품질 검증 | after_model + LLM 판사 또는 규칙 기반 검증 |
Generated by LangChain Middleware Analyzer - 2025