๊ฐ๋ฐ์ 99% ์ปค๋ฎค๋ํฐ์์ ์๋ค ๋จ์ด์!
๋ฐฐํฌ URL: https://learn-log-agent-dwdjwnk2jpfqcxabqpg8ys.streamlit.app/
GitHub: https://github.com/imnamul/ai-agents-masterclass-assignments/tree/main/learn-log-agent
LearnLog๋ LangGraph ๊ธฐ๋ฐ ํ์ต ์ต๊ด ํธ๋์ปค ์์ด์ ํธ์ ๋๋ค.
ํ์ต ๋ชฉํ๋ฅผ ๋งํ๋ฉด AI๊ฐ ๋๋ฉ์ธ์ ๋ถ์ํ๊ณ , ์์ค์ ๋ง๋ ์ฃผ์ฐจ๋ณ ์ปค๋ฆฌํ๋ผ๊ณผ ๊ณต์ ํ์ต ์๋ฃ ๋งํฌ๋ฅผ ์๋ ์์ฑํฉ๋๋ค. ์ดํ ๋งค์ผ ์ฒดํฌ์ธํ ๋๋ง๋ค ์ค๋์ ์ฃผ์ ์ ์๋ฃ๋ฅผ ์ ์ํ๊ณ , ํด์ฆ๋ก ๋ณต์ต์ํค๊ณ , ํ๋ฃจ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ ํ์ต ์ผ๊ธฐ๋ฅผ Notion์ ์๋ ํฌ์คํ ํฉ๋๋ค.
ํ์ต ๋ชฉํ(์: "LangGraph", "์์ด ํํ")์ ํ์ฌ ์์ค(์ ๋ฌธ/์ด๊ธ/์ค๊ธ/๊ณ ๊ธ)์ ์ ๋ ฅํ๋ฉด, GPT-4o-mini๊ฐ ๋๋ฉ์ธ์ ๋ถ์ํ๊ณ ์ ์ฒด ์ฃผ์ฐจ๋ณ ์ปค๋ฆฌํ๋ผ์ ์์ฑํฉ๋๋ค. ๊ฐ ์ฃผ์ฐจ๋ง๋ค ๊ณต์ ๋ฌธ์ยทGitHub ๋ฑ ํ์ต ์๋ฃ ๋งํฌ 2~3๊ฐ๊ฐ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
์ปค๋ฆฌํ๋ผ ์์ฑ ์ ๋๋ฉ์ธยท์์ค์ ๋ง๋ ํํฐ ์์คํ ํ๋กฌํํธ๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. "React ์ค๊ธ ํํฐ"์ "์์ด ํํ ์ ๋ฌธ ํํฐ"๋ ์๋ก ๋ค๋ฅธ ๊ต์ก ๋ฐฉ์์ผ๋ก ์๋ตํฉ๋๋ค.
์ค๋์ ์ฃผ์ ์ ์๋ฃ ๋งํฌ๋ฅผ ๋จผ์ ๋ณด์ฌ์ฃผ๊ณ , ํ์ต ๋ด์ฉ์ ์์ ๋กญ๊ฒ ์ ๋ ฅํ๋ฉด AI ํํฐ๊ฐ ํต์ฌ ๊ฐ๋ ์ ์ง์ด์ฃผ๋ ํผ๋๋ฐฑ์ ์ ๊ณตํฉ๋๋ค. ์ฐ์ ๋ฌ์ฑ ์ผ์(์คํธ๋ฆญ)๊ฐ ๋์ ๋๋ฉฐ ์ง๋์จ๋ ์ค์๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
์ค๋ ๋ฐฐ์ด ๋ด์ฉ ๊ธฐ๋ฐ ํด์ฆ 3๋ฌธ์ ๋ฅผ ์๋ ์์ฑํฉ๋๋ค. ํด์ฆ ํ์คํ ๋ฆฌ์์ "์ฝ์ ํ ํฝ"์ด๋ "3์ผ ์ด์ ์ง๋ ํ ํฝ"์ ๊ฐ์งํด ๋ณต์ต ๋ฌธ์ ๋ฅผ ์๋์ผ๋ก ํฌํจ์ํต๋๋ค.
์ธ์ ์ด ๋๋๋ฉด ์ค๋์ ๊ธฐ๋ถยท๋ชฉํยท์ฑ์ทจยทํ๊ณ ยท๋ด์ผ ๊ณํ์ด ๋ด๊ธด ํ์ต ์ผ๊ธฐ๋ฅผ ์๋์ผ๋ก Notion ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํฉ๋๋ค.
โ ๋ชฉํ ์ค์ ์์ โ ์ฌ์ด๋๋ฐ์ ์ค๋์ ์ฃผ์ ํ์ด๋ผ์ดํธ

ํ์ต ๋ชฉํ๋ฅผ ์ ๋ ฅํ๋ฉด ์ฌ์ด๋๋ฐ์ ์ง๋์จยท์ค๋์ ์ฃผ์ (ํ๋ ๋ฐ์ค)ยทํ์ต ์๋ฃ ๋งํฌ๊ฐ ์๋์ผ๋ก ์ฑ์์ง๋๋ค.
โก AI๊ฐ ์์ฑํ 4์ฃผ ์ปค๋ฆฌํ๋ผ + ์ฃผ์ฐจ๋ณ ํ์ต ์๋ฃ

GPT-4o-mini๊ฐ ๋๋ฉ์ธ์ ๋ถ์ํ๊ณ ์ ์ฒด ์ฃผ์ฐจ ์ปค๋ฆฌํ๋ผ์ ์์ฑํฉ๋๋ค. ๊ฐ ์ฃผ์ฐจ์ ํ์ต์๋ฃ ๋งํฌ๊ฐ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค.
โข ์ฒดํฌ์ธ ์๋ฃ ํ ์ก์ ์ ํ (ํด์ฆ / ๊ฒ์ / ์ผ๊ธฐ)

์ค๋ ํ์ต ๋ด์ฉ์ ์ ๋ ฅํ๋ฉด AI ํํฐ๊ฐ ํผ๋๋ฐฑ์ ์ฃผ๊ณ , ๋ค์ ๋จ๊ณ(ํด์ฆ/๊ฒ์/์ผ๊ธฐ)๋ฅผ ๋ฒํผ์ผ๋ก ์ ํํฉ๋๋ค. ์คํธ๋ฆญ ์นด์ดํฐ๊ฐ ์ฌ์ด๋๋ฐ์ ํ์๋ฉ๋๋ค.
โฃ ์คํ์ด์ค๋ ๋ฆฌํผํฐ์ ํด์ฆ

์ค๋ ํ์ต ๋ด์ฉ ๊ธฐ๋ฐ ํด์ฆ 3๋ฌธ์ ๋ฅผ ์๋ ์์ฑํฉ๋๋ค. ํด์ฆ ํ์คํ ๋ฆฌ์์ ์ฝ์ ํ ํฝ์ด๋ ์ค๋๋ ๋ด์ฉ์ ๊ฐ์งํด ๋ณต์ต ๋ฌธ์ ๋ฅผ ํฌํจ์ํต๋๋ค.
โค ํ์ต ์ผ๊ธฐ ์๋ ์์ฑ + Notion ํฌ์คํ ์๋ฃ

์ธ์ ์ด ๋๋๋ฉด ๊ธฐ๋ถยท์ฑ์ทจยทํ๊ณ ยท๋ด์ผ ๊ณํ์ด ๋ด๊ธด ์ผ๊ธฐ๋ฅผ ์๋ ์์ฑํ๊ณ Notion DB์ ์ ์ฅํฉ๋๋ค.
์์ด์ ํธ ํ๋ ์์ํฌ : LangGraph (๋ฉํฐ ๋
ธ๋, interrupt, ์ฒดํฌํฌ์ธํธ)
LLM : GPT-4o-mini
๊ฒ์ : Tavily Search API
UI : Streamlit
์ธ๋ถ ์ฐ๋ : Notion API
์ํ ์ ์ฅ : SQLite (LangGraph SqliteSaver)
๊ทธ๋ํ ๊ตฌ์กฐ ์์ฝ (14๊ฐ ๋
ธ๋):
START โ mood_check โ goal_check
โโ(์ ๋ชฉํ)โ goal_detail โ domain_analysis โ curriculum_build โ persona_build
โ
checkin โ checkin_response โ checkin_action
โโ ํด์ฆ โ quiz_generate โ quiz โ diary_writer โ notion_post โ END
โโ ๊ฒ์ โ resource_search โโโโโโโโโโโโโโโโโโโโโโ
โโ ์ผ๊ธฐ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ6์ฃผ๊ฐ์ ์์ง๋์ด ํด๋ฝ์ ์งํํ๋ฉด์ 1์ฐจ ๋ชฉํ์๋ ๊ฐ์๋ฅผ ๋๊น์ง ๋ค์ ์ ์์์ด์. ๋งค์ฃผ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณผ์ ๋ฅผ ์งํํ๋ ์ฌ์ดํด์ด ์๊ฐ๋ณด๋ค ๋น ๋ฏํ๋๋ฐ, ์ง๊ธ ๋์๋ณด๋ฉด ์ฃผ๋ง์ ๋ค์ ์ฃผ ๊ฐ์๋ฅผ ๋ฏธ๋ฆฌ ๋ฃ๊ณ ๊ณผ์ ๋ฅผ ์ฌ์ ์๊ฒ ์งํํ๋ค๋ฉด ํจ์ฌ ๊น์ด ์๊ฒ ์ดํดํ ์ ์์์ ๊ฒ ๊ฐ์ ์์ฌ์์ด ๋จ์ต๋๋ค.
ํนํ ์ต์ข ๊ณผ์ ๋ฅผ ๋๋ฌด ๋ฆ๊ฒ ์์ํ๋ ๋ฐ๋์ ์๋น์ค ๊ธฐํ์ ์ ๋๋ก ํ์ง ๋ชปํ๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐฉํฅ์ฑ๊ณผ ์์ฑ๋ ๋ชจ๋ ์์ฌ์ด ๋ถ๋ถ์ด ์์ด์. ๊ทธ๋๋ LangGraph๋ก ์ค์ ๋ก ๋์ํ๋ ์์ด์ ํธ๋ฅผ ์ฒ์๋ถํฐ ๋ฐฐํฌ๊น์ง ์ง์ ๋ง๋ค์ด๋ดค๋ค๋ ๊ฒ ์์ฒด๊ฐ ํฐ ์ํ์ด์์ต๋๋ค.
1. ์ต์ข
๊ณผ์ ๋ ์ผ์ฐ ์์ํ์ธ์
๊ณผ์ ์ฃผ์ ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์๊ฐ๋ณด๋ค ์๊ฐ์ด ๊ฑธ๋ ค์. ๋ฌด์์ ๋ง๋ค์ง ๋ฐฉํฅ์ด ์ ํด์ ธ์ผ ๊ฐ์๊ฐ ์ ๋๋ก ํก์๋ฉ๋๋ค. 3์ฃผ์ฐจ ์ ํ๋ก ์ฃผ์ ๋ฅผ ์ก๊ณ ๊ธฐํ์ ์์ํ๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค.
2. ๋
ธ๋ ํ๋์ interrupt ํ๋
ํ๋์ ๋
ธ๋์์ interrupt()๋ฅผ ๋ ๋ฒ ์ฐ๋ฉด LangGraph ์ฒดํฌํฌ์ธํธ๊ฐ ๋ถ์์ ํด์ง๋๋ค. ์ฌ์ฉ์ ์
๋ ฅ์ด ๋ ๋ฒ ํ์ํ๋ค๋ฉด ๋
ธ๋๋ฅผ ๋ฐ๋์ ๋ถ๋ฆฌํ์ธ์.
3. interrupt ์์์๋ LLM ๊ธ์ง interrupt() ํธ์ถ ์ ์ LLM์ ์ฐ๋ฉด resume ์ ํด๋น LLM์ด ์ฌํธ์ถ๋ฉ๋๋ค. LLM ๊ฒฐ๊ณผ๊ฐ ํ์ํ๋ฉด ์ด์ ๋
ธ๋์์ state์ ์ ์ฅํ ๋ค interrupt ๋
ธ๋์์ ์ฝ์ด์ผ ํด์.