Intro

Koog?

  1. Simple API: ๊ฐ„๋‹จํ•œ ์„ค์ •์œผ๋กœ ๋‹จ์ผ ์‹คํ–‰ ์—์ด์ „ํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

  2. AI Agent: ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ปค์Šคํ…€ ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ ์ ˆํ•œ ์ˆ˜์ค€์˜ ๋ณต์žก์„ฑ์„ ์„ ํƒํ•˜์—ฌ ์—์ด์ „ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ์ˆœ์ˆ˜ ์ฝ”ํ‹€๋ฆฐ ๊ตฌํ˜„: ์ „์ฒด ์—์ด์ „ํŠธ ๋กœ์ง์„ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ์ž‘์„ฑํ•˜์—ฌ, JVM ๋ฐ JS ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • MCP(Model Control Protocol) ํ†ตํ•ฉ: ๋‹ค์–‘ํ•œ LLM(Large Language Model) ๊ณต๊ธ‰์ž์™€์˜ ๋™์  ๋ชจ๋ธ ์ „ํ™˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ ์ง€์›: ์˜๋ฏธ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰ ๋ฐ ์ง€์‹ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ปค์Šคํ…€ ๋„๊ตฌ ์ƒ์„ฑ: ์™ธ๋ถ€ ์‹œ์Šคํ…œ ๋ฐ API์™€์˜ ํ†ตํ•ฉ์„ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์—์ด์ „ํŠธ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ง€๋Šฅํ˜• ํžˆ์Šคํ† ๋ฆฌ ์••์ถ•: ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํ† ํฐ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ „๋žต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ŠคํŠธ๋ฆฌ๋ฐ API: ์‹ค์‹œ๊ฐ„ ์‘๋‹ต ์ฒ˜๋ฆฌ ๋ฐ ๋ณ‘๋ ฌ ๋„๊ตฌ ํ˜ธ์ถœ์„ ์ง€์›ํ•˜์—ฌ, ๋ฐ˜์‘ํ˜• ์—์ด์ „ํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜์†์ ์ธ ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ: ์„ธ์…˜ ๊ฐ„ ๋ฐ ์—์ด์ „ํŠธ ๊ฐ„ ์ง€์‹ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ, ์ง€์†์ ์ธ ํ•™์Šต๊ณผ ๊ฐœ์„ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • ์ข…ํ•ฉ์ ์ธ ํŠธ๋ ˆ์ด์‹ฑ: ์—์ด์ „ํŠธ ์‹คํ–‰์„ ๋””๋ฒ„๊น…ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์„ธํ•˜๊ณ  ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ํŠธ๋ ˆ์ด์‹ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์œ ์—ฐํ•œ ๊ทธ๋ž˜ํ”„ ์›Œํฌํ”Œ๋กœ์šฐ: ์ง๊ด€์ ์ธ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ์—์ด์ „ํŠธ ๋™์ž‘์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“ˆํ˜• ๊ธฐ๋Šฅ ์‹œ์Šคํ…œ: ์ปดํฌ์ €๋ธ” ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ ๊ธฐ๋Šฅ์„ ๋งž์ถคํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜: ๊ฐ„๋‹จํ•œ ์ฑ—๋ด‡๋ถ€ํ„ฐ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฉ€ํ‹ฐํ”Œ๋žซํผ ์ง€์›: ์ฝ”ํ‹€๋ฆฐ ๋ฉ€ํ‹ฐํ”Œ๋žซํผ์„ ํ†ตํ•ด JVM ๋ฐ JS ํƒ€๊ฒŸ์—์„œ ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐœ๋…

์—์ด์ „ํŠธ(Agent)

์—์ด์ „ํŠธ๋Š” ๋„๊ตฌ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ , ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” AI ์—”ํ‹ฐํ‹ฐ์ž…๋‹ˆ๋‹ค. Koog๋Š” Simple API์™€ AI Agent์˜ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์—์ด์ „ํŠธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ๊ทธ๋ž˜ํ”„(Strategy Graph)

์—์ด์ „ํŠธ์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์ „๋žต ๊ทธ๋ž˜ํ”„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ด๋Š” ๋…ธ๋“œ์™€ ์—ฃ์ง€๋กœ ์ด๋ฃจ์–ด์ง„ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

  • ๋…ธ๋“œ(Node): ํŠน์ • ์ž‘์—…์ด๋‚˜ ๋ณ€ํ™˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

  • ์—ฃ์ง€(Edge): ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ๋ฆ„์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋ธŒ๊ทธ๋ž˜ํ”„(Subgraph): ์ž์ฒด์ ์ธ ๋„๊ตฌ, ์ปจํ…์ŠคํŠธ, ์ฑ…์ž„์„ ๊ฐ€์ง„ ๋…๋ฆฝ์ ์ธ ์ฒ˜๋ฆฌ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

๋„๊ตฌ(Tool)

๋„๊ตฌ๋Š” ์—์ด์ „ํŠธ๊ฐ€ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ์‹œ์Šคํ…œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋Š” ๋„๊ตฌ์˜ ์ด๋ฆ„, ์„ค๋ช…, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํžˆ์Šคํ† ๋ฆฌ ์••์ถ•(History Compression)

๋Œ€ํ™” ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์••์ถ•ํ•˜์—ฌ ํ† ํฐ ์‚ฌ์šฉ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์••์ถ• ์ „๋žต์„ ํ†ตํ•ด ๋Œ€ํ™” ์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ํšจ์œจ์ ์ธ ํ† ํฐ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ(Feature)

์—์ด์ „ํŠธ์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ณ  ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.

  • ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(EventHandler): ์—์ด์ „ํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ, ๋„๊ตฌ ํ˜ธ์ถœ ๋“ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

  • ์—์ด์ „ํŠธ ๋ฉ”๋ชจ๋ฆฌ(AgentMemory): ์—์ด์ „ํŠธ๊ฐ€ ๋Œ€ํ™” ๊ฐ„ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ฒ€์ƒ‰ํ•˜๋ฉฐ, ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Last updated