3주차 챌린지

tecet1·2026년 5월 31일

1. 작업 개요

CHAPTER 04 원본 미션은 KAMIS API, Google Sheets, Google Gemini를 조합해 사용자가 자연어로 입력한 농산물 품목을 조회하는 AI Agent를 만드는 것이었지만 현재 KAMIS OpenAPI 등록이 완료되지 않아, 동일한 구조를 유지하되 데이터 도메인을 주식 시세로 변경했습니다.

  • 사용자가 애플, 테슬라, 엔비디아처럼 한글명이나 회사명을 입력하면 Google Sheets에서 매칭되는 종목의 티커를 찾는다.
  • 사용자가 AAPL, TSLA, NVDA처럼 명확한 미국 주식 티커를 입력하면 그대로 사용한다.
  • HTTP Request Tool로 티커에 적용된 시세정보 api(stooq.com)를 조회한다.
  • AI Agent가 조회 결과를 읽고 한국어로 간결하게 요약한다.
  • Simple Memory를 사용해 같은 세션 안에서 후속 질문을 처리한다.

2. 최종 워크플로우 구조

최종 구성:

Chat Trigger
  -> AI Agent
      <- Google Gemini Chat Model
      <- Simple Memory
      <- Stock Symbol Lookup
      <- HTTP Request / Stooq Quote Tool

각 노드 역할:

노드역할
Chat Trigger사용자의 자연어 질문 입력
AI Agent의도 파악, Tool 호출 순서 결정, 최종 답변 생성
Google Gemini Chat ModelAgent의 LLM 모델
Simple Memory세션 내 대화 맥락 저장
Stock Symbol LookupGoogle Sheets에서 자연어 종목명과 Stooq symbol 매핑
HTTP Request ToolStooq CSV 엔드포인트로 최신 시세 조회

3. Google Sheets 관련

원본 KAMIS 예제에서 Google Sheets는 작은 데이터베이스 역할을 수행합니다.

예를 들어 사용자가 복숭아라고 입력하면 KAMIS API는 자연어 품목명을 그대로 이해하지 못하므로, Google Sheets에서 품목 코드와 부류 코드를 찾습니다.

주식 시세 버전에서도 같은 구조를 유지했습니다.

사용자 입력: 애플
  -> Google Sheets lookup
  -> symbol: aapl.us
  -> Stooq API 조회

즉, Google Sheets는 “사람이 말하는 이름”과 “API가 이해하는 symbol”을 연결하는 매핑 DB로 활용됩니다.

사용자가 AAPL처럼 티커를 직접 입력할 수도 있으며, 이 경우 Google Sheets를 거치지 않고 aapl.us로 직접 변환해 HTTP Request Tool을 호출합니다.

사용한 Google Sheet의 형식은 아래와 같습니다.

lookup | name | symbol | market | currency
애플 | 애플 | aapl.us | US | USD

위 형식을 활용해, 미국 주식시장의 대표 종목 몇가지에 대해 매핑을 추가했습니다.

lookupnamesymbolmarketcurrency
애플애플aapl.usUSUSD
apple애플aapl.usUSUSD
aapl애플aapl.usUSUSD
테슬라테슬라tsla.usUSUSD
tesla테슬라tsla.usUSUSD
tsla테슬라tsla.usUSUSD
엔비디아엔비디아nvda.usUSUSD
nvidia엔비디아nvda.usUSUSD
nvda엔비디아nvda.usUSUSD

4. Stock Symbol Lookup 노드

위에서 정의한 형식의 구글 시트에서 실제로 값을 읽어오는 툴입니다.

5. HTTP Request Tool 설정

HTTP 리퀘스트를 통해 api를 조회하는 툴입니다.

stooq api 규격에 맞게 쿼리 파라미터를 아래와 같이 설정했습니다.

s = {{ $fromAI("symbol", "조회할 Stooq symbol. 예: aapl.us, tsla.us, nvda.us. 사용자가 AAPL처럼 미국 티커를 입력했다면 aapl.us로 변환해서 넣는다.", "string", "aapl.us") }}
f = sd2t2ohlcv
h =
e = csv

f=sd2t2ohlcv는 Stooq CSV 응답 필드를 지정합니다.

s  = Symbol
d2 = Date
t2 = Time
o  = Open
h  = High
l  = Low
c  = Close
v  = Volume

응답 컬럼:

Symbol, Date, Time, Open, High, Low, Close, Volume

6. AI Agent 프롬프트 설계

프롬프트는 주식 시세 조회 Agent가 최신 데이터를 조회하고, 불필요한 추론이나 추천 없이 요약 답변만 하도록 제한하는 방향으로 설계했습니다.

처리 원칙은 다음과 같습니다.

  • 미국 티커가 명확하면 Google Sheets를 거치지 않고 직접 사용한다.
  • 한글명, 회사명, 별칭이면 Google Sheets에서 symbol을 찾는다.
  • 시세는 매번 HTTP Request Tool로 새로 조회한다.
  • Simple Memory는 대화 맥락 저장에만 쓰고, 가격 데이터 재사용에는 쓰지 않는다.
  • 매수·매도·보유 추천, 목표가, 근거 없는 전망은 하지 않는다.
  • 데이터에 없는 정보는 만들어내지 않는다.

Agent의 내부 흐름은 아래와 같습니다.

의도 파악 → 종목 식별 → 데이터 조회 → 데이터 검증 → 분석 요약 → 답변

7. Simple Memory 활용

Simple Memory는 현재 세션의 이전 대화 맥락을 기억하는 역할을 수행합니다.

다만, 최신 시세를 조회하는데는 사용하지 않도록 제한했습니다.

8. 테스트

9. 다음 개선 아이디어

  1. Symbol Search API 추가
    • Alpha Vantage, Finnhub, Twelve Data 등으로 종목 검색 기능 추가
    • 시트에 없는 종목도 후보 제안 가능
  2. Google Sheets 자동 업데이트
    • 사용자가 확인한 새 종목을 Google Sheets에 Append Row
    • 개인화된 종목 사전으로 확장
  3. 전일 대비 계산
    • Stooq daily historical CSV를 추가 호출
    • 현재가와 전일 종가 비교
    • 등락률 계산
  4. 관심 종목 watchlist
    • Google Sheets에 watchlist 탭 추가
    • 사용자가 “내 관심 종목 오늘 요약해줘”라고 물으면 일괄 조회
  5. 보고서 출력
    • Agent 응답을 Markdown으로 저장
    • 주간 리포트 자동 생성
    • 개인 웹페이지에 publish

0개의 댓글