Home / ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง / ๐ŸŽฏ ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง
Module

๐ŸŽฏ ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

WriteยทSelectยทCompressยทIsolate, 6-Layer, Strands ์ ์šฉ

โฑ 60๋ถ„ 15 / 189

์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

Write ยท Select ยท Compress ยท Isolate ยท 6-Layer ยท Prompt Caching

๋ฌด์—‡์„ ๋„ฃ๋А๋ƒ๊ฐ€ ์„ฑ๋Šฅ์„ ๊ฒฐ์ •ํ•œ๋‹ค

ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฒ•์„ ๋„˜์–ด โ€” ๋ชจ๋ธ์— ๋ณด์—ฌ์ค„ ์ปจํ…์ŠคํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋ง

ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

~2024 โ†’ 2025 โ€” ๋ฒ”์œ„์˜ ํ™•์žฅ

PART 1 ยท ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

์ปจํ…์ŠคํŠธ์˜ ์ •์˜์—์„œ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ๋“ฑ์žฅ๊นŒ์ง€

"์–ด๋–ป๊ฒŒ ์“ธ๊นŒ"์—์„œ "๋ฌด์—‡์„ ๋„ฃ์„๊นŒ"๋กœ

๋ชจ๋ธ์ด ๋ณด๋Š” ์ž…๋ ฅ ์ „์ฒด๊ฐ€ ์ปจํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค โ€” ์—์ด์ „ํŠธ ์‹œ๋Œ€์— ํญ์ฆํ•˜๋ฉฐ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์กŒ๊ณ , ๊ทธ๋ž˜์„œ ์—”์ง€๋‹ˆ์–ด๋ง์ด ํ•„์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

  • ์ปจํ…์ŠคํŠธ๋ž€ โ€” ๋ชจ๋ธ์ด ๋ณด๋Š” ์ž…๋ ฅ ์ „์ฒด
  • ์™œ ์–ด๋ ค์šด๊ฐ€ โ€” ์—์ด์ „ํŠธ์˜ ๋ฐ˜๋ณต ์กฐ๋ฆฝยทํญ์ฆ
  • ๊ทธ๋ž˜์„œ โ€” ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ๋“ฑ์žฅ (2025)
  • ํšจ๊ณผ โ€” ํ’ˆ์งˆ๊ณผ ๋น„์šฉ์„ ์ขŒ์šฐ
takeaway

ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฒ•๋งŒ์œผ๋กœ๋Š” ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค โ€” ๋ชจ๋ธ์— ๋ฌด์—‡์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ธ๊ฐ€๊ฐ€ ์ƒˆ๋กœ์šด ์„ค๊ณ„ ๋Œ€์ƒ์ด ๋ฉ๋‹ˆ๋‹ค.

PART 1 ยท ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

์ปจํ…์ŠคํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€

์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋‚ด๋Š” ๊ฑด ์งˆ๋ฌธ ํ•œ ์ค„ โ€” ๋ชจ๋ธ์ด ์‹ค์ œ๋กœ ๋ณด๋Š” ํ›จ์”ฌ ํฐ ์ž…๋ ฅ ์ „์ฒด

์ •์˜

์ปจํ…์ŠคํŠธ(Context) = ๋ชจ๋ธ์ด ์‘๋‹ต์„ ๋งŒ๋“ค๊ธฐ ์ง์ „์— ๋ณด๋Š” ์ž…๋ ฅ ์ „์ฒด. ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ, ๋„๊ตฌ ์ •์˜, ๊ฒ€์ƒ‰ ๋ฌธ์„œ, ๋Œ€ํ™” ๊ธฐ๋ก, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.




์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๊ฒƒ

"์ง€๋‚œ ๋ถ„๊ธฐ ๋งค์ถœ ์š”์•ฝํ•ด์ค˜" โ–


์งˆ๋ฌธ ํ•œ ์ค„ โ€” ์•ฝ 0.03K ํ† ํฐ



๋ชจ๋ธ์ด ๋ณด๋Š” ๊ฒƒ โ€” ์ปจํ…์ŠคํŠธ
System Prompt โ€” ์—ญํ• ยท๊ทœ์น™~2K

๋„๊ตฌ ์ •์˜ 20๊ฐœ~15K

๊ฒ€์ƒ‰๋œ ๋ฌธ์„œ 5๊ฐœ (RAG)~25K

๋ฉ”๋ชจ๋ฆฌ โ€” ๊ด€๋ จ ๊ธฐ์–ต~10K

๋Œ€ํ™” ๊ธฐ๋ก โ€” ์ด์ „ ํ„ด ์ „๋ถ€~50K

"์ง€๋‚œ ๋ถ„๊ธฐ ๋งค์ถœ ์š”์•ฝํ•ด์ค˜"0.03K



takeaway

์งˆ๋ฌธ์€ ์ „์ฒด ์ž…๋ ฅ์˜ 0.1%๋„ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€” ์‘๋‹ต ํ’ˆ์งˆ์€ ๋‚˜๋จธ์ง€ 99.9%, ์ฆ‰ ์ปจํ…์ŠคํŠธ์˜ ํ’ˆ์งˆ์ด ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

PART 1 ยท ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

์™œ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์›Œ์กŒ๋Š”๊ฐ€

๋‹จ์ผ ๋Œ€ํ™”์—์„œ๋Š” ๋ฌธ์ œ์—†๋˜ ์ปจํ…์ŠคํŠธ โ€” ์—์ด์ „ํŠธ ์‹œ๋Œ€์˜ ํญ์ฆ๊ณผ ๋งค ํ˜ธ์ถœ ๋‹ฌ๋ผ์ง€๋Š” ์ž…๋ ฅ

ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง (~2024) ์ •์  ํ”„๋กฌํ”„ํŠธ 1๊ฐœ๋ฅผ ์ž˜ ์ž‘์„ฑ
์‚ฌ๋žŒ์ด ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๋‹จ์ผ ๋Œ€ํ™”
๊ธฐ๋ฒ•: Few-shot, CoT, Role Prompting
์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง (2025~)
๋งค ํ˜ธ์ถœ๋งˆ๋‹ค ๋™์ ์œผ๋กœ ์ปจํ…์ŠคํŠธ ์กฐ๋ฆฝ
์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜๋ฐฑ ๋ฒˆ ๋ชจ๋ธ ํ˜ธ์ถœ โ€” ๋งค๋ฒˆ ๋‹ค๋ฅธ ์ž…๋ ฅ
์™œ ์ง€๊ธˆ ํ•„์š”ํ•œ๊ฐ€ ๋‹จ์ผ ๋Œ€ํ™”: ์‚ฌ๋žŒ์ด ์ง์ ‘ ํ”„๋กฌํ”„ํŠธ ๊ด€๋ฆฌ
์ปจํ…์ŠคํŠธ = System Prompt + User Message
์ˆ˜๋™ ์ตœ์ ํ™”๋กœ ์ถฉ๋ถ„
์—์ด์ „ํŠธ: ๋„๊ตฌ ๊ฒฐ๊ณผยท๋ฉ”๋ชจ๋ฆฌยท๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋งค๋ฒˆ ํ•ฉ๋ฅ˜
์ปจํ…์ŠคํŠธ = 6๊ฐœ ๋ ˆ์ด์–ด์˜ ๋™์  ์กฐํ•ฉ
์ž๋™ํ™”๋œ ์ „๋žต์ด ํ•„์ˆ˜
PART 1 ยท ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

๊ทธ๋ž˜์„œ โ€” ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง

ํญ์ฆํ•˜๊ณ  ๋งค๋ฒˆ ๋‹ฌ๋ผ์ง€๋Š” ์ž…๋ ฅ โ€” ์‚ฌ๋žŒ์ด ์•„๋‹ˆ๋ผ ์‹œ์Šคํ…œ์ด ๋‹ด๋‹นํ•˜๋Š” ์„ค๊ณ„

์ •์˜

์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง(Context Engineering) = ๋ชจ๋ธ์ด ๋ณด๋Š” ์ „์ฒด ์ž…๋ ฅ โ€” ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ, ๋„๊ตฌ ์ •์˜, ์ฐธ์กฐ ๋ฌธ์„œ, ๋Œ€ํ™” ๊ธฐ๋ก, ๋ฉ”๋ชจ๋ฆฌ โ€” ์„ ์‹œ์Šคํ…œ์œผ๋กœ ์„ค๊ณ„ํ•˜๋Š” ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค. (2025๋…„ KarpathyยทTobi Lรผtke๊ฐ€ ๊ณต์‹ํ™”)

์ „์ฒด ์œˆ๋„์šฐ๊ฐ€ ๋Œ€์ƒ

ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์ด ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€ ํ•œ ์ค„์— ์ง‘์ค‘ํ•œ๋‹ค๋ฉด, ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์€ ์œˆ๋„์šฐ ์ „์ฒด๋ฅผ ์„ค๊ณ„.

์—์ด์ „ํŠธ ์‹œ๋Œ€์˜ ํ•„์ˆ˜

๋„๊ตฌ ๊ฒฐ๊ณผยท๋ฉ”๋ชจ๋ฆฌยท๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋งค ํ˜ธ์ถœ ํ•ฉ๋ฅ˜ โ€” ์‚ฌ๋žŒ์ด ์•„๋‹Œ ์‹œ์Šคํ…œ์ด ์ปจํ…์ŠคํŠธ๋ฅผ ์กฐ๋ฆฝ.

5๋Œ€ ์ „๋žต์œผ๋กœ ๊ตฌ์„ฑ

LangChain 4๋Œ€ ์ „๋žต(Write ยท Select ยท Compress ยท Isolate) + ๋ฐฐ์น˜ยทํ˜•์‹(Optimize Format) โ€” ๊ฒ€์ฆ๋œ ์ „๋žต์˜ ์กฐํ•ฉ์œผ๋กœ ์„ค๊ณ„.

PART 1 ยท ํ”„๋กฌํ”„ํŠธ์—์„œ ์ปจํ…์ŠคํŠธ๋กœ

์ปจํ…์ŠคํŠธ๊ฐ€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ

๊ฐ™์€ ๋ชจ๋ธ, ๊ฐ™์€ ํ”„๋กฌํ”„ํŠธ ๊ธฐ๋ฒ•์ด๋ผ๋„ โ€” ์ปจํ…์ŠคํŠธ ํ’ˆ์งˆ์ด ์ตœ์ข… ์„ฑ๋Šฅ์„ ๊ฒฐ์ •

68โ†’98% ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™” ์ „ํ›„ ์ •ํ™•๋„ (Strands ์ž์ฒด ๋ฒค์น˜๋งˆํฌ โ€” ์ฝ”๋“œ ์กฐ์‚ฌ ํƒœ์Šคํฌ)
55% context_manager="auto" ๋น„์šฉ ์ ˆ๊ฐ (๊ฐ™์€ ๋ฒค์น˜๋งˆํฌ โ€” ํ† ํฐ ์ ˆ๋ฐ˜, ๋” ๋‚˜์€ ๊ฒฐ๊ณผ)
Context Rot ํ† ํฐ ์ˆ˜ ์ฆ๊ฐ€ ์‹œ ์„ฑ๋Šฅ ํ•˜๋ฝ ํ˜„์ƒ (Chroma ์—ฐ๊ตฌ)

์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๊ตฌ์กฐ

6-Layer Architecture โ€” ๊ฐ ๋ ˆ์ด์–ด๊ฐ€ ๋…๋ฆฝ ์„ค๊ณ„ ๋Œ€์ƒ

PART 2 ยท ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๊ตฌ์กฐ

์œˆ๋„์šฐ ๊ตฌ์กฐ

๋ชจ๋ธ์— ๋“ค์–ด๊ฐ€๋Š” ์ž…๋ ฅ์˜ ํ•ด๋ถ€๋„ โ€” ๋ ˆ์ด์–ด๋ณ„ ์„ฑ๊ฒฉ๊ณผ ํ† ํฐ ์˜ˆ์‚ฐ

์ž…๋ ฅ = 6๊ฐœ ๋ ˆ์ด์–ด์˜ ํ•ฉ์‚ฐ

๋ ˆ์ด์–ด๋งˆ๋‹ค ์„ฑ๊ฒฉ๊ณผ ์ตœ์ ํ™” ์ „๋žต์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค โ€” ๊ฐ๊ฐ์„ ๋…๋ฆฝ ์„ค๊ณ„ ๋Œ€์ƒ์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • 6-Layer โ€” System Prompt๋ถ€ํ„ฐ Optimize Format๊นŒ์ง€
  • ํ† ํฐ ์†Œ๋น„ โ€” ๋Œ€ํ™” ๊ธฐ๋ก์ด ์ตœ๋Œ€ ์†Œ๋น„์›
  • ํ† ํฐ ์˜ˆ์‚ฐ โ€” ํ•œ์ •๋œ ์ž์›์˜ ๋ฐฐ๋ถ„
  • ์›์น™ โ€” ํ•„์š”ํ•œ ๊ฒƒ๋งŒ, ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ
takeaway

1M ์ปจํ…์ŠคํŠธ๋ผ๋„ ๋ฌดํ•œ์ด ์•„๋‹™๋‹ˆ๋‹ค โ€” ๋ฌด์—‡์„ ๋„ฃ๊ณ  ๋ฌด์—‡์„ ๋บ„์ง€๊ฐ€ ํ•ต์‹ฌ ์„ค๊ณ„ ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค.

PART 2 ยท ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๊ตฌ์กฐ

6-Layer Architecture

๋ชจ๋ธ์— ๋“ค์–ด๊ฐ€๋Š” ์ž…๋ ฅ = 6๊ฐœ ๋ ˆ์ด์–ด์˜ ํ•ฉ์‚ฐ โ€” ๊ฐ๊ฐ์„ ๋…๋ฆฝ์ ์œผ๋กœ ์ตœ์ ํ™”

System Prompt

๋ถˆ๋ณ€ ์ง€์‹œ์–ด โ€” ์—ญํ• , ๊ทœ์น™, ํ˜•์‹. ๋ชจ๋“  ํ˜ธ์ถœ์— ๊ณ ์ •. Prompt Caching ๋Œ€์ƒ.

RAG Results

๋ฒกํ„ฐ ๊ฒ€์ƒ‰ยทํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ. ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ์™ธ๋ถ€ ์ง€์‹. Select ์ „๋žต์œผ๋กœ ํ•„ํ„ฐ๋ง.

Tool Results

์—์ด์ „ํŠธ๊ฐ€ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ. API ์‘๋‹ต, DB ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ. Compress๋กœ ํ•ต์‹ฌ๋งŒ ์ถ”์ถœ.

Memory

์ด์ „ ๋Œ€ํ™” ์š”์•ฝ, ์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„, ์—ํ”ผ์†Œ๋“œ ๊ธฐ์–ต. ์žฅ๊ธฐ/๋‹จ๊ธฐ ๊ตฌ๋ถ„ํ•˜์—ฌ Select.

Conversation

ํ˜„์žฌ ์„ธ์…˜์˜ ๋Œ€ํ™” ๊ธฐ๋ก. Sliding Window ๋˜๋Š” Summarizing์œผ๋กœ Compress.

Optimize Format

์ฝ˜ํ…์ธ  ๋ ˆ์ด์–ด๊ฐ€ ์•„๋‹Œ ๋ฐฐ์น˜ ์›์น™ โ€” ์ค‘์š” ์ •๋ณด๋Š” ์•ž๋’ค์—(Lost in the Middle ๋Œ€์‘).

PART 2 ยท ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๊ตฌ์กฐ

์š”์ฒญ ํ•œ ๊ฑด์˜ ํ† ํฐ ์†Œ๋น„

ํ”„๋กœ๋•์…˜ ์—์ด์ „ํŠธ์˜ ์š”์ฒญ 1๊ฑด์„ ๊ตฌ์„ฑํ•˜๋Š” ์†Œ๋น„์› โ€” ๋Œ€ํ™” ๊ธฐ๋ก์ด ์ตœ๋Œ€ ์†Œ๋น„์›

์†Œ๋น„์› (๋Œ€์‘ ๋ ˆ์ด์–ด)ํ† ํฐ ๊ทœ๋ชจ (์˜ˆ์‹œ)ํŠน์„ฑ
System Prompt~2K๊ณ ์ • โ€” ๋ชจ๋“  ํ˜ธ์ถœ์— ๋™์ผ
Tool Definitions (System ์†Œ์†)~15K๋„๊ตฌ 20๊ฐœ ๊ธฐ์ค€ โ€” ๋ฐฐํฌ ์‹œ์—๋งŒ ๋ณ€๊ฒฝ
RAG Results~25K๋ฌธ์„œ 5๊ฐœ ๊ธฐ์ค€ โ€” ์งˆ๋ฌธ๋งˆ๋‹ค ๊ต์ฒด
Tool Results~10K๋ฃจํ”„๊ฐ€ ๋Œ์ˆ˜๋ก ๋ˆ„์  โ€” Compress ๋Œ€์ƒ
Memory~10K๊ด€๋ จ ๊ธฐ์–ต๋งŒ ์„ ๋ณ„ํ•˜์—ฌ ์ฃผ์ž…
Conversation (๋Œ€ํ™” ๊ธฐ๋ก)~50K+ํ„ด๋งˆ๋‹ค ์ฆ๊ฐ€ โ€” ์ตœ๋Œ€ ์†Œ๋น„์›
์‚ฌ์šฉ์ž ์ž…๋ ฅ~0.1K๋งค๋ฒˆ ๋‹ค๋ฆ„ โ€” ๊ฐ€์žฅ ์ž‘์ง€๋งŒ ๊ฐ€์žฅ ๋™์ 
takeaway

์œ„ ์˜ˆ์‹œ๋งŒ ๋”ํ•ด๋„ ์š”์ฒญ 1๊ฑด์— 110K+ ํ† ํฐ โ€” ๋ฉ€ํ‹ฐํ„ด์ด ์Œ“์ด๋ฉด ๋” ์ปค์ง‘๋‹ˆ๋‹ค. ์••์ถ•๊ณผ ์„ ๋ณ„ ์—†์ด๋Š” ๋น„์šฉ์ด ๋Œ€ํ™” ๊ธธ์ด์— ๋น„๋ก€ํ•ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค.

PART 2 ยท ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ๊ตฌ์กฐ

ํ† ํฐ ์˜ˆ์‚ฐ ๊ด€๋ฆฌ

์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ = ํ•œ์ •๋œ ์ž์› โ€” ๋ฌด์—‡์„ ๋„ฃ๊ณ  ๋ฌด์—‡์„ ๋บ„์ง€๊ฐ€ ํ•ต์‹ฌ ์„ค๊ณ„ ๊ฒฐ์ •

1M ์ปจํ…์ŠคํŠธ๋ผ๋„

๋ฌดํ•œ์ด ์•„๋‹˜

  • ํ† ํฐ์ด ๋งŽ์„์ˆ˜๋ก ๋น„์šฉ ์„ ํ˜• ์ฆ๊ฐ€
  • ์ค‘๊ฐ„์— ๋ฌปํžŒ ์ •๋ณด๋Š” ํ™œ์šฉ๋„ ํ•˜๋ฝ (PART 4์—์„œ ์ƒ์„ธ)
  • ์ถ”๋ก  ์‹œ๊ฐ„ ์ฆ๊ฐ€ (KV Cache ๋ฉ”๋ชจ๋ฆฌ)
  • ๋ถˆํ•„์š”ํ•œ ์ •๋ณด = ๋…ธ์ด์ฆˆ = ์ •ํ™•๋„ ํ•˜๋ฝ

1M ํ† ํฐ์„ ๋‹ค ์ฑ„์šฐ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ด€๋ จ ์—†๋Š” ์ •๋ณด๋ฅผ ๋„ฃ์œผ๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒƒ๋งŒ, ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ

์„ค๊ณ„ ์›์น™

  • ๊ด€๋ จ์„ฑ ๋†’์€ ์ •๋ณด๋งŒ Select
  • ํฐ ๊ฒฐ๊ณผ๋ฌผ์€ Compressํ•˜์—ฌ ํ•ต์‹ฌ๋งŒ
  • ์ค‘์š”ํ•œ ์ •๋ณด๋Š” ์•ž/๋’ค์— ๋ฐฐ์น˜ (Optimize Format)
  • ๋…๋ฆฝ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์„œ๋ธŒํƒœ์Šคํฌ๋Š” Isolate

์ ์€ ํ† ํฐ์œผ๋กœ ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

takeaway

๋ชฉํ‘œ๋Š” ์œˆ๋„์šฐ๋ฅผ ์ฑ„์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ ์€ ํ† ํฐ์œผ๋กœ ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค โ€” ๊ด€๋ จ ์—†๋Š” ์ •๋ณด๋Š” ๋…ธ์ด์ฆˆ์ž…๋‹ˆ๋‹ค.

5๋Œ€ ์ „๋žต

Write ยท Select ยท Compress ยท Isolate ยท Optimize Format

PART 3 ยท 5๋Œ€ ์ „๋žต

5๋Œ€ ์ „๋žต

์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ๋‹ค์Šค๋ฆฌ๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ์ ‘๊ทผ

Write ยท Select ยท Compress ยท Isolate ยท Optimize Format

์œˆ๋„์šฐ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๊ฒจ๋ƒฅํ•˜๋Š” ์ „๋žต๋“ค โ€” ๋‹จ์ผ ์ ์šฉ์ด ์•„๋‹ˆ๋ผ ์กฐํ•ฉ์ด ํ”„๋กœ๋•์…˜ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

  • Write โ€” ๋ช…์‹œ ์ž‘์„ฑยท์™ธ๋ถ€ ์ €์žฅ
  • Select โ€” ๊ด€๋ จ ์ •๋ณด๋งŒ ์„ ๋ณ„
  • Compress โ€” ์š”์•ฝยท์˜คํ”„๋กœ๋”ฉ ์••์ถ•
  • Isolate โ€” ์„œ๋ธŒํƒœ์Šคํฌ ๊ฒฉ๋ฆฌ
  • Optimize Format โ€” ๋ฐฐ์น˜ยทํ˜•์‹ ์ตœ์ ํ™”
takeaway

์ „๋žต๋งˆ๋‹ค ๊ฒจ๋ƒฅํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค โ€” ๊ฐ€์žฅ ํฐ ํ† ํฐ ์†Œ๋น„์›์ด ์–ด๋””์ธ๊ฐ€๊ฐ€ ์ „๋žต์˜ ๋น„์ค‘์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

PART 3 ยท 5๋Œ€ ์ „๋žต

5๋Œ€ ์ „๋žต ๋ฒ”์ฃผ

์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๊ฒจ๋ƒฅํ•˜๋Š” ์ „๋žต๋“ค

Write

  • ๋ชจ๋ธ์— ๋ช…์‹œ์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ฃผ์ž…
  • System Prompt, ๊ฐ€์ด๋“œ๋ผ์ธ, ๊ทœ์น™ ์ •์˜
  • "๋ชจ๋ธ์ด ๋ชจ๋ฅผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ"์„ ์ง์ ‘ ์จ์ค€๋‹ค

Select

  • ๊ด€๋ จ ์ •๋ณด๋งŒ ๊ณจ๋ผ์„œ ์ปจํ…์ŠคํŠธ์— ํฌํ•จ
  • RAG ๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง, ๊ด€๋ จ ๊ธฐ์–ต๋งŒ ์ถ”์ถœ
  • ๋ฌด๊ด€ํ•œ ์ •๋ณด = ๋…ธ์ด์ฆˆ โ€” ์ •ํ™•๋„ ํ•˜๋ฝ

Compress

  • ๊ธด ์ •๋ณด๋ฅผ ์งง๊ฒŒ ์••์ถ•ํ•˜์—ฌ ํ† ํฐ ์ ˆ์•ฝ
  • ์š”์•ฝ ยท ํ•ต์‹ฌ ์ถ”์ถœ ยท ๋Œ€ํ™” ๊ธฐ๋ก ์••์ถ•
  • Strands: Summarizing + ContextOffloader

Isolate

  • ๋…๋ฆฝ ์„œ๋ธŒํƒœ์Šคํฌ๋ฅผ ๋ถ„๋ฆฌํ•ด ์œ„์ž„
  • ๋ฉ”์ธ ์ปจํ…์ŠคํŠธ ์˜ค์—ผ ๋ฐฉ์ง€
  • ์„œ๋ธŒํƒœ์Šคํฌ๋งˆ๋‹ค ๊นจ๋—ํ•œ ์ปจํ…์ŠคํŠธ

Optimize Format

  • ๋ฐฐ์น˜ ์ˆœ์„œ์™€ ํ˜•์‹์„ ์ตœ์ ํ™”
  • ์ค‘์š” ์ •๋ณด๋Š” ์•ž/๋’ค์— โ€” ๊ทผ๊ฑฐ๋Š” PART 4
  • ๋งˆํฌ๋‹ค์šด ๊ตฌ์กฐํ™”, Checkpoint Injection
takeaway

๋‹ค์„ฏ ์ „๋žต์€ ์กฐํ•ฉํ•ด์„œ ์”๋‹ˆ๋‹ค โ€” ๊ฐ ์ „๋žต์ด ๋‹ค๋ฅธ ๋ ˆ์ด์–ด์— ์ ์šฉ๋˜์–ด ํšจ๊ณผ๊ฐ€ ๋ˆ„์ ๋ฉ๋‹ˆ๋‹ค.

PART 3 ยท 5๋Œ€ ์ „๋žต

์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ 1์ฐจ ์ „๋žต

์›Œํฌ๋กœ๋“œ์˜ ์ตœ๋Œ€ ํ† ํฐ ์†Œ๋น„์›์ด ์–ด๋””๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ์šฐ์„  ์ „๋žต

์‹œ๋‚˜๋ฆฌ์˜ค1์ฐจ ์ „๋žต์ด์œ 
๊ณ ๊ฐ ์ง€์› ์ฑ—๋ด‡ (๋‹ค์ค‘ ์„ธ์…˜)Write์„ธ์…˜ ๊ฐ„ ์ƒํƒœ ์ง€์†์ด ํ•„์ˆ˜
๋ฌธ์„œ Q&ASelect๋Œ€๋Ÿ‰ ๋ฌธ์„œ์—์„œ ๊ด€๋ จ ๋ถ€๋ถ„๋งŒ
์žฅ๊ธฐ ์‹คํ–‰ ์ฝ”๋”ฉ ์—์ด์ „ํŠธCompress๋Œ€ํ™” ๋ˆ„์ ์œผ๋กœ ์œˆ๋„์šฐ ์†Œ์ง„
๋ฉ€ํ‹ฐ ๋„๋ฉ”์ธ ์—…๋ฌด ์ž๋™ํ™”Isolate๋„๋ฉ”์ธ๋ณ„ ์ „๋ฌธ๊ฐ€ ๋ถ„๋ฆฌ
๋ฐ˜๋ณต ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธOptimize Format๋™์ผ ๊ตฌ์กฐ ๋ฐ˜๋ณต ์ตœ์ ํ™”
takeaway

1์ฐจ ์ „๋žต์„ ์ •ํ•œ ๋’ค ๋‚˜๋จธ์ง€๋ฅผ ์–น์Šต๋‹ˆ๋‹ค โ€” ๋Œ€ํ™”๊ฐ€ ๊ธธ๋ฉด Compress, ๋ฌธ์„œ๊ฐ€ ๋งŽ์œผ๋ฉด Select, ๋„๋ฉ”์ธ์ด ๋„“์œผ๋ฉด Isolate ๋น„์ค‘์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

PART 3 ยท 5๋Œ€ ์ „๋žต

Strands SDK ๊ตฌํ˜„

5๋Œ€ ์ „๋žต์˜ Strands Agents SDK ๊ตฌํ˜„ ๋Œ€์‘

Write โ†’ System Prompt

Agent(system_prompt="...")
Skills ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ JIT ์ฃผ์ž…

Select โ†’ Memory

AgentCoreMemorySessionManager
retrieval_config๋กœ ํ•„ํ„ฐ๋ง

Compress โ†’ Context Manager

context_manager="auto"
Summarizing + ContextOffloader

Isolate โ†’ Subagent

Swarm, Graph
์„œ๋ธŒ์—์ด์ „ํŠธ ์œ„์ž„

Optimize Format โ†’ ๋ฐฐ์น˜

์ •์  ์šฐ์„  ํ”„๋กฌํ”„ํŠธ ๊ตฌ์กฐ
cachePoint ๋ฐฐ์น˜ (PART 5)

takeaway

Write๋Š” system_prompt, Select๋Š” Memory ๊ฒ€์ƒ‰, Compress๋Š” context_manager, Isolate๋Š” ์„œ๋ธŒ์—์ด์ „ํŠธ, Optimize Format์€ ๋ฐฐ์น˜ ๊ตฌ์กฐ โ€” ๋‹ค์„ฏ ์ „๋žต ๋ชจ๋‘ ๋Œ€์‘ ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

Poisoning ยท Distraction ยท Confusion ยท Clash

PART 4 ยท ์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

์ž˜๋ชป๋œ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋งŒ๋“œ๋Š” 4๊ฐ€์ง€ ์‹คํŒจ์™€ ๊ทธ ์ •๋Ÿ‰ ์ธก์ •๋ฒ•

Poisoning ยท Distraction ยท Confusion ยท Clash

์ปจํ…์ŠคํŠธ๊ฐ€ ์ž˜๋ชป๋˜๋ฉด ๋ชจ๋ธ์ด ์•„๋ฌด๋ฆฌ ์ข‹์•„๋„ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค โ€” ์˜ฌ๋ฐ”๋ฅธ ์ง„๋‹จ์ด ๋Œ€์‘์˜ ์„ ํ–‰ ์กฐ๊ฑด์ž…๋‹ˆ๋‹ค.

  • Poisoning โ€” ์ž˜๋ชป๋œ ์ •๋ณด์˜ ์˜ค์—ผ
  • Distraction โ€” ๋ฌด๊ด€ํ•œ ์ •๋ณด์˜ ์‚ฐ๋งŒ
  • Confusion โ€” ๋ชจ์ˆœ ์ •๋ณด์˜ ํ˜ผ๋™
  • Clash โ€” ๊ทœ์น™๊ณผ ์ปจํ…์ŠคํŠธ์˜ ์ถฉ๋Œ
  • ์ธก์ • โ€” ๋น„์šฉ๊ณผ ํ’ˆ์งˆ์˜ ๋™์‹œ ์ถ”์ 
takeaway

์‹คํŒจ ๋ชจ๋“œ๋งˆ๋‹ค ๋Œ€์‘ ์ „๋žต์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค โ€” ์ฆ์ƒ์„ ๋ณด๊ณ  ์›์ธ์„ ์ง„๋‹จํ•ด์•ผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์–ด๋ฅผ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

PART 4 ยท ์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

4๋Œ€ ์‹คํŒจ ๋ชจ๋“œ

์ปจํ…์ŠคํŠธ๊ฐ€ ์ž˜๋ชป๋˜๋ฉด ๋ชจ๋ธ์ด ์•„๋ฌด๋ฆฌ ์ข‹์•„๋„ ์‹คํŒจํ•œ๋‹ค โ€” ๋ฐฉ์–ดํ•ด์•ผ ํ•  4๊ฐ€์ง€

Poisoning (์˜ค์—ผ)

์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์ปจํ…์ŠคํŠธ์— ํฌํ•จ
๋ชจ๋ธ์ด ํ‹€๋ฆฐ ์ •๋ณด๋ฅผ ์‚ฌ์‹ค๋กœ ๋‹ต๋ณ€

Distraction (์‚ฐ๋งŒ)

๋ฌด๊ด€ํ•œ ์ •๋ณด๊ฐ€ attention์„ ๋ถ„์‚ฐ
ํ•ต์‹ฌ์„ ๋†“์น˜๊ณ  ์—‰๋šฑํ•œ ๋‹ต๋ณ€

Confusion (ํ˜ผ๋™)

๋น„์Šทํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ •๋ณด๊ฐ€ ์ถฉ๋Œ
๋ชจ๋ธ์ด ์–ด๋–ค ๊ฒƒ์„ ๋”ฐ๋ฅผ์ง€ ํ˜ผ๋ž€

Clash (์ถฉ๋Œ)

์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์™€ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ชจ์ˆœ
๊ทœ์น™ ์œ„๋ฐ˜ ๋˜๋Š” ๋ฌด์‹œ

takeaway

๋„ท ๋‹ค ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ์ปจํ…์ŠคํŠธ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค โ€” ๋ฌธ์„œ ํ’ˆ์งˆ, ๊ด€๋ จ์„ฑ ํ•„ํ„ฐ, ๋‹จ์ผ ์†Œ์Šค, ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์œผ๋กœ ๊ฐ๊ฐ ๋ฐฉ์–ดํ•ฉ๋‹ˆ๋‹ค.

PART 4 ยท ์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

Lost in the Middle โ€” ์ค‘๊ฐ„ ์ •๋ณด์˜ ์‹ค์ข…

4๋Œ€ ์‹คํŒจ ๋ชจ๋“œ์™€ ๋ณ„๊ฐœ์˜ ๊ตฌ์กฐ์  ํ˜„์ƒ โ€” ๊ธด ์ปจํ…์ŠคํŠธ ์ค‘๊ฐ„ ์ •๋ณด์˜ attention ์•ฝํ™” (Stanford NLP)

ํ˜„์ƒ

๊ตฌ์กฐ์  ํ•œ๊ณ„

  • ๊ธด ์ปจํ…์ŠคํŠธ์˜ ์ค‘๊ฐ„ ์ •๋ณด์— attention ์•ฝํ™”
  • ์•ž๊ณผ ๋’ค์˜ ์ •๋ณด๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์ž˜ ํ™œ์šฉ
  • ์ปจํ…์ŠคํŠธ๊ฐ€ ๊ธธ์ˆ˜๋ก ์‹ฌํ•ด์ง
  • ๋ชจ๋ธ ๊ต์ฒด๋กœ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๊ตฌ์กฐ์  ๋ฌธ์ œ

Stanford NLP ์—ฐ๊ตฌ์—์„œ ํ™•์ธ๋œ LLM์˜ ๊ตฌ์กฐ์  ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž˜ ์จ๋„ ๋ฐฐ์น˜๊ฐ€ ์ž˜๋ชป๋˜๋ฉด ์ •๋ณด๊ฐ€ ์‹ค์ข…๋ฉ๋‹ˆ๋‹ค.

๋Œ€์‘

Optimize Format

  • ์ค‘์š” ์ •๋ณด๋ฅผ ์•ž(System Prompt ์งํ›„)์— ๋ฐฐ์น˜
  • ๋˜๋Š” ๋’ค(์‚ฌ์šฉ์ž ์งˆ๋ฌธ ์ง์ „)์— ๋ฐฐ์น˜
  • Checkpoint Injection โ€” 5 ์•ก์…˜๋งˆ๋‹ค ๋ชฉํ‘œ ์žฌํ™•์ธ ์ฃผ์ž…
  • ๊ทผ๋ณธ ๋Œ€์‘์€ ์ปจํ…์ŠคํŠธ๋ฅผ ์งง๊ฒŒ โ€” Compress + Select

๋ฐฐ์น˜ ์ˆœ์„œ๊ฐ€ ๊ณง ์ „๋žต์ž…๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ๊ธธ๊ฒŒ ์‹คํ–‰๋ ์ˆ˜๋ก ๋ชฉํ‘œ ์žฌํ™•์ธ ์ฃผ์ž…์ด ๋ฐฉํ–ฅ ์ดํƒˆ์„ ๋ง‰์Šต๋‹ˆ๋‹ค.

takeaway

์ค‘๊ฐ„์— ๋„ฃ์€ ์ •๋ณด๋Š” ์—†๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์•ž๋’ค๋กœ ๋ฐฐ์น˜ํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” ์ค„์ž…๋‹ˆ๋‹ค.

PART 4 ยท ์‹คํŒจ ๋ชจ๋“œ์™€ ์ธก์ •

์ธก์ • ์ง€ํ‘œ

์ปจํ…์ŠคํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํšจ๊ณผ๋ฅผ ์ •๋Ÿ‰์ ์œผ๋กœ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

์ง€ํ‘œ์ธก์ • ๋Œ€์ƒ๊ฐœ์„  ๋ฐฉํ–ฅ
Task Completion Rate์—์ด์ „ํŠธ๊ฐ€ ํƒœ์Šคํฌ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋Š” ๋น„์œจ์ปจํ…์ŠคํŠธ ํ’ˆ์งˆ โ†‘ โ†’ ์™„๋ฃŒ์œจ โ†‘
Correction Rounds์‚ฌ์šฉ์ž๊ฐ€ "์•„๋‹ˆ, ๊ทธ๊ฒŒ ์•„๋‹ˆ๋ผ"๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ํšŸ์ˆ˜๊ด€๋ จ ์ •๋ณด Select โ†‘ โ†’ ๊ต์ • โ†“
Token Cost per Taskํƒœ์Šคํฌ 1๊ฑด ์™„๋ฃŒ์— ์†Œ๋น„๋˜๋Š” ํ‰๊ท  ํ† ํฐCompress โ†‘ โ†’ ๋น„์šฉ โ†“
Context Hit Rate์ฃผ์ž…๋œ ์ปจํ…์ŠคํŠธ๊ฐ€ ์‹ค์ œ ๋‹ต๋ณ€์— ์‚ฌ์šฉ๋œ ๋น„์œจSelect ์ •๋ฐ€๋„ โ†‘ โ†’ ํžˆํŠธ์œจ โ†‘
takeaway

ํ† ํฐ์„ ์ค„์˜€๋Š”๋ฐ ์™„๋ฃŒ์œจ์ด ๋–จ์–ด์ง€๋ฉด ์˜๋ฏธ ์—†๋Š” ์ตœ์ ํ™”์ž…๋‹ˆ๋‹ค โ€” ๋น„์šฉ๊ณผ ํ’ˆ์งˆ์„ ์Œ์œผ๋กœ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

Prompt Caching

๋ฐ˜๋ณต ์ปจํ…์ŠคํŠธ ๋น„์šฉ 90% ์ ˆ๊ฐ โ€” ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„

PART 5 ยท Prompt Caching

Prompt Caching

๋ฐ˜๋ณต ์ปจํ…์ŠคํŠธ์˜ ์žฌ๊ณ„์‚ฐ์„ ์ƒ๋žตํ•˜๋Š” ๋น„์šฉ ์ตœ์ ํ™”

๋ฐ˜๋ณต ์ปจํ…์ŠคํŠธ๋Š” ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐ

๊ณ ์ • ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์บ์‹œ์— ์ €์žฅํ•ด ์žฌ๊ณ„์‚ฐ์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค โ€” ์ปจํ…์ŠคํŠธ ์ตœ์ ํ™”์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

  • ์›๋ฆฌ โ€” ์ฒซ ํ˜ธ์ถœ ๊ธฐ๋ก, ์ดํ›„ ์ฐธ์กฐ
  • ์š”์œจ โ€” ์ฝ๊ธฐ 0.1ร— ยท ๊ธฐ๋ก 1.25ร—
  • ๊ตฌ์กฐ โ€” ์ •์  ์šฐ์„  ํ”„๋กฌํ”„ํŠธ ๋ฐฐ์น˜
  • ์ ์šฉ โ€” Converse API cachePoint
takeaway

์—์ด์ „ํŠธ๋Š” ๊ฐ™์€ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ˆ˜๋ฐฑ ๋ฒˆ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค โ€” ์บ์‹ฑ๋งŒ์œผ๋กœ ๋ฐ˜๋ณต ๊ตฌ๊ฐ„ ์ž…๋ ฅ ๋น„์šฉ์ด 90% ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

PART 5 ยท Prompt Caching

์บ์‹œ ์žˆ์Œ vs ์—†์Œ

๋ฐ˜๋ณต๋˜๋Š” ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์™€ ๊ณ ์ • ๋ฌธ์„œ๋ฅผ ์บ์‹œ โ€” ๋น„์šฉ์„ ๊ทน์ ์œผ๋กœ ์ ˆ๊ฐ

์บ์‹œ ์—†์Œ

๋งค๋ฒˆ ์ „์ฒด ์ „์†ก

  • ๋ชจ๋“  ํ˜ธ์ถœ์— System Prompt ์ „์ฒด ์ „์†ก
  • ๊ณ ์ • ๋ฌธ์„œ(RAG ๊ฒฐ๊ณผ)๋„ ๋งค๋ฒˆ ํ† ํฐ ์†Œ๋น„
  • ์—์ด์ „ํŠธ: 100ํšŒ ํ˜ธ์ถœ ร— ์ „์ฒด ๋น„์šฉ
  • ์žฅ๋ฌธ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์ผ์ˆ˜๋ก ๋น„์šฉ ํญ์ฆ

์—์ด์ „ํŠธ๊ฐ€ 100๋ฒˆ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜๋ฉด, System Prompt 4,000 ํ† ํฐ ร— 100ํšŒ = 40๋งŒ ํ† ํฐ์„ ๋™์ผ ๋‚ด์šฉ์— ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

์บ์‹œ ์žˆ์Œ

์ฒซ ํšŒ๋งŒ ์ „์†ก, ์ดํ›„ 90% ํ• ์ธ

  • ์ฒซ ํ˜ธ์ถœ์— ์บ์‹œ ์ƒ์„ฑ (cache_write ๋น„์šฉ)
  • ์ดํ›„ ํ˜ธ์ถœ์€ ์บ์‹œ ์ฐธ์กฐ (cache_read = 90% ํ• ์ธ)
  • ์—์ด์ „ํŠธ: 1ํšŒ ์ „์ฒด + 99ํšŒ ์บ์‹œ
  • TTL ๊ธฐ๋ณธ 5๋ถ„ (1์‹œ๊ฐ„์€ ์ผ๋ถ€ ๋ชจ๋ธ ํ•œ์ •) ๋‚ด ์žฌ์‚ฌ์šฉ

Claude Prompt Caching: cache_read๋Š” input ๋Œ€๋น„ 90% ์ €๋ ด. ๋ชจ๋ธ๋ณ„ ์ตœ์†Œ ํ† ํฐ(Sonnet 4.6=1,024, Sonnet 4.5ยทHaiku 4.5ยทOpus 4.5+=4,096 โ€” Bedrock ๊ธฐ์ค€) ์ด์ƒ์ด๋ฉด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

takeaway

2ํšŒ ์ด์ƒ ํ˜ธ์ถœํ•˜๋ฉด ์ด๋“์ž…๋‹ˆ๋‹ค โ€” ํ˜ธ์ถœ ๋นˆ๋„๊ฐ€ ๋†’์„์ˆ˜๋ก ์ ˆ๊ฐ ํญ์ด ์ปค์ง‘๋‹ˆ๋‹ค.

PART 5 ยท Prompt Caching

์บ์‹œ ์š”์œจ๊ณผ ์ œ์•ฝ

์บ์‹œ๋Š” ๊ณต์งœ๊ฐ€ ์•„๋‹˜ โ€” ๊ธฐ๋ก ๋น„์šฉยทTTLยท๊ฒฉ๋ฆฌ ๋ฒ”์œ„๊นŒ์ง€ ์•Œ์•„์•ผ ์„ค๊ณ„ ๊ฐ€๋Šฅ

ํ•ญ๋ชฉ๊ฐ’๋น„๊ณ 
์บ์‹œ ์ฝ๊ธฐ (read)์ž…๋ ฅ ์š”์œจ์˜ 0.1ร—๋ฐ˜๋ณต ๊ตฌ๊ฐ„ 90% ์ ˆ๊ฐ
์บ์‹œ ๊ธฐ๋ก (write)์ž…๋ ฅ ์š”์œจ์˜ 1.25ร—5๋ถ„ TTL ๊ธฐ์ค€ โ€” 1์‹œ๊ฐ„ TTL ๊ธฐ๋ก์€ 2ร—
TTL๊ธฐ๋ณธ 5๋ถ„์บ์‹œ ์ ์ค‘ ์‹œ ๋ฌด๋ฃŒ ๊ฐฑ์‹  โ€” 1์‹œ๊ฐ„ TTL์€ 4.5 ์„ธ๋Œ€ + Sonnet 4.6 ยท Opus 4.6 ยท Opus 4.8 ยท Sonnet 5 ยท Opus 5 ์ง€์› (๊ธฐ๋ก 2ร—)
์ฒดํฌํฌ์ธํŠธ์ตœ๋Œ€ 4๊ฐœsystem ยท toolConfig ยท messages ์–ด๋””๋“  ๋ฐฐ์น˜
์ตœ์†Œ ํ† ํฐ๋ชจ๋ธ๋ณ„ 1,024~4,096Sonnet 4.6=1,024 ยท Sonnet 4.5/Haiku 4.5/Opus 4.5+=4,096 (Bedrock ๊ธฐ์ค€)
์บ์‹œ ๊ฒฉ๋ฆฌBedrock: AWS ๊ณ„์ • ๋‹จ์œ„Anthropic API: workspace ๋‹จ์œ„ โ€” ์กฐ์ง ๊ฐ„ ๊ณต์œ  ์—†์Œ
takeaway

๊ธฐ๋ก์€ 1.25๋ฐฐ ๋น„์‹ธ์ง€๋งŒ ์ฝ๊ธฐ๊ฐ€ 0.1๋ฐฐ์ž…๋‹ˆ๋‹ค โ€” ๋‘ ๋ฒˆ์งธ ํ˜ธ์ถœ๋ถ€ํ„ฐ ์ด๋“์ด๊ณ , ์ ์ค‘์ด ์ด์–ด์ง€๋Š” ํ•œ TTL์€ ๋ฌด๋ฃŒ๋กœ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

PART 5 ยท Prompt Caching

์ •์  ์šฐ์„  ํ”„๋กฌํ”„ํŠธ ๊ตฌ์กฐ

๊ณ ์ • ๋ ˆ์ด์–ด๋ฅผ ์ƒ๋‹จ์— ์Œ“์•„ ์บ์‹œํ•˜๊ณ , ๊ฐ€๋ณ€ ๋ ˆ์ด์–ด๋งŒ ํ•˜๋‹จ์—์„œ ๊ต์ฒดํ•˜๋Š” ๊ตฌ์กฐ

System Prompt (๊ณ ์ •)

์—ญํ• ยท๊ทœ์น™ยทํ˜•์‹ โ€” ๋ชจ๋“  ํ˜ธ์ถœ์— ๋™์ผ โ†’ ํ•ญ์ƒ ์บ์‹œ ๋Œ€์ƒ

Tool Definitions (๊ณ ์ •)

๋„๊ตฌ ์Šคํ‚ค๋งˆ ๋ชฉ๋ก โ€” ์—์ด์ „ํŠธ ์ˆ˜๋ช… ๋™์•ˆ ๋ณ€ํ•˜์ง€ ์•Š์Œ

Reference Documents (์ค€๊ณ ์ •)

RAG ๊ฒฐ๊ณผ, ๊ฐ€์ด๋“œ ๋ฌธ์„œ โ€” ์„ธ์…˜ ๋‚ด ๊ณ ์ •. cachePoint ์ง€์ •

Conversation History (๊ฐ€๋ณ€)

์ด์ „ ๋Œ€ํ™” โ€” ํ„ด๋งˆ๋‹ค ์ฆ๊ฐ€. ์บ์‹œ ์–ด๋ ค์›€ โ†’ Compress ์ „๋žต ์ ์šฉ

User Message (๊ฐ€๋ณ€)

ํ˜„์žฌ ์งˆ๋ฌธ โ€” ๋งค๋ฒˆ ๋‹ค๋ฆ„. ์บ์‹œ ๋ถˆ๊ฐ€

PART 5 ยท Prompt Caching

Prompt Caching ์ ์šฉ

Bedrock Converse API์—์„œ ์บ์‹œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

python
import boto3

bedrock = boto3.client('bedrock-runtime', region_name='us-east-1')

response = bedrock.converse(
    modelId='us.anthropic.claude-sonnet-4-6',
    system=[
        {'text': '๋‹น์‹ ์€ AWS Solutions Architect์ž…๋‹ˆ๋‹ค. ...(๊ธด ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ)...'},
        # โ‘  ์บ์‹œ ์ฒดํฌํฌ์ธํŠธ โ€” text์™€ ๊ฐ™์€ dict๊ฐ€ ์•„๋‹ˆ๋ผ ๋ณ„๋„ ๋ธ”๋ก (๋‹จ์ผ ๋ฉค๋ฒ„ ์œ ๋‹ˆ์˜จ)
        {'cachePoint': {'type': 'default'}},
    ],
    messages=[
        {'role': 'user', 'content': [{'text': '์งˆ๋ฌธ'}]}
    ],
)

# โ‘ก ์‘๋‹ต์˜ usage์—์„œ ์บ์‹œ ํžˆํŠธ ํ™•์ธ
usage = response['usage']
# cacheReadInputTokens > 0์ด๋ฉด ์บ์‹œ ์ ์ค‘
  • cachePoint โ€” ์—ฌ๊ธฐ๊นŒ์ง€์˜ ํ”„๋ฆฌํ”ฝ์Šค๋ฅผ ์บ์‹œํ•˜๋ผ๋Š” ํ‘œ์‹œ. system ยท toolConfig ยท messages.content์— ๋ฐฐ์น˜, ์ตœ๋Œ€ 4๊ฐœ
  • ๊ณ ์ • ๋ ˆ์ด์–ด ๋ฐ”๋กœ ๋’ค์— ์‚ฝ์ž… โ€” ๊ธด ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ ๋์ด ์บ์‹œ ๊ฒฝ๊ณ„๊ฐ€ ๋จ
  • usage๋กœ ๊ฒ€์ฆ โ€” cacheWriteInputTokens๋Š” ์ฒซ ํ˜ธ์ถœ์˜ ๊ธฐ๋ก๋Ÿ‰, cacheReadInputTokens > 0์ด๋ฉด ์ ์ค‘(90% ํ• ์ธ ๊ตฌ๊ฐ„)
PART 5 ยท Prompt Caching

๋‹ค์Œ ๋‹จ๊ณ„: ํ•˜๋„ค์Šค ์—”์ง€๋‹ˆ์–ด๋ง

์ปจํ…์ŠคํŠธ๋„ ๊ฒฐ๊ตญ ํ•˜๋„ค์Šค์˜ ์ผ๋ถ€ โ€” ๋ชจ๋ธ์„ ๊ฐ์‹ธ๋Š” ์ „์ฒด ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์„ค๊ณ„

์ปจํ…์ŠคํŠธ๋Š” ํ•˜๋„ค์Šค์˜ ํ•œ ๋ ˆ์ด์–ด

ํ”„๋กฌํ”„ํŠธ โ†’ ์ปจํ…์ŠคํŠธ๋ฅผ ๋งˆ์Šคํ„ฐํ–ˆ๋‹ค๋ฉด, ์ด์ œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ยท๋„๊ตฌยท๋ฉ”๋ชจ๋ฆฌยท๊ฐ€๋“œ๋ ˆ์ผยทํ‰๊ฐ€๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ํ•˜๋„ค์Šค ์—”์ง€๋‹ˆ์–ด๋ง์ž…๋‹ˆ๋‹ค.

  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜
  • ๋„๊ตฌ
  • ๋ฉ”๋ชจ๋ฆฌ
  • ๊ฐ€๋“œ๋ ˆ์ผ
  • ํ‰๊ฐ€
  • AgentCore
takeaway

"๋ฌด์—‡์„ ๋ณด์—ฌ์ค„๊นŒ"์˜ ๋‹ค์Œ ์งˆ๋ฌธ์€ "์–ด๋–ค ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ• ๊นŒ"์ž…๋‹ˆ๋‹ค โ€” ๋ชจ๋ธ์„ ๊ฐ์‹ธ๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ ์ „์ฒด์˜ ์„ค๊ณ„๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

์ปจํ…์ŠคํŠธ๋ฅผ ์„ค๊ณ„ํ•˜๋ฉด, ๋ชจ๋ธ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ชจ๋ธ์„ ๊ฐ์‹ธ๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ ์ „์ฒด๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ํ•˜๋„ค์Šค ์—”์ง€๋‹ˆ์–ด๋ง.