전체 글
-
이코에코(Eco²) Clean Architecture #14: Stateless Reducer Pattern + 체크포인팅이코에코(Eco²)/Clean Architecture Migration 2026. 1. 6. 01:12
작성일: 2026-01-06참조: Stateless Reducer Pattern 이론1. 도입 배경1.1 기존 파이프라인의 문제Scan Worker의 4단계 파이프라인(Vision → Rule → Answer → Reward)은 Celery Chain으로 구현되어 있었다. 각 Task가 직접 이벤트를 발행하고, 에러를 처리하고, 다음 Task로 데이터를 전달했다.# 기존 방식 (문제점)@celery_app.taskdef vision_task(task_id, image_url, ...): try: publish_event("vision", "started") # Side effect 1 result = openai.chat.completions.create(...) # 외..
-
이코에코(Eco²) Clean Architecture #13: Scan Worker 마이그레이션 로드맵이코에코(Eco²)/Clean Architecture Migration 2026. 1. 5. 19:07
작성일: 2026-01-05상태: Implemented1. 마이그레이션 배경1.1 기존 구조의 한계domains/scan과 domains/_shared/waste_pipeline은 빠른 프로토타이핑에 적합했으나, 시스템이 성장하면서 다음과 같은 문제가 드러났다.레이어 경계가 모호했다. Vision API 호출, 프롬프트 로딩, 파이프라인 조합이 모두 한 디렉토리에 뒤섞여 있어 모델 확장이 어려웠다. OpenAI만 사용하던 초기와 달리, Gemini 등 멀티모델을 지원해 보다 에이전틱스럽게 작동하길 바랐다.1.2 마이그레이션 목표Clean Architecture 적용Application/Infrastructure 레이어 분리LLM DI모델명 기반 런타임 어댑터 선택Stateless ReducerStep을 ..
-
ADR: LLM-based Agent 파이프라인이코에코(Eco²)/Agent 2026. 1. 5. 16:45
작성일: 2026-01-05작성자: AI Assistant (Claude Opus 4.5)상태: Draft관련 서비스: scan, scan-worker, chat, chat-worker📋 Executive Summary본 리포트는 Eco² 백엔드의 LLM 파이프라인 아키텍처에 대한 기술적 의사결정을 문서화합니다.Scan 파이프라인: LangGraph 미도입, Stateless Reducer 패턴 적용Chat 파이프라인: LangGraph 도입으로 분기 로직 구현공통: LangChain 기반 DI(Dependency Injection)로 LLM 클라이언트 추상화1. Scan 파이프라인: LangGraph 미도입 결정1.1 현재 구조 분석┌─────────────────────────────────────..
-
Stateless Reducer Pattern for AI AgentsKnowledge Base/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, 오케스트레이션, 비동기 태스크Knowledge Base/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 LLMKnowledge Base/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 PatternKnowledge Base/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..