전체 글
-
Stateless Reducer Pattern for AI Agents이코에코(Eco²) 제작 문서 및 리포트/Applied 2026. 1. 5. 07:21
"Make your agent a stateless reducer"에이전트를 상태를 직접 관리하지 않는 순수 함수로 설계하여 테스트 용이성, 재현성, 확장성을 확보하는 패턴1. 개요1.1 전통적인 Stateful Agent의 문제점# ❌ Anti-pattern: Stateful Agentclass StatefulAgent: def __init__(self): self.messages = [] # 내부 상태 self.current_step = "start" # 내부 상태 self.results = {} # 내부 상태 self.llm = OpenAI() def run(self, user_input: str):..
-
LangGraph : 상태관리, SSE, 오케스트레이션, 비동기 태스크이코에코(Eco²) 제작 문서 및 리포트/Applied 2026. 1. 5. 06:50
LangGraph의 핵심 기능을 심층 분석하고, 기존 인프라(Redis Streams, RabbitMQ, SSE Gateway)와의 호환성을 검토합니다.참고: LangGraph 공식 문서, LangGraph Concepts목차LangGraph 개요상태 관리 (State Management)그래프 오케스트레이션 (Graph Orchestration)스트리밍 (Streaming & SSE)비동기 태스크 (Async Tasks)체크포인트 & 지속성 (Persistence)Human-in-the-Loop기존 인프라와의 호환성 분석1. LangGraph 개요1.1 LangGraph란?LangGraph는 LangChain 팀이 개발한 상태 기반 멀티액터 오케스트레이션 프레임워크입니다.에이전트 워크플로우를 Direc..
-
Dependency Injection for LLM이코에코(Eco²) 제작 문서 및 리포트/Applied 2026. 1. 5. 06:31
LLM 모델을 함수의 파라미터로 전달하여 에이전트 로직과 모델 선택을 분리하는 설계 패턴용어 정의⚠️ Note: 이 문서에서 설명하는 패턴은 공식적인 명칭이 없습니다.기존 소프트웨어 설계 패턴(Dependency Injection, Strategy Pattern)을 LLM 컨텍스트에 적용한 것입니다. 이 패턴을 설명하는 다양한 표현Dependency Injection for LLM - DI 패턴의 LLM 적용Strategy Pattern for Model Selection - 전략 패턴 관점Provider Abstraction - 프로바이더 추상화Pluggable LLM Backend - 교체 가능한 LLM 백엔드Model as Configuration - 모델을 설정으로 취급실제 구현 사례Cursor ..
-
LLM Gateway & Unified Interface Pattern이코에코(Eco²) 제작 문서 및 리포트/Applied 2026. 1. 5. 06:16
AI 에이전트 시스템에서 LLM 모델 선택을 에이전트 로직과 분리하는 아키텍처 패턴용어 정의⚠️ Note: 이 문서에서 다루는 개념들은 업계에서 다양한 명칭으로 불립니다.공식적으로 통일된 명칭은 없으며, 아래와 같은 용어들이 실제로 사용됩니다.실제 사용 용어사용처설명LLM Gateway / AI GatewayCloudflare, Kong, AWSLLM 요청을 중앙에서 관리하는 게이트웨이LLM Router당근, Martian모델별로 요청을 라우팅하는 컴포넌트Unified LLM InterfaceLiteLLM, OpenRouter여러 Provider를 하나의 API로 통합Multi-Provider SupportLangChain, LiteLLM다중 LLM Provider 지원Model Abstraction L..
-
이코에코(Eco²) Clean Architecture #12: Locaton 도메인 마이그레이션이코에코(Eco²)/Clean Architecture Migration 2026. 1. 5. 02:10
domains/location Layered → apps/location Clean Architecture 전환AI Assistant: Claude Opus 4.5 (Anthropic)작업 일자: 2026-01-051. 마이그레이션 배경1.1 기존 구조 (domains/location)domains/location/├── api/v1/endpoints/│ ├── location.py # HTTP 엔드포인트│ └── metrics.py├── services/│ ├── location.py # ~300줄, 조회 + 변환 + 정책│ ├── category_classifier.py│ └── zoom_policy.py├── repositories/│ └── n..
-
이코에코(Eco²) Clean Architecture #11: Character 도메인 마이그레이션이코에코(Eco²)/Clean Architecture Migration 2026. 1. 4. 20:08
Character 도메인에 Clean Architecture를 적용하고, 로컬 인메모리 캐시 레이어를 통합한 과정을 기록합니다.AI Assistant: Claude Opus 4.5 (Anthropic)작업 일자: 2026-01-041. 마이그레이션 배경1.1 기존 구조 (domains/character)domains/character/├── api/v1/endpoints/│ ├── catalog.py # HTTP 엔드포인트│ └── internal_reward.py├── services/│ ├── character_service.py # ~400줄, 조회 + 캐시 + 매칭│ └── reward_evaluator.py├── repositories/│ └── charact..
-
Clean Architecture Character 다듬으며 잡담잡담 2026. 1. 4. 15:37
Clean Architecture 마이그레이션으로 서버 코드를 다듬으며 디톡스 중이다.Auth, Users 서버를 작업하며 생긴 마이그레이션 절차와 오류사항들을 기반으로 Character 도메인에 적용시키고 있다.요즘 작업을 하면 스토리지, 네트워크 팀에 합류하려고 캐치업했던 때가 자주 생각난다.매팀을 3개월씩 오가며 1-2주 캐치업, 2개월 서버 피쳐 개발을 하면서 타지에서 방 한 칸 잡겠다고 이리저리 다니고 그랬다.4.95평 크기의 전세가 2억 100만원이었지만 이미 수습까지 끝났고, 정규직으로 전환이 된 상태여서 '이제 회사에서 2-3년 이상은 다닐테니 이정도 투자는 괜찮겠지.'라 생각한 다음 잡은 방이었다.그런데 세팀을 오감에도 합류하지 못하게 되고, 마지막 팀에선 감정소모까지 있었던 지라 퇴사 ..
-
FastAPI Lifespan: 애플리케이션 생명주기 관리Python 2026. 1. 4. 04:13
1. Context ManagerFastAPI Lifespan을 이해하기 위해서는 먼저 Python의 Context Manager 패턴을 이해해야 합니다.1.1 with 문과 Context Manager# 파일 처리 - 가장 흔한 Context Manager 사용 예with open("file.txt", "r") as f: content = f.read()# 여기서 파일이 자동으로 닫힘with 문이 하는 일:1. 진입: __enter__() 호출 → 리소스 획득2. 본문: 블록 내 코드 실행3. 퇴장: __exit__() 호출 → 리소스 해제 (예외 발생해도 실행)1.2 Context Manager 프로토콜Context Manager는 두 개의 메서드로 정의됩니다:class FileManager: ..