OpenAI Agent Builder 유종의 미 거두기..

소개

시간이 없어, 전체적인 내용이 부실함(미완성)을 인지하시고, 봐 주세요..ㅠㅠ

OpenAI Agent Builder 위젯이 잘 안되는 현상을 겪고 포기하려다,
마지막(?)으로 한 번 더 해 보자라는 심정으로 간단한 시나리오를 구상하고 다시 시도해 보았습니다.

오전에는 widget이 안되는 현상이 여전히 발생해서, 포기할까 하다가,
오후에 댕댕이멍멍님께서 이전 실패 사례글에 댓글 달아주셔서다시 한 번 도전..
앗 이제 위젯이 붙기는 합니다.
근데, preview 상태에서 chat 날리면, 아무런 동작을 하지 않는 현상으로 또 포기 일보직전입니다.

버티기 모드로 좀 더 해 보기로..

하려고 했던건,
학원 문의 상담 챗봇 만드는 거였습니다.
원생에 대한 정보(학습성취도 등) 학생 상담일 경우와
학원 등록을 위한 예약 상당을 구분해서 답변하는 기능을 구현하려고 했습니다.

필요한 데이터는 구글 캘린더와 구글 스프레드 시트에 더미 데이터를 만들어서 사용했습니다.

학생정보
스프레드시트에는 gemini 가 달려있어서, 만들어 줘 하니, 이쁘게 만들어 줍니다.

한국 컴퓨터 화면의 스크린샷


일정정보
구글 캘린더에는 gemini가 아직 안 붙어 있어서, 몇 개의 데이터를 직접 만들었습니다.
내 캘린더에 "lessons" 라는 캘린더를 신규로 만들어서, 거기에 등록했습니다.

파란색 화살표가 있는 달력

진행 방법

일단 Agent Builder를 이용해서 workflow를 만들었습니다.

프로젝트의 다양한 부분을 보여주는 마인드 맵
  • Guard rails : 있어 보이긴 하지만, 제어가 쉽지는 않다는..

  • ClassifyAgent : 학생상담 / 예약상담 / ETC 로 구분

  • StudentInfoAgent : Agent 노드에서 제공하는 구글드라이브 MCP 이용

  • ScheduleAgent : Agent 노드에서 제공하는 구글 캘린더 MCP 이용

구글 MCP 등록 방법

웹 브라우저의 에이전트 설정 스크린샷
  • 속성 편집 화면에서 Tools 옆 + 클릭 > MCP server 클릭

mch 서버 추가 화면의 스크린샷
  • Google Calendar 또는 Google Drive 클릭--> 왜 구분했는지 모르겠음?! 두 개의 차이가 별로 없음.

  • 구글에서 제공하는 기능 뿐만 아니라, 내 데이터를 연동하는 거라, OAuth2 방식의 인가(권한허가) 과정이 필요

  • Get access token 클릭

Google 개발자 페이지의 스크린샷
  • 구글쪽 oauthplayground 로 이동

  • 필요한 권한 목록에서 내가 필요한 걸 찾아/검색해서 선택해 주어야 함

    Google 캘린더 페이지의 스크린샷

각각 필요에 맞게 선택 하면 됨.(전 일단 다 체크)

  • 선택 후 하단의 Authorize APIs 클릭

  • 사용하고자 하는 구글 계정 선택

  • 이전에 선택한 것들이 있어서 인지, 파란색 부분에 이미 액세스 권한이 있다고 나옴

  • 처음 시도한 거면, 위 화면에서 선택한 API들을 사용할꺼진 체크하는 영역이 나옴(다 체크)

  • 하단의 계속 클릭

  • 가운데 파란색 Exchange authorization code for tokens 클릭 ( OAuth2 스펙 )

    • 위의 Authorization code를 주고 Access Token과 Refresh Token을 요청하는 단계임

  • 오른쪽 결과에서 "access_token" 에 해당하는 "access_token_value" 를 복사

Google 캘린더 mcp에 연결
  • 다시 Agent Builder 화면으로 돌아와서 "Add your access token" 에 복사한 값 붙여넣기

    • refresh token을 입력하는 부분이 없네요. access_token 만기되면 또 만들어야 할까요?

  • Connect 버튼 클릭 - establish connection 메시지 나오다가..

  • 위와 같은 화면 나오면 성공(?)


고난은 이제부터 시작..

StudentInfoAgent에서는 구글 시트에 연결되고,
ScheduleAgentd에서는 구글 캘린더에 연결이 되어야 하는데,

2개 노드 모둥에서 Instructions에 프롬프팅을 이렇게 저렇게 해도 연결이 안 된 듯한 현상만 계속 발생...ㅠㅠ
안되는 이유를 정확히 알려주지 않아, 연결 오류인지, 데이터 오류인지, 어떤 원인으로 발생하는 건지 알려주지 않음.


현재까지 파악한 것!!!

  • 구글 스프레드 시트 파일이 있는 디렉토리 정보를 주어야 찾아줌.

googledrive Tool을 이용하여, "AI" 폴더(https://drive.google.com/drive/folders/12BrpZFK3RZSoZWla4OzxnkIWE-r2ITR5) 하위의 "MyClass" 이름의 파일을 찾아서 내용 확인하고 출력해 줘

  • 구글 캘린더의 경우, Main(?) 달력 아니면 안 찾아줌.

    • 아까 위에서 "lessons" 라는 캘린더에 있던 일정들을 Main(?) 캘린더로 옮기니까 보여줌

    • 하나의 agent 노드에서 캘린더 있는 정보 가져와서 데이터 필터링 해줘 했는데, 잘 안되어서

    • 결국은 mcp로 일정 가져오는 노드와 필터링 하는 노드로 분리함.

결과와 배운 점

  • 아직 덜 성숙한 도구를 이용할 때는 인내심이 필요하다!!

  • 향후 개선된다면 정해진 흐름대로만 흘러가는 typebot 보다는, 진정한 AI ChatBot을 만들수 있지 않을까? 근데, 인프라와 데이터가 있는 구글(opal)이 더 유리하지 않을까? 하는 생각이 드네요.

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요