Skip to content

[Agent] Graph Agent 커넥션 문제 및 일부 도구 트러블슈팅 + 비동기 호출 API 추가#124

Merged
Coldot merged 15 commits intodevelopfrom
feat/123
Sep 18, 2025
Merged

[Agent] Graph Agent 커넥션 문제 및 일부 도구 트러블슈팅 + 비동기 호출 API 추가#124
Coldot merged 15 commits intodevelopfrom
feat/123

Conversation

@Coldot
Copy link
Contributor

@Coldot Coldot commented Sep 18, 2025

Coldot and others added 15 commits September 19, 2025 01:13
- 설정에서 필요한 값들을 추출하여 코드 가독성 향상
- 그래프 가져오기 및 검증 로직 추가로 안정성 강화
- 디버깅을 위한 로그 제거로 코드 간결화
- 그래프 업데이트 시 ID와 데이터 검증 로직 추가
PyMySQL 패킷 시퀀스 오류 해결을 위한 근본적 구조 개선:

**독립 세션 패턴 적용:**
- get_card_info.py: 독립적인 DB 세션과 서비스 인스턴스 생성
- delete_card.py: 원자적 삭제 작업에 스레드별 세션 격리 적용
- create_new_card.py: 카드 생성 시 독립 세션 사용으로 동시성 충돌 방지

**데이터베이스 연결 풀 최적화:**
- database.py: 멀티스레드 환경 최적화된 연결 풀 설정
- pool_reset_on_return='commit': 연결 반환 시 상태 초기화
- 감소된 pool_size와 타임아웃으로 스레드 충돌 최소화

**에러 핸들링 강화:**
- 포괄적인 연결 오류 감지 및 처리
- CardRepository, SpaceRepository에 eager loading 적용
- DetachedInstanceError 방지를 위한 joinedload 추가

**서비스 라이프사이클 개선:**
- dependencies.py: 조기 세션 종료 제거
- 각 도구별 독립적인 서비스 인스턴스 생성 패턴
- try-finally 블록으로 안전한 세션 정리

이 변경으로 LangGraph 멀티스레드 환경에서 발생하던
"Packet sequence number wrong" 오류가 근본적으로 해결됩니다.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
PyMySQL 멀티스레딩 환경에서 발생하던 "Packet sequence number wrong"
오류를 근본적으로 해결하기 위한 graph 도구들 독립 세션 구조 완성:

**GraphRepository 강화:**
- 모든 데이터베이스 메서드에 connection error 핸들링 추가
- packet sequence, concurrent operations 등 포괄적 오류 감지
- rollback 실패에 안전한 예외 처리 구조

**Graph 도구들 독립 세션 패턴 적용:**
- create_new_group.py: 그룹 생성 시 독립 GraphService 사용
- relocate_card.py: 카드 이동 시 스레드별 세션 격리
- relocate_group.py: 그룹 이동 로직 개선 및 독립 세션 적용

**코드 품질 개선:**
- relocate_group.py 레거시 코드 현대화
- 일관된 error handling 및 session cleanup 패턴
- deepcopy를 통한 데이터 불변성 보장

이제 LangGraph의 동시 도구 실행에서 IPC 그룹 생성 및
카드 이동 작업이 멀티스레딩 충돌 없이 안정적으로 실행됩니다.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- get_by_id 및 get_cardlinks_by_card 메서드의 연결 오류 처리 로직에 대한 테스트 강화
- 연결 오류 발생 시 예외 메시지 검증 로직 추가
- Mock 객체를 활용하여 테스트의 일관성 및 가독성 향상
- 연결 오류 시 재시도 로직에 대한 검증 포함
- delete_card 도구의 원자적 삭제 성공 및 실패 시나리오에 대한 테스트 강화
- Mock 객체를 활용하여 CardService의 인스턴스를 모킹하고, 삭제 호출을 추적하는 로직 추가
- 원자적 삭제 실패 시 예외 처리 및 상태 검증 로직 개선
- CardService 인스턴스를 모킹하여 원자적 삭제 성공 및 실패 시나리오에 대한 테스트 로직 개선
- 각 테스트에서 mock_card_service를 모킹하여 삭제 호출을 추적하고, 올바른 파라미터가 전달되는지 검증
- 코드 가독성을 높이기 위해 중복된 코드 제거 및 주석 추가
- CardService 인스턴스를 모킹하여 각 테스트에서 삭제 호출을 추적하고, 올바른 파라미터가 전달되는지 검증
- 사용되지 않는 card_service 인스턴스를 None으로 설정하여 코드 가독성 향상
- 중복된 코드 제거 및 주석 추가로 테스트의 명확성 강화
- CardService 인스턴스를 모킹하여 각 테스트에서 삭제 호출을 추적하고, 올바른 파라미터가 전달되는지 검증
- 사용되지 않는 card_service 인스턴스를 None으로 설정하여 코드 가독성 향상
- 중복된 코드 제거 및 주석 추가로 테스트의 명확성 강화
- 그래프 데이터 접근 시 .data 속성 제거로 코드 간결화
- 테스트의 가독성을 높이기 위해 중복된 코드 정리
- 서버, 네트워크, 보안 그룹 삭제 확인 로직 개선
- 설정에서 필요한 값들을 한 번에 추출하여 코드 가독성 향상
- 독립적인 서비스 인스턴스 생성을 위한 코드 간소화
- 그래프 검증 로직의 안정성 강화
- 비동기적으로 그래프 에이전트를 호출하는 async_invoke 메서드 추가
- 세션 상태를 조회하는 get_session_status 메서드 구현
- Redis 캐시를 활용하여 세션 상태 관리 및 로깅 기능 추가
- 코드 가독성을 높이기 위해 디버깅 로그 함수 _debug_log 추가
- 비동기 호출 요청 및 응답을 위한 GraphAgentAsyncInvokeRequest 및 GraphAgentAsyncInvokeResponse 클래스 추가
- 세션 메시지 및 응답을 위한 GraphAgentSessionMessage 및 GraphAgentSessionResponse 클래스 추가
- 코드 가독성을 높이기 위해 Pydantic의 Field 사용 및 주석 추가
- 그래프 에이전트를 비동기적으로 호출하는 async_invoke_graph_agent 메서드 추가
- 세션 상태를 조회하는 get_graph_agent_session 메서드 구현
- GraphAgentAsyncInvokeRequest, GraphAgentAsyncInvokeResponse, GraphAgentSessionResponse 스키마를 사용하여 요청 및 응답 처리
- 코드 가독성을 높이기 위해 주석 추가 및 구조 정리
- graph_id 및 space_id가 문자열인 경우 UUID로 변환하는 로직 추가
- 코드 가독성을 높이기 위해 각 메서드에 주석 추가
- 그래프 에이전트 서비스에 Redis 캐시 서비스 의존성을 추가하여 캐시 기능 강화
- 코드 가독성을 높이기 위해 주석 추가 및 불필요한 임포트 제거
@Coldot Coldot self-assigned this Sep 18, 2025
@Coldot Coldot changed the title [Agent] Graph Agent 커넥션 문제 및 일부 도구 트러블슈팅 + 비동기 호출 API 추가 [Agent] Graph Agent 커넥션 문제 및 일부 도구 트러블슈팅 + 비동기 호출 API 추가 Sep 18, 2025
@Coldot Coldot merged commit fa97559 into develop Sep 18, 2025
1 check passed
@Coldot Coldot deleted the feat/123 branch September 18, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Agent] Graph Agent 커넥션 문제 및 일부 도구 트러블슈팅 + 비동기 호출 API 추가

1 participant