Skip to content

bongbak/schedule_manager_app

Repository files navigation

Wrtn의 Agentica를 이용한 자영업자를 위한 스케줄, 급여 관리 Agent

이 프로젝트는 단순한 스케줄 관리 도구를 넘어, Agentica(AI 에이전트)를 통해 사용자의 자연어 요청을 실시간으로 이해하고, 복잡한 스케줄 관리 작업을 자동으로 처리하는 지능형 어시스턴트 애플리케이션입니다. 사용자는 더 이상 버튼을 찾고 폼을 채우는 대신, 채팅 하나만으로 모든 것을 해결할 수 있습니다.

프로젝트 목적

기존의 스케줄 관리 앱은 사용자가 직접 메뉴를 탐색하고, 폼을 찾아 정보를 입력해야 하는 번거로움이 있었습니다. 이 프로젝트의 목적은 이러한 과정을 완전히 제거하고, 사용자가 가장 직관적인 방식인 '대화'를 통해 스케줄을 관리할 수 있는 혁신적인 사용자 경험을 제공하는 것입니다.

Agentica는 사용자의 요청을 단순 처리하는 것을 넘어, 문맥을 파악하고 필요한 작업을 스스로 판단하여 실행하는 진정한 의미의 '비서' 역할을 수행합니다.

Agentica 작동 원리

이 프로젝트의 핵심은 agent-server.js에 구현된 AI 에이전트입니다. 이 에이전트는 OpenAI의 gpt-4o-mini 모델Function Calling 기술을 기반으로 다음과 같은 정교한 흐름을 통해 사용자의 요청을 처리합니다.

  1. 자연어 입력 (User -> App)

    "내일 오후 3시부터 6시까지 근무하는거 다른 날로 바꿔줘"

  2. API 요청 (App -> Agent Server)

    • 클라이언트는 사용자 메시지를 그대로 API 서버(/api/chat)로 전송합니다.
  3. 의도 분석 및 정보 추출 (Agent Server -> OpenAI)

    • 서버는 AI 모델에게 사용자 메시지와 함께, 사전에 정의된 시스템 프롬프트(System Prompt)를 전달합니다. 이 프롬프트는 AI에게 명확한 역할과 규칙을 부여합니다.
      • 역할 부여: "너는 스케줄 관리 비서 'Agentica'야."
      • 사용자 인지: "현재 대화 중인 사용자는 '직원1'(ID: 1)이야."
      • 기능 정의 (Function Calling): "사용자가 '근무 교환'을 원하면, create_timeswap이라는 정해진 JSON 형식으로 응답해. 이때, 문장에서 날짜와 시간을 정확히 추출해야 해."
  4. 구조화된 데이터 반환 (OpenAI -> Agent Server)

    • AI는 자연어 문장을 분석하여, 지시받은 JSON 형식으로 핵심 정보를 구조화하여 반환합니다.
    {
      "function": "create_timeswap",
      "parameters": {
        "date": "2025/08/22",
        "time": "15:00-18:00",
        "body": "오후 3시부터 6시까지 근무 교환 요청"
      }
    }
  5. 기능 실행 (Agent Server)

    • 서버는 AI가 반환한 JSON을 해석하여 create_timeswap 함수를 실행하고, 추출된 파라미터를 사용하여 실제 TimeSwap 게시글을 데이터베이스에 저장합니다.
  6. 최종 피드백 (Agent Server -> App -> User)

    • 서버는 "✅ 직원1님의 요청에 따라, 2025/08/22 (15:00-18:00) 근무 교환 요청을 등록했습니다." 와 같은 최종 확인 메시지를 클라이언트에 전달하고, 사용자는 채팅창에서 결과를 확인합니다.

기대 결과

  • 업무 효율성 극대화: 사용자는 여러 화면을 이동하고 폼을 작성하는 데 시간을 낭비하는 대신, 채팅창에 원하는 바를 입력하는 것만으로 스케줄 관련 업무를 즉시 처리할 수 있습니다.
  • 사용자 경험 혁신: 복잡한 기능 학습 과정 없이, 누구나 마치 사람과 대화하듯 자연스럽게 앱의 모든 기능을 활용할 수 있습니다.
  • 오류 감소: AI가 정해진 형식에 맞춰 데이터를 처리하므로, 사용자의 입력 실수로 인한 데이터 오류 발생 가능성이 현저히 줄어듭니다.
  • 확장 가능한 플랫폼: 현재는 스케줄 관리에 집중되어 있지만, Agentica의 Function Calling 구조는 향후 급여 정산, 보고서 생성 등 더 복잡하고 다양한 업무 자동화 기능으로 쉽게 확장될 수 있는 기반을 제공합니다.

🛠️ 기술 스택

  • Frontend: HTML, CSS, JavaScript (Vanila JS)
  • Backend: Node.js, Express.js
  • AI: OpenAI API (gpt-4o-mini), Function Calling
  • Database: MySQL (현재는 메모리 내 배열로 임시 구현)

🏁 시작하기

  1. 저장소 복제

    git clone <repository-url>
    cd schedule_manager_app-2
  2. 필요한 패키지 설치

    npm install
  3. 환경 변수 설정

    • 프로젝트 루트에 .env 파일을 생성하고, 파일 내에 OpenAI API 키를 추가합니다.
      # .env
      OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
      
  4. 서버 실행

    node agent-server.js
  5. 애플리케이션 접속 * 웹 브라우저에서 index.html 파일을 열어 애플리케이션을 시작합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •