CHAPTER 04 원본 미션은 KAMIS API, Google Sheets, Google Gemini를 조합해 사용자가 자연어로 입력한 농산물 품목을 조회하는 AI Agent를 만드는 것이었지만 현재 KAMIS OpenAPI 등록이 완료되지 않아, 동일한 구조를 유지하되 데이터 도메인을 주식 시세로 변경했습니다.
애플, 테슬라, 엔비디아처럼 한글명이나 회사명을 입력하면 Google Sheets에서 매칭되는 종목의 티커를 찾는다.AAPL, TSLA, NVDA처럼 명확한 미국 주식 티커를 입력하면 그대로 사용한다.최종 구성:

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 Model | Agent의 LLM 모델 |
| Simple Memory | 세션 내 대화 맥락 저장 |
| Stock Symbol Lookup | Google Sheets에서 자연어 종목명과 Stooq symbol 매핑 |
| HTTP Request Tool | Stooq CSV 엔드포인트로 최신 시세 조회 |
원본 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
위 형식을 활용해, 미국 주식시장의 대표 종목 몇가지에 대해 매핑을 추가했습니다.
| lookup | name | symbol | market | currency |
|---|---|---|---|---|
| 애플 | 애플 | aapl.us | US | USD |
| apple | 애플 | aapl.us | US | USD |
| aapl | 애플 | aapl.us | US | USD |
| 테슬라 | 테슬라 | tsla.us | US | USD |
| tesla | 테슬라 | tsla.us | US | USD |
| tsla | 테슬라 | tsla.us | US | USD |
| 엔비디아 | 엔비디아 | nvda.us | US | USD |
| nvidia | 엔비디아 | nvda.us | US | USD |
| nvda | 엔비디아 | nvda.us | US | USD |
위에서 정의한 형식의 구글 시트에서 실제로 값을 읽어오는 툴입니다.
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
프롬프트는 주식 시세 조회 Agent가 최신 데이터를 조회하고, 불필요한 추론이나 추천 없이 요약 답변만 하도록 제한하는 방향으로 설계했습니다.
처리 원칙은 다음과 같습니다.
Agent의 내부 흐름은 아래와 같습니다.
의도 파악 → 종목 식별 → 데이터 조회 → 데이터 검증 → 분석 요약 → 답변
Simple Memory는 현재 세션의 이전 대화 맥락을 기억하는 역할을 수행합니다.
다만, 최신 시세를 조회하는데는 사용하지 않도록 제한했습니다.


