Development Guide

λ…Έλ“œ 레퍼런슀

λ…Έλ“œ 레퍼런슀

λ…Έλ“œ 레퍼런슀

Agentriaμ—μ„œ μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ λ…Έλ“œλ₯Ό 톡해 아이디어λ₯Ό ν™•μž₯ν•΄ λ³΄μ„Έμš”.

λ‹€μŒ μΉ΄ν…Œκ³ λ¦¬λ³„ μ„€λͺ…을 μ°Έκ³ ν•˜μ—¬ μž‘μ—…μ— μ ν•©ν•œ λ…Έλ“œλ₯Ό 선택할 수 있고, 더 λ‚˜μ€ μ–΄λΉŒλ¦¬ν‹° 개발이 κ°€λŠ₯ν•©λ‹ˆλ‹€.


AI λ…Έλ“œ


✨ Azure OpenAI LLM

Azure OpenAIκ°€ μ œκ³΅ν•˜λŠ” λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 μ‚¬μš©ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

ν…μŠ€νŠΈ 생성, 질문 응닡, μš”μ•½, λ²ˆμ—­ λ“± λ‹€μ–‘ν•œ μžμ—°μ–΄ 처리 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


✨ Bedrock Anthropic LLM


AWS Bedrock을 톡해 Anthropic의 λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 μ‚¬μš©ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

μ•ˆμ „μ„±κ³Ό λ§₯락 이해λ₯Ό μ€‘μ‹œν•˜λŠ” μ–Έμ–΄ λͺ¨λΈμ„ 기반으둜, λŒ€ν™”ν˜• μ‘λ‹΅μ΄λ‚˜ 뢄석 μž‘μ—…μ— μ ν•©ν•©λ‹ˆλ‹€.


✨ Google Gemini LLM


Google의 Gemini λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 μ‚¬μš©ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

λ©€ν‹°λͺ¨λ‹¬(ν…μŠ€νŠΈ + 이미지 λ“±) μ²˜λ¦¬κΉŒμ§€ μ§€μ›ν•˜μ—¬, κ³ λ„ν™”λœ AI μž‘μ—…μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.


✨ Azure Text Embedding


Azure OpenAI의 μž„λ² λ”© λͺ¨λΈμ„ μ΄μš©ν•΄ ν…μŠ€νŠΈλ₯Ό 벑터(숫자 ν˜•νƒœ)둜 λ³€ν™˜ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

ν•΄λ‹Ή λ²‘ν„°λŠ” 의미 기반 검색, λ¬Έμ„œ μœ μ‚¬λ„ 계산, μΆ”μ²œ μ‹œμŠ€ν…œ λ“± AI μ‘μš© μž‘μ—…μ— ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


✨ Anthropic LLM


Anthropicμ—μ„œ μ œκ³΅ν•˜λŠ” λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈμ„ μ‚¬μš©ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

윀리적 κ°€μ΄λ“œλΌμΈκ³Ό μ•ˆμ „μ„±μ„ κ°•μ‘°ν•œ AI 응닡을 μƒμ„±ν•˜λŠ” 데 강점이 μžˆμŠ΅λ‹ˆλ‹€.


✨ LLM Reserve


기본으둜 μ„€μ •ν•œ LLM이 μ‹€νŒ¨ν•˜κ±°λ‚˜ 이λ₯Ό μ‚¬μš©ν•  수 없을 λ•Œ, μžλ™μœΌλ‘œ λ‹€λ₯Έ LLM으둜 μ „ν™˜ν•˜λŠ” λ°±μ—… λ…Έλ“œμž…λ‹ˆλ‹€.

μ„œλΉ„μŠ€ μ•ˆμ •μ„±μ„ 보μž₯ν•˜κΈ° μœ„ν•΄, μ˜ˆλΉ„ μ–Έμ–΄ λͺ¨λΈμ„ μ€€λΉ„ν•΄λ‘λŠ” 역할을 ν•©λ‹ˆλ‹€.


✨ OpenAI LLM


OpenAIμ—μ„œ μ œκ³΅ν•˜λŠ” λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)을 μ‚¬μš©ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

ν…μŠ€νŠΈ 생성, μš”μ•½, λ²ˆμ—­, 질문 응닡 λ“± λ‹€μ–‘ν•œ μžμ—°μ–΄ 처리 μž‘μ—…μ— ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


AI Agent λ…Έλ“œ


πŸ’Ό Short-term Memory Reader


μ„Έμ…˜ λ™μ•ˆ λ°œμƒν•œ 졜근 λŒ€ν™” μ»¨ν…μŠ€νŠΈλ₯Ό μ €μž₯ν•˜κ³  κΊΌλ‚΄λŠ” 단기 κΈ°μ–΅ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

λŒ€ν™” λ§₯락을 μΌκ΄€λ˜κ²Œ μœ μ§€ν•˜κ³ , μ‚¬μš©μžμ˜ μž…λ ₯ 흐름을 μžμ—°μŠ€λŸ½κ²Œ μ΄μ–΄κ°ˆ 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

특히 μ±—λ΄‡μ΄λ‚˜ λŒ€ν™”ν˜• μ—μ΄μ „νŠΈ ꡬ좕 μ‹œ, 직전 λŒ€ν™”λ₯Ό κΈ°μ–΅ν•΄μ•Ό ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€.

  • λ²”μœ„: ν˜„μž¬ μ„Έμ…˜μ— ν•œμ • (μ„Έμ…˜μ΄ μ’…λ£Œλ˜λ©΄ μ΄ˆκΈ°ν™”)

  • ν™œμš© μ˜ˆμ‹œ: 직전 λ°œν™” κΈ°μ–΅ν•˜κΈ°, κ°„λ‹¨ν•œ μ§ˆμ˜μ‘λ‹΅ λ§₯락 이어가기, λŒ€ν™” 쀑 λ§ˆμ§€λ§‰ λͺ…λ Ή μœ μ§€


πŸ’Ό Agent Tools


μ‚¬μš©μžμ˜ λ©”μ‹œμ§€λ₯Ό λΆ„μ„ν•˜κ³ , ν•„μš”ν•œ μ–΄λΉŒλ¦¬ν‹°λ₯Ό μžλ™μœΌλ‘œ μ„ νƒν•˜μ—¬ μ‹€ν–‰ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

μ—μ΄μ „νŠΈκ°€ λ‹€μ–‘ν•œ κΈ°λŠ₯을 상황에 맞좰 μ‹€ν–‰ν•΄μ•Ό ν•  λ•Œ, μžλ™ κ²°μ •κ³Ό μ—°κ²° 흐름을 κ΅¬μΆ•ν•˜λŠ” 데 μš©μ΄ν•©λ‹ˆλ‹€.


πŸ’Ό Long-term Memory Reader


μ—¬λŸ¬ μ„Έμ…˜μ— 걸쳐 λŒ€ν™” νžˆμŠ€ν† λ¦¬λ‚˜ κ²½ν—˜μ„ μ£Όμ œλ³„λ‘œ μ €μž₯ν•˜κ³  λΆˆλŸ¬μ˜€λŠ” μž₯κΈ° κΈ°μ–΅ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

μ‚¬μš©μžμ˜ μ„ ν˜Έλ„, ν”„λ‘œν•„, κ³Όκ±° μƒν˜Έμž‘μš©μ„ λ°”νƒ•μœΌλ‘œ 보닀 κ°œμΈν™”λœ μ‘λ‹΅μ΄λ‚˜ μΆ”μ²œμ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • λ²”μœ„: μ—¬λŸ¬ μ„Έμ…˜μ— 걸쳐 μ§€μ†μ μœΌλ‘œ μœ μ§€ (μ‚­μ œ λ˜λŠ” κ°±μ‹  μ‹œκΉŒμ§€ μ €μž₯)

  • ν™œμš© μ˜ˆμ‹œ: μ‚¬μš©μžμ˜ 이름 κΈ°μ–΅ν•˜κΈ°, μ„ ν˜Έ μ„€μ • μ €μž₯, κ³Όκ±° 행동을 기반으둜 λ§žμΆ€ν˜• 응닡 제곡


πŸ’Ό ReAct Agent


ReAct(Reasoning and Acting) ν”„λ ˆμž„μ›Œν¬λ₯Ό κ΅¬ν˜„ν•œ λ…Έλ“œλ‘œ, LLM이 사고와 행동을 λ°˜λ³΅ν•˜λ©° 문제λ₯Ό λ‹¨κ³„μ μœΌλ‘œ ν•΄κ²°ν•˜λ„λ‘ μ„€κ³„λœ κ΅¬μ‘°μž…λ‹ˆλ‹€.

λ³΅μž‘ν•œ μž‘μ—…μ„ μ‹€ν–‰ν•  λ•Œ, LLM이 λ¨Όμ € 사고, 행동, 관찰을 λ°˜λ³΅ν•˜λ©° 더 μ •ν™•ν•˜κ³  μ‹ λ’°μ„± μžˆλŠ” κ²°κ³Όλ₯Ό λ„μΆœν•©λ‹ˆλ‹€.


Tools λ…Έλ“œ


πŸ› οΈ Notion


μ—μ΄μ „νŠΈκ°€ Notion μ›Œν¬μŠ€νŽ˜μ΄μŠ€μ˜ νŽ˜μ΄μ§€λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μš©μ„ 읽고, μž‘μ„±ν•˜κ³ , 관리할 수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.


πŸ› οΈ Gmail


μ—μ΄μ „νŠΈκ°€ Gmail κ³„μ •μ˜ 이메일을 읽고, μ²˜λ¦¬ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.


πŸ› οΈ Discord


μ—μ΄μ „νŠΈκ°€ Discord 채널 및 λ©”μ‹œμ§€μ™€ μƒν˜Έμž‘μš©ν•˜κ±°λ‚˜ μ‚¬μš©μž 이벀트λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.


Web Tools


🌐 Web Request


μ™ΈλΆ€ μ›Ή μ„œλΉ„μŠ€μ— HTTP μš”μ²­μ„ 보내고, 받은 응닡을 μ›Œν¬ν”Œλ‘œμš° λ‚΄μ—μ„œ ν™œμš©ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

REST API 호좜, 데이터 μˆ˜μ§‘, μ›Ήν›… 처리 등에 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


🌐 SerpApi Web Search


SerpApi μ„œλΉ„μŠ€λ₯Ό 톡해 κ΅¬μ‘°ν™”λœ μ›Ή 검색 κ²°κ³Όλ₯Ό μ¦‰μ‹œ κ°€μ Έμ˜¬ 수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

Google, Bing, DuckDuckGo λ“± 검색 μ—”μ§„ κ²°κ³Όλ₯Ό JSON ν˜•νƒœλ‘œ νŽΈλ¦¬ν•˜κ²Œ λ°›μ•„μ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.


🌐 DuckDuckGo Web Search


ν”„λΌμ΄λ²„μ‹œ μ€‘μ‹¬μ˜ 검색 μ—”μ§„ DuckDuckGoλ₯Ό 톡해 검색을 μ‹€ν–‰ν•˜κ³ , κ²°κ³Όλ₯Ό κ°€μ Έμ˜€λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

DuckDuckGo APIλŠ” SerpApiμ—μ„œλ„ μ§€μ›λ˜κ³  μžˆμ–΄μ„œ, SerpApi 연동 λ°©μ‹μœΌλ‘œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.


🌐 Exa Web Search


Exa의 APIλ₯Ό ν™œμš©ν•΄ κ΄€λ ¨μ„± 높은 κ³ ν’ˆμ§ˆ μ›Ή 검색 κ²°κ³Όλ₯Ό κ°€μ Έμ˜¬ 수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

ExaλŠ” LLM 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μœ„ν•΄ μ„€κ³„λœ 검색 μ—”μ§„μœΌλ‘œ, μ›Ή μ½˜ν…μΈ λ₯Ό μžμ—°μ–΄ 질의둜 μ²˜λ¦¬ν•˜κ³  μ •μ œλœ 정보λ₯Ό μ œκ³΅ν•˜λŠ” 데 μ΅œμ ν™”λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.


File Handling Tools


πŸ“Ž PDF Text Reader


PDF νŒŒμΌμ—μ„œ ν…μŠ€νŠΈλ§Œ μΆ”μΆœν•΄μ„œ 읽을 수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

PDF.js 기반의 μΆ”μΆœ 라이브러리λ₯Ό μ΄μš©ν•΄ λ¬Έμ„œ λ‚΄λΆ€μ˜ κ΅¬μ‘°ν™”λœ ν…μŠ€νŠΈλ₯Ό 읽고 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.


πŸ“Ž Upstage AI OCR


μ΄λ―Έμ§€λ‚˜ μŠ€μΊ”λœ λ¬Έμ„œμ—μ„œ ν…μŠ€νŠΈλ₯Ό μΈμ‹ν•˜λŠ” OCR(κ΄‘ν•™λ¬ΈμžνŒλ…) κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

Upstage의 Document AIλŠ” ν•œκ΅­μ–΄ 및 μ˜μ–΄ ν…μŠ€νŠΈ 인식에 νŠΉν™”λœ κ³ μ •λ°€ OCR λͺ¨λΈλ‘œ, μ΄λ―Έμ§€ν™”λœ μ˜μˆ˜μ¦μ΄λ‚˜ μŠ€μΊ” λ¬Έμ„œλ‘œλΆ€ν„° ν…μŠ€νŠΈλ₯Ό μžλ™ μΆ”μΆœν•  λ•Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


Code


πŸ’» Python


Python μ½”λ“œλ₯Ό 직접 μž‘μ„±ν•˜κ³  μ‹€ν–‰ν•  수 μžˆλŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

μ›Œν¬ν”Œλ‘œμš° λ‚΄μ—μ„œ λ‹€λ₯Έ λ…Έλ“œλ₯Ό ν•¨μˆ˜μ²˜λŸΌ ν˜ΈμΆœν•  수 있으며, 데이터 μ „μ²˜λ¦¬, 계산, API 호좜 λ“± 자유둜운 둜직 κ΅¬ν˜„μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.


Database


πŸ—„οΈ Embedding Data Searcher


데이터 μ €μž₯μ†Œμ— μ €μž₯된 μž„λ² λ”©(벑터) 데이터λ₯Ό κ²€μƒ‰ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

μ£Όμ–΄μ§„ 쿼리와 의미적으둜 μœ μ‚¬ν•œ 데이터λ₯Ό μ°Ύμ•„λ‚΄μ–΄, RAG 기반 λ¬Έμ„œ κ²€μƒ‰μ΄λ‚˜ μΆ”μ²œ μ‹œμŠ€ν…œ κ΅¬ν˜„μ— ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ—„οΈ Structured Data Reader


데이터 μ €μž₯μ†Œμ— μžˆλŠ” κ΅¬μ‘°ν™”λœ 데이터λ₯Ό μ½μ–΄μ˜€λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

ν‘œ, λ°μ΄ν„°λ² μ΄μŠ€ λ ˆμ½”λ“œ, JSON 포맷 λ“±μ—μ„œ ν•„μš”ν•œ 정보λ₯Ό λΆˆλŸ¬μ™€ μ›Œν¬ν”Œλ‘œμš°μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•©λ‹ˆλ‹€.


πŸ—„οΈ Structured Data Writer


κ΅¬μ‘°ν™”λœ 데이터λ₯Ό 데이터 μ €μž₯μ†Œμ— κΈ°λ‘ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

RAGλ‚˜ 검색 μ‹œμŠ€ν…œμ„ μœ„ν•΄ μƒˆλ‘œμš΄ λ ˆμ½”λ“œλ‚˜ μ •ν˜• 데이터λ₯Ό μ €μž₯ν•  λ•Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ—„οΈ Embedding Data Writer


ν…μŠ€νŠΈλ₯Ό μž„λ² λ”© λ²‘ν„°λ‘œ λ³€ν™˜ν•œ ν›„ 데이터 μ €μž₯μ†Œμ— κΈ°λ‘ν•˜λŠ” λ…Έλ“œμž…λ‹ˆλ‹€.

좔후에 의미 기반 검색을 μ§€μ›ν•˜κΈ° μœ„ν•΄, λ¬Έμ„œλ‚˜ λŒ€ν™” 기둝을 μž„λ² λ”© ν˜•νƒœλ‘œ μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


* RAG (Retrieval-Augmented Generation) : 검색과 생성을 κ²°ν•©ν•΄ 정확성을 λ†’μ΄λŠ” 방법