checkpointer
-
ADR: Checkpointer PostgresSaver를 Redis Primary + PostgreSQL Async Sync로 전환이코에코(Eco²)/Agent 2026. 1. 24. 05:37
Status: AcceptedDate: 2026-01-24Deciders: mangoScope: apps/chat_worker checkpointing 아키텍처 1. 문제 발생증상프로덕션에서 psycopg_pool.PoolTimeout 에러가 간헐적으로 발생하는 것이 관측됐습니다.적은 요청량에도 postgres max_connection_pool이 빠르게 소진됐습니다.psycopg_pool.PoolTimeout: couldn't get a connection after 30.0 sec영향 LangGraph ainvoke() 실패 → 사용자 응답 불가 Retry 시에도 pool 포화 상태 지속 → 연쇄 실패 Worker pod restart까지 복구 불가 2. 원인 분석2.1 직접 원인: Pool 포..
-
이코에코(Eco²) Agent: Multi-turn 대화 E2E 검증 완료이코에코(Eco²)/Agent 2026. 1. 19. 11:29
검증 일시: 2026-01-19 03:05 UTC검증 환경: k8s-master (13.209.44.249)관련 PR: #434 (fix: use redis_streams for ProgressNotifier and DomainEventBus)검증 결과: ✅ PASS1. 검증 개요1.1 검증 목적LangGraph 체크포인터(PostgreSQL + Redis Cache-Aside)를 통한 멀티턴 대화 상태 영속화 및 맥락 유지 검증.1.2 핵심 검증 항목항목설명결과세션 상태 영속화동일 session_id로 여러 메시지 처리 시 상태 유지✅ Pass체크포인트 누적turn마다 step이 연속적으로 증가✅ Passintent_history 누적이전 대화의 intent가 히스토리에 누적✅ Pass맥락 유지이전 턴..
-
이코에코(Eco²) Agent PostgreSQL 메시지 영속화 실패이코에코(Eco²)/Troubleshooting 2026. 1. 19. 06:33
Date: 2026-01-19Status: OpenSeverity: HighAffected: chat.messages 테이블 (0건)1. 증상항목상태chat.conversations26건 (정상)chat.messages0건 (비정상) 대화 세션은 생성되지만 메시지 내용이 PostgreSQL에 저장되지 않음.2. 원인 분석2.1 아키텍처 개요2.2 근본 원인 (2가지)#원인위치영향1CachedPostgresSaver 초기화 실패checkpointer.py:228체크포인트 PostgreSQL 저장 불가2ChatPersistenceConsumer 미배포workloads/메시지 PostgreSQL 저장 불가3. Issue 1: CachedPostgresSaver 초기화 실패3.1 로그 증거[2026-01-18 ..
-
이코에코(Eco²) Agent #5: Checkpointer & State이코에코(Eco²)/Agent 2026. 1. 13. 20:34
Scan의 Stateless Reducer vs Chat의 Cache-Aside Checkpointer업데이트: Cache-Aside 패턴 적용으로 Hot session은 Redis에서 응답 Agent #4에서 Event Relay 계층을 다뤘습니다. 이번 포스팅에서는 멀티턴 대화 컨텍스트를 유지하는 Checkpointer 구현을 다룹니다.Scan vs Chat: 상태 관리의 차이Scan: Stateless Reducer PatternClean Architecture #14에서 Scan은 Stateless Reducer Pattern으로 체크포인팅을 직접 구현했습니다.┌─────────────────────────────────────────────────────────────┐│ ..