# AI Agent System

포트폴리오 공개용 요약 자료입니다. 실제 `.env`, 토큰, DB 파일, PDF 산출물은 포함하지 않았습니다.

## Analysis View

- Problem: 회의록, 일정, 업무 진행 상황이 흩어져 프로젝트 상태와 리스크를 빠르게 판단하기 어려웠습니다.
- Data: 회의 내용, Action Item, 마감일, 담당자, 진행률, 팀원별 작업 기록을 분석 단위로 정리했습니다.
- Metrics: 마감 임박 일정, 업무 진행률, 팀원별 기여도, 리스크 신호, 최종 보고서 항목을 산출했습니다.
- Action: Python Agent가 데이터를 정리하고 Markdown 리포트와 Discord 응답으로 자동 생성하도록 구성했습니다.
- Result: 프로젝트 상태를 하나의 Markdown 보고서로 자동 생성해 팀 진행 상황을 빠르게 확인할 수 있게 했습니다.

## Key Numbers

- 5 analysis outputs: 회의 요약, Action Item, 일정 알림, 기여도 분석, 리스크 감지
- 3 reminder rules: D-7, D-3, D-1
- 1 final Markdown report flow

## Source Repository

실제 공개 가능한 AI Agent 코드는 별도 저장소에서 확인할 수 있습니다.

https://github.com/nadanaya/ai-agent

포트폴리오 저장소에는 프로젝트 소개와 기여 내용을 정리하고, 실제 코드 저장소는 위 링크로 분리했습니다.

## Project Type

Team Project

## Project Period

2026.02 ~ 2026.09

## My Contribution

- 담당: Python 기반 AI Agent 분석 로직 구현
- 담당: Supabase(PostgreSQL) 데이터 저장 구조 및 SQL 스키마 구성
- 담당: Discord Bot 명령과 Agent 실행 흐름 연동
- 담당: 프로젝트 종료 리포트 생성 기능 구현 및 테스트
- LLM 응답 결과를 Markdown 보고서로 정리하는 흐름 구현

## Main Features

- 회의 내용 요약 및 Action Item 추출
- D-7·D-3·D-1 일정 알림
- 업무 진행률과 팀원 기여도 분석
- 리스크 감지 및 프로젝트 종료 리포트 생성
- LLM 호출 실패 시 대체 응답 처리
- Discord Bot 기반 명령 흐름

## Tech Stack

- Python
- LangGraph
- LLM
- PostgreSQL / Supabase
- Discord Bot
- Markdown report generation

## Public Code Structure

`nadanaya/ai-agent` 저장소의 주요 구조입니다.

```text
ai_agent/
  _core/       scoring and analysis logic
  _graph/      workflow and graph nodes
  _services/   database, LLM, PDF, project-data services
  _discord/    Discord bot entry points
  _cli/        local preview command
data/          sample project payloads
sql/           Supabase schema and seed scripts
tests/         pytest tests
```

## Agent Flow

### Public Workflow

![AI Agent public workflow](public-agent-workflow.svg)

```mermaid
flowchart TD
    Input[회의록 / 프로젝트 데이터] --> Parser[데이터 정리]
    Parser --> Graph[LangGraph Workflow]
    Graph --> Summary[회의 요약]
    Graph --> Action[Action Item 추출]
    Graph --> Schedule[일정 알림 판단]
    Graph --> Score[진행률 / 기여도 분석]
    Graph --> Risk[리스크 감지]
    Summary --> Report[최종 보고서]
    Action --> Report
    Schedule --> Report
    Score --> Report
    Risk --> Report
    Report --> Discord[Discord Bot 응답]
    Report --> DB[(PostgreSQL / Supabase)]
```

## Failure Handling

```mermaid
flowchart LR
    LLM[LLM 호출] --> Success{성공 여부}
    Success -->|성공| Result[요약 / 분석 결과 생성]
    Success -->|실패| Fallback[대체 응답 생성]
    Fallback --> Log[오류 상태 기록]
    Log --> User[사용자에게 안내 메시지 반환]
```

## Troubleshooting

### LLM 호출 실패 시 Bot 흐름이 끊기는 문제

LLM 응답 실패나 토큰 설정 오류가 발생해도 Discord Bot 명령 흐름이 중단되지 않도록 대체 응답을 반환하는 fallback 처리를 구성했습니다. 사용자는 실패 원인을 안내받고, 시스템은 오류 상태를 기록한 뒤 다음 명령을 받을 수 있는 상태를 유지하도록 했습니다.

### 분석 결과를 보고서 형태로 정리하는 문제

회의 요약, Action Item, 일정 알림, 기여도 분석 결과가 각각 다른 형태로 생성되기 때문에 최종 출력이 흩어질 수 있었습니다. 분석 결과를 Markdown 섹션 단위로 조립해 Discord 응답과 보고서 산출물이 같은 구조를 갖도록 정리했습니다.

## Security Note

민감 정보 보호를 위해 아래 항목은 공개 저장소에 업로드하지 않았습니다.

- `.env`
- API key / token
- DB 파일
- audit archive PDF
- 가상환경 폴더
