AI μ—μ΄μ „νŠΈ 루프 섀계: 툴 ν˜ΈμΆœλΆ€ν„° μ’…λ£Œ μ‘°κ±΄κΉŒμ§€

AI μ—μ΄μ „νŠΈκ°€ λͺ¨λΈ 호좜, 툴 μ‹€ν–‰, 관찰을 λ°˜λ³΅ν•˜λŠ” 원리와 μž‘μ—… μ™„λ£ŒΒ·ν•œλ„ λ„λ‹¬Β·μŠΉμΈ λŒ€κΈ°λΌλŠ” μ’…λ£Œ 쑰건을 μ„€λͺ…ν•©λ‹ˆλ‹€. OpenAI, Claude, Vercel, LangGraph의 μ œμ–΄ 방식을 λΉ„κ΅ν•˜κ³ , λ¬΄ν•œ 반볡과 툴 였λ₯˜, μ»¨ν…μŠ€νŠΈ 증가λ₯Ό μ§„λ‹¨ν•˜λŠ” 방법을 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€.

κ²Œμ‹œμΌ

μž‘μ„±μž
AI μ—μ΄μ „νŠΈ 루프 섀계: 툴 ν˜ΈμΆœλΆ€ν„° μ’…λ£Œ μ‘°κ±΄κΉŒμ§€

AI μ—μ΄μ „νŠΈ λ£¨ν”„μ—λŠ” μ˜λ„μ μœΌλ‘œ μ„€κ³„ν•œ μ’…λ£Œ 쑰건이 3κ°€μ§€ ν•„μš”ν•©λ‹ˆλ‹€. μž‘μ—…μ„ μ™„λ£Œν–ˆκ±°λ‚˜, ν•œλ„μ— λ„λ‹¬ν–ˆκ±°λ‚˜, λ‹€μŒ μž‘μ—…μ— μ•žμ„œ μ‚¬λžŒμ˜ νŒλ‹¨μ΄ ν•„μš”ν•œ κ²½μš°μž…λ‹ˆλ‹€. 이런 μ œμ–΄ μž₯μΉ˜κ°€ μ—†μœΌλ©΄ κ°„λ‹¨ν•œ μš”μ²­λ„ 끝을 μ•Œ 수 μ—†λŠ” λͺ¨λΈ 호좜과 툴 μ‹€ν–‰ μ‹œλ„λ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒ 행동은 λͺ¨λΈμ΄ μ œμ•ˆν•©λ‹ˆλ‹€. κ·Έ 행동을 싀행해도 λ˜λŠ”μ§€ νŒλ‹¨ν•˜κ³ , μ‹€ν–‰ κ²°κ³Όλ₯Ό κΈ°λ‘ν•˜κ³ , λͺ¨λΈμ„ λ‹€μ‹œ ν˜ΈμΆœν• μ§€ κ²°μ •ν•˜λŠ” μ£Όμ²΄λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€. 처음 μ—μ΄μ „νŠΈλ₯Ό λ§Œλ“€ λ•Œλ„, λ©ˆμΆ”μ§€ μ•Šμ€ μ—μ΄μ „νŠΈμ˜ 원인을 쑰사할 λ•Œλ„ 이 μ—­ν•  ꡬ뢄뢀터 λΆ„λͺ…νžˆ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ•„λž˜μ— μ„€λͺ…ν•œ ν”„λ ˆμž„μ›Œν¬ λ™μž‘μ€ 2026λ…„ 10μ›” 24일 각 κ°œλ°œμ‚¬μ˜ 곡식 λ¬Έμ„œλ₯Ό κΈ°μ€€μœΌλ‘œ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€. ν”„λ ˆμž„μ›Œν¬λ§ˆλ‹€ 무엇을 μ„Έκ³  μ–΄λŠ μ‹œμ μ— μ œμ–΄ν•˜λŠ”μ§€ 비ꡐ할 수 μžˆλ„λ‘ 기쀀을 λ§žμ·„μŠ΅λ‹ˆλ‹€. 고객 지원 ν‹°μΌ“ 사둀와 μ œμ•ˆν•˜λŠ” 운영 정책은 이해λ₯Ό 돕기 μœ„ν•œ μ˜ˆμ‹œμ΄λ©°, μ‹€μ œ 운영 ν™˜κ²½μ—μ„œ μΈ‘μ •ν•œ κ²°κ³Όκ°€ μ•„λ‹™λ‹ˆλ‹€.

AI μ—μ΄μ „νŠΈ λ£¨ν”„λŠ” μ–΄λ–»κ²Œ λ™μž‘ν•©λ‹ˆκΉŒ?

μ‹€μš©μ μΈ λ£¨ν”„μ˜ 흐름은 λͺ¨λΈ 호좜 β†’ 툴 호좜 β†’ κ΄€μ°° β†’ λ°˜λ³΅μž…λ‹ˆλ‹€. 더 μ§„ν–‰ν•  ν•„μš”κ°€ μ—†κ±°λ‚˜ 진행이 ν—ˆμš©λ˜μ§€ μ•ŠμœΌλ©΄ κ·Έ μ‹œμ μ— λΉ μ Έλ‚˜μ˜΅λ‹ˆλ‹€.

μž‘μ—…μ„ λ°°μ •ν•˜λŠ” λ‹΄λ‹Ήμžμ™€ ν˜„μž₯ 기술자λ₯Ό λ– μ˜¬λ¦¬λ©΄ μ΄ν•΄ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€. λ‹΄λ‹ΉμžλŠ” λ‹€μŒ μž‘μ—…μ„ μ •ν•˜κ³ , κΈ°μˆ μžλŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©°, λŒμ•„μ˜¨ μž‘μ—… λ³΄κ³ μ„œλŠ” λ‹€μŒ νŒλ‹¨μ˜ κ·Όκ±°κ°€ λ©λ‹ˆλ‹€. 기계λ₯Ό μ κ²€ν•˜λΌλŠ” μš”μ²­ μžμ²΄κ°€ 점검은 μ•„λ‹™λ‹ˆλ‹€. μ•ˆμ‹¬μ‹œν‚€λŠ” 말만으둜 μˆ˜λ¦¬κ°€ μ„±κ³΅ν–ˆλ‹€κ³  λ³Ό μˆ˜λ„ μ—†μŠ΅λ‹ˆλ‹€.

μ†Œν”„νŠΈμ›¨μ–΄μ—μ„œ μž‘μ—…μ„ λ°°μ •ν•˜λŠ” 역할은 λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ, 즉 LLM이 λ§‘μŠ΅λ‹ˆλ‹€. 기술자 역할은 툴이 λ§‘μŠ΅λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ½κ±°λ‚˜, λ¬Έμ„œλ₯Ό κ²€μƒ‰ν•˜κ±°λ‚˜, λͺ…령을 μ‹€ν–‰ν•˜κ±°λ‚˜, λ ˆμ½”λ“œλ₯Ό λ³€κ²½ν•˜λŠ” ν•¨μˆ˜κ°€ 여기에 ν•΄λ‹Ήν•©λ‹ˆλ‹€. λ‘˜μ„ μ—°κ²°ν•˜λŠ” μ½”λ“œλŠ” λŸ°νƒ€μž„μž…λ‹ˆλ‹€.

  1. ν˜„μž¬ μƒνƒœλ₯Ό λ‹΄μ•„ λͺ¨λΈμ„ ν˜ΈμΆœν•©λ‹ˆλ‹€

    μž‘μ—… λ‚΄μš©, μ§€μΉ¨, μ‚¬μš© κ°€λŠ₯ν•œ 툴 μ •μ˜, κ΄€λ ¨ 이λ ₯을 μ „λ‹¬ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ 닡변을 λ°˜ν™˜ν•˜κ±°λ‚˜ 툴 ν˜ΈμΆœμ„ μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 고객 지원 μ›Œν¬ν”Œλ‘œμ—μ„œλŠ” 닡변을 μ œμ•ˆν•˜κΈ° 전에 고객의 티켓을 μ‘°νšŒν•˜λ„λ‘ μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  2. μš”μ²­ν•œ νˆ΄μ„ κ²€μ¦ν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€

    μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 툴 이름, 인수, μ‹€ν–‰ κΆŒν•œμ„ ν™•μΈν•œ λ’€ ν˜ΈμΆœμ„ μ „λ‹¬ν•©λ‹ˆλ‹€. 툴 호좜 μš”μ²­μ€ κ΅¬μ‘°ν™”λœ 데이터일 뿐, κ·Έ 자체둜 μ‹€ν–‰ κΆŒν•œμ„ λΆ€μ—¬ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. 이 κ²½κ³„λŠ” ν•¨μˆ˜ 호좜 κ°€μ΄λ“œμ—μ„œ μžμ„Ένžˆ μ„€λͺ…ν•©λ‹ˆλ‹€.

  3. κ΄€μ°° κ²°κ³Όλ₯Ό λŒλ €μ€λ‹ˆλ‹€

    관찰은 ν–‰λ™μ˜ κ²°κ³Όμž…λ‹ˆλ‹€. ν‹°μΌ“ λ‚΄μš©, 검색 κ²°κ³Ό, 검증 였λ₯˜, μ‹€ν–‰ 확인 기둝 등이 ν•΄λ‹Ήν•©λ‹ˆλ‹€. 각 툴 μš”μ²­κ³Ό κ·Έ 결과의 μ—°κ²° 관계λ₯Ό μœ μ§€ν•΄μ•Ό λ‹€μŒ λͺ¨λΈ ν˜ΈμΆœμ—μ„œ 무슨 일이 μžˆμ—ˆλŠ”μ§€ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  4. κ°±μ‹ λœ μƒνƒœλ‘œ λ°˜λ³΅ν•©λ‹ˆλ‹€

    λ‹€μŒ λͺ¨λΈ ν˜ΈμΆœμ€ κ²°κ³Όλ₯Ό λ°›μ•„ λ‹€μŒ 행동을 μ„ νƒν•©λ‹ˆλ‹€. λ‹€λ₯Έ νˆ΄μ„ μš”μ²­ν•˜κ±°λ‚˜, λΆ€μ‘±ν•œ 정보λ₯Ό λ¬»κ±°λ‚˜, μ΅œμ’… 닡변을 내놓을 수 μžˆμŠ΅λ‹ˆλ‹€. Anthropic의 μ—μ΄μ „νŠΈ 루프 μ„€λͺ…은 이 μš”μ²­Β·μ‹€ν–‰Β·ν”Όλ“œλ°± νŒ¨ν„΄μ„ λ³΄μ—¬μ€λ‹ˆλ‹€.

Model, Tool, Observe, Repeatλ₯Ό μ—°κ²°ν•˜λŠ” 건좕적 보행 μˆœν™˜λ‘œμ™€ Modelμ—μ„œ λ”°λ‘œ κ°ˆλΌμ§€λŠ” Final 좜ꡬ.
툴 μ‹€ν–‰ κ²°κ³Όκ°€ λ‹€μŒ νŒλ‹¨μ˜ κ·Όκ±°κ°€ λ©λ‹ˆλ‹€. μ΅œμ’… 닡변을 λ‚΄λ†“μœΌλ©΄ μˆœν™˜μ„ λ²—μ–΄λ‚©λ‹ˆλ‹€.

κ°€μƒμ˜ ν‹°μΌ“ λ‹΅λ³€ μ΄ˆμ•ˆ μž‘μ„± μž‘μ—…μ„ μΆ”μ ν•˜λ©΄ λ‹€μŒκ³Ό 같을 수 μžˆμŠ΅λ‹ˆλ‹€. 첫 번째 λͺ¨λΈ ν˜ΈμΆœμ—μ„œ 티켓을 μš”μ²­ν•˜κ³ , 두 번째 ν˜ΈμΆœμ—μ„œ κ΄€λ ¨ 정책을 μš”μ²­ν•˜λ©°, μ„Έ 번째 ν˜ΈμΆœμ—μ„œ λ‘˜μ„ 근거둜 μ΄ˆμ•ˆμ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μš”μ²­ ν•˜λ‚˜ μ•ˆμ—μ„œ λͺ¨λΈ 호좜 3νšŒμ™€ 툴 μ‹€ν–‰ 2νšŒκ°€ μΌμ–΄λ‚œ κ²ƒμž…λ‹ˆλ‹€. λ‹΅λ³€ 전솑에 승인이 ν•„μš”ν•˜λ‹€λ©΄, μ΄ˆμ•ˆ μž‘μ„±μ€ μ™„λ£Œν•˜λ˜ 전솑은 λŒ€κΈ° μƒνƒœλ‘œ 남길 수 μžˆμŠ΅λ‹ˆλ‹€.

μž‘μ—… μƒνƒœλŠ” λŒ€ν™” 기둝과 λ³„λ„λ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€. μ–΄λ–€ 티켓을 처리 쀑인지, μ–΄λ–€ 정책을 μ μš©ν•˜κΈ°λ‘œ ν–ˆλŠ”μ§€, μ΄ˆμ•ˆμ΄ μ‘΄μž¬ν•˜λŠ”μ§€, 전솑이 μŠΉμΈλ˜μ—ˆλŠ”μ§€λ₯Ό μƒνƒœμ— λ‹΄μ•„μ•Ό ν•©λ‹ˆλ‹€. λŒ€ν™” 기둝은 κ·Έ μƒνƒœμ— 이λ₯Έ 과정을 μ„€λͺ…ν•©λ‹ˆλ‹€. κΈΈμ–΄μ§€λŠ” λŒ€ν™”μ—μ„œ λͺ¨λΈμ΄ 맀번 이 정보λ₯Ό λͺ¨λ‘ μΆ”λ‘ ν•˜κ²Œ ν•˜λ©΄ μž‘μ—…μ„ κ°λ…ν•˜κΈ° μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€.

λ°˜λ³΅ν˜• μ—μ΄μ „νŠΈλŠ” κ³ μ • μ›Œν¬ν”Œλ‘œμ™€ 무엇이 λ‹€λ¦…λ‹ˆκΉŒ?

λ°˜λ³΅ν˜• μ—μ΄μ „νŠΈλŠ” μ΅œμ‹  결과에 따라 λ‹€μŒ 행동을 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. κ³ μ • μ›Œν¬ν”Œλ‘œλŠ” ν‹°μΌ“ 쑰회, μ •μ±… 쑰회, μ΄ˆμ•ˆ μž‘μ„±μ΄λΌλŠ” μˆœμ„œλ₯Ό 이미 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. μ•žμ„  ν–‰λ™μ—μ„œ μ•Œμ•„λ‚Έ λ‚΄μš©μ— 따라 λ‹€μŒμœΌλ‘œ μœ μš©ν•œ 행동이 달라진닀면 μ μ‘ν˜• 루프λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 그런 λΆˆν™•μ‹€μ„±μ΄ μ—†λ‹€λ©΄ μ •ν•΄μ§„ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€.

ReAct μ—μ΄μ „νŠΈ λ£¨ν”„λŠ” 어디에 ν•΄λ‹Ήν•©λ‹ˆκΉŒ?

ReAct μ—μ΄μ „νŠΈ λ£¨ν”„λŠ” μΆ”λ‘ κ³Ό 행동을 μ—°κ²°ν•©λ‹ˆλ‹€. λͺ¨λΈμ€ κ΄€μ°° κ²°κ³Όλ₯Ό λ°”νƒ•μœΌλ‘œ 이후 행동을 κ²°μ •ν•©λ‹ˆλ‹€. ReAct 원본 ν”„λ‘œμ νŠΈλŠ” ν™˜κ²½ μ•ˆμ—μ„œ μΆ”λ‘ κ³Ό 행동을 λ²ˆκ°ˆμ•„ μˆ˜ν–‰ν•˜λŠ” 방식을 μ„€λͺ…ν•©λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λͺ¨λ‹ˆν„°λ§ν•  λ•ŒλŠ” μš”μ²­ν•œ 행동, κ΄€μ°° κ²°κ³Ό, μ΅œμ’… μ„±κ³Όλ₯Ό κΈ°λ‘ν•©λ‹ˆλ‹€. μ§„ν–‰ 상황을 μ„€λͺ…ν•˜λŠ” λ¬Έμž₯이 μ‹€ν–‰ 확인 기둝을 λŒ€μ‹ ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

운영 ν™˜κ²½μ— ν•„μš”ν•œ μ’…λ£Œ 쑰건 μ„Έ κ°€μ§€

루프λ₯Ό λΉ μ Έλ‚˜μ˜¬ 경둜λ₯Ό μ„Έ κ°€μ§€λ‘œ μ„€κ³„ν•©λ‹ˆλ‹€. μž‘μ—… μ™„λ£Œ, ν•œλ„ μ†Œμ§„, μ‚¬λžŒμ˜ μž…λ ₯ ν•„μš”μž…λ‹ˆλ‹€. μ΄λŠ” μ—”μ§€λ‹ˆμ–΄λ§ κ΄€μ μ˜ λΆ„λ₯˜μ΄μ§€, λͺ¨λ“  SDKκ°€ λ™μΌν•œ μŠ€μœ„μΉ˜ μ„Έ 개λ₯Ό μ œκ³΅ν•œλ‹€λŠ” λœ»μ€ μ•„λ‹™λ‹ˆλ‹€. 비정상 μ’…λ£Œ, μ·¨μ†Œ, 볡ꡬ할 수 μ—†λŠ” 였λ₯˜μ—λ„ λͺ…μ‹œμ μΈ μ‹€νŒ¨ μ²˜λ¦¬κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ μ’…λ£Œν•©λ‹ˆλ‹€

첫 λͺ¨λΈ 호좜 전에 무엇을 μ™„λ£Œλ‘œ λ³Όμ§€ μ •μ˜ν•©λ‹ˆλ‹€. μ΄ˆμ•ˆ μž‘μ„± λ„μš°λ―ΈλΌλ©΄ κ΄€λ ¨ 좜처λ₯Ό λͺ…μ‹œν•œ μœ νš¨ν•œ μ΄ˆμ•ˆμ΄ μ™„λ£Œ 쑰건일 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€μ œ 행동을 μˆ˜ν–‰ν•˜λŠ” λ„μš°λ―ΈλΌλ©΄ μ“°κΈ° μž‘μ—…μ΄ ν™•μΈλ˜μ—ˆλ‹€λŠ” κΈ°λ‘κΉŒμ§€ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

β€œλͺ¨λΈμ΄ 더 이상 νˆ΄μ„ μš”μ²­ν•˜μ§€ μ•ŠλŠ”λ‹€β€μ™€ β€œμš”μ²­ν•œ μž‘μ—…μ΄ μ„±κ³΅ν–ˆλ‹€β€λŠ” ꡬ뢄해야 ν•©λ‹ˆλ‹€. μ „μžλŠ” λŸ°νƒ€μž„ μ‹ ν˜Έμ΄κ³ , ν›„μžλŠ” μž‘μ—…μ— λ§žλŠ” 증거가 μžˆμ–΄μ•Ό νŒλ‹¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λΈμ€ 더 μ§„ν–‰ν•  수 μ—†μ–΄μ„œ 멈좜 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μž‘μ—…μ„ μ„±κ³΅μœΌλ‘œ ν‘œμ‹œν•˜μ§€ 말고, μ§„ν–‰ λΆˆκ°€ λ˜λŠ” λ―Έμ™„λ£Œλ‘œ 기둝해야 ν•©λ‹ˆλ‹€.

λ‹΅λ³€ 검증에 μ‹€νŒ¨ν•  λ•Œλ§ˆλ‹€ 루프λ₯Ό μžλ™μœΌλ‘œ μž¬κ°€λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μˆ˜μ • μ‹œλ„λ„ 같은 μž‘μ—…μ— λ°°μ •λœ ν•œλ„λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·Έλ ‡μ§€ μ•ŠμœΌλ©΄ 검증기 μžμ²΄κ°€ λμ—†λŠ” μž¬μ‹œλ„μ˜ 원인이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

ν•œλ„μ— λ„λ‹¬ν•˜λ©΄ μ’…λ£Œν•©λ‹ˆλ‹€

단계 수, μžμ› μ‚¬μš©λŸ‰, κ²½κ³Ό μ‹œκ°„μ— 각각 독립적인 ν•œλ„λ₯Ό λ‘‘λ‹ˆλ‹€. 단계 수 μ œν•œμ€ λ°˜λ³΅μ„ μ œμ–΄ν•˜κ³ , 토큰 λ˜λŠ” λΉ„μš© μ˜ˆμ‚°μ€ μžμ› μ†ŒλΉ„λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€. 마감 μ‹œκ°„μ€ 느린 λͺ¨λΈμ΄λ‚˜ 툴 λ•Œλ¬Έμ— μž‘μ—…μ΄ λ¬΄κΈ°ν•œ μ—΄λ¦° μƒνƒœλ‘œ λ‚¨λŠ” 것을 λ§‰μŠ΅λ‹ˆλ‹€. μ–΄λŠ ν•˜λ‚˜κ°€ λ‹€λ₯Έ 것을 λŒ€μ‹ ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

μƒˆ μž‘μ—…μ„ ν—ˆμš©ν•˜κΈ° 전에 ν•œλ„λ₯Ό ν™•μΈν•˜κ³ , μž‘μ—…μ΄ λλ‚˜λ©΄ μ‚¬μš©λŸ‰μ„ κ°±μ‹ ν•©λ‹ˆλ‹€. μ™„λ£Œλœ 호좜 수만 μ„Έμ–΄μ„œλŠ” 이미 μ‹€ν–‰ 쀑인 μš”μ²­μ˜ μžμ› μ†ŒλΉ„λ₯Ό 막을 수 μ—†μŠ΅λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ—„κ²©ν•œ μƒν•œμ„ 보μž₯ν•œλ‹€λ©΄ λ‹€μŒ μž‘μ—…μ— ν•„μš”ν•œ μš©λŸ‰μ„ 미리 ν™•λ³΄ν•˜κ³ , μ‹œμž‘ 전에 λ™μ‹œ μ‹€ν–‰ 쀑인 μž‘μ—…λ„ 계산에 포함해야 ν•©λ‹ˆλ‹€.

ν•œλ„λŠ” SDK 호좜 ν•œ 번이 μ•„λ‹ˆλΌ 업무 전체λ₯Ό κΈ°μ€€μœΌλ‘œ μ„€μ •ν•©λ‹ˆλ‹€. μž¬μ‹œλ„, 승인 ν›„ 재개, ν•˜μœ„ μ—μ΄μ „νŠΈ μ‹€ν–‰ λ•Œλ¬Έμ— ν•œλ„κ°€ 쑰용히 μƒˆλ‘œ λΆ€μ—¬λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. μΆ”κ°€ μž‘μ—…μ΄ νƒ€λ‹Ήν•˜λ‹€λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ λͺ…μ‹œμ μœΌλ‘œ νŒλ‹¨ν•΄ ν•œλ„λ₯Ό λŠ˜λ¦½λ‹ˆλ‹€.

휴먼 인 더 루프: 행동에 μ•žμ„œ μŠΉμΈμ„ κΈ°λ‹€λ¦½λ‹ˆλ‹€

μ‚¬λžŒμ΄ νŒλ‹¨ 과정에 μ°Έμ—¬ν•˜λŠ” AI μ—μ΄μ „νŠΈλŠ” 승인이 ν•„μš”ν•œ μž‘μ—…μ„ μ‹€ν–‰ν•˜κΈ° 전에 μΌμ‹œ 쀑지해야 ν•©λ‹ˆλ‹€. μ‹€ν–‰ν•˜λ €λŠ” 행동, λŒ€μƒ, κ΄€λ ¨ 인수λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. λŒ€κΈ° 쀑인 호좜과 ν˜„μž¬ μž‘μ—… μƒνƒœλ₯Ό μ €μž₯ν•œ λ’€ λͺ…μ‹œμ μΈ 결정을 κΈ°λ‹€λ¦½λ‹ˆλ‹€.

ν‹°μΌ“ λ„μš°λ―Έμ—μ„œλŠ” νŠΉμ • μˆ˜μ‹ μžμ—κ²Œ 보낼 νŠΉμ • 닡변을 μŠΉμΈν•©λ‹ˆλ‹€. μ΄ˆμ•ˆ ν•˜λ‚˜λ₯Ό μŠΉμΈν–ˆλ‹€κ³  이후 λ©”μ‹œμ§€κΉŒμ§€ ν¬κ΄„μ μœΌλ‘œ ν—ˆμš©ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. 승인 ν›„ λͺ¨λΈμ΄ μˆ˜μ‹ μžλ‚˜ λ‚΄μš©μ„ λ°”κΎΈλ©΄ ν•΄λ‹Ή 행동을 λ‹€μ‹œ κ²€ν† ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μΌμ‹œ μ€‘μ§€λŠ” completedκ°€ μ•„λ‹ˆλΌ awaiting_approval둜 κΈ°λ‘ν•©λ‹ˆλ‹€. 승인이 거절되면 미리 μ •ν•œ λŒ€μ•ˆμœΌλ‘œ μ§„ν–‰ν•˜κ±°λ‚˜ λ©ˆμΆ°μ•Ό ν•©λ‹ˆλ‹€. 같은 μž‘μ—…μ„ λ‹€λ₯Έ 툴둜 μ‹€ν–‰ν•˜λ €λŠ” μ‹œλ„λ₯Ό λ°˜λ³΅ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. 승인 λŒ€κΈ°μ—΄κ³Ό μ—μŠ€μ»¬λ ˆμ΄μ…˜μ€ 휴먼 인 더 루프 κ°€μ΄λ“œμ—μ„œ λ‹€λ£Ήλ‹ˆλ‹€.

Continue ν†΅λ‘œ μœ„λ‘œ Done, Limit, κ²Œμ΄νŠΈκ°€ μžˆλŠ” Review μΆœκ΅¬κ°€ λ‚˜λ‰˜λŠ” 건좕적 λΆ„κΈ° 곡간.
μ™„λ£Œλ˜λ©΄ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜κ³ , ν•œλ„μ— λ„λ‹¬ν•˜λ©΄ ν—ˆμš©λœ μž‘μ—…μ„ 끝내며, κ²€ν† κ°€ ν•„μš”ν•˜λ©΄ 행동을 μΌμ‹œ μ€‘μ§€ν•©λ‹ˆλ‹€.

AI μ—μ΄μ „νŠΈ κ΅¬ν˜„μ„ μœ„ν•œ μ΅œμ†Œ 루프 μ˜μ‚¬ μ½”λ“œ

각 μž‘μ—…μ˜ μ•žλ’€μ— μ •μ±… 검사λ₯Ό λ°°μΉ˜ν•˜λ©΄ 루프λ₯Ό κ°„κ²°ν•˜κ²Œ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ€ μ‹€ν–‰ κ°€λŠ₯ν•œ SDK μ½”λ“œκ°€ μ•„λ‹Œ μ˜μ‚¬ μ½”λ“œμž…λ‹ˆλ‹€. λͺ¨λΈ 호좜 8νšŒλΌλŠ” μƒν•œμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 선택할 수 μžˆλŠ” μ˜ˆμ‹œμΌ λΏμž…λ‹ˆλ‹€. μ‹€μ œ ν•œλ„λŠ” μž‘μ—…μ˜ νŠΉμ„±κ³Ό κ΄€μ°°ν•œ μ‹€ν–‰ 기둝을 λ°”νƒ•μœΌλ‘œ μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

Text
state = new_job(task, max_model_calls=8, budget, deadline)

while true:
    if limit_reached(state):
        return stop("limit", partial_result=state)

    reserve_capacity_or_stop(state, next_model_call)
    response = call_model_with_deadline(state)
    record_model_call_usage_and_response(state, response)

    if response.is_final and not response.tool_calls:
        return validate_and_finish_or_stop_incomplete(response, state)

    if not response.tool_calls:
        return stop("no_action", partial_result=state)

    for index, call in enumerate(response.tool_calls):
        decision = validate_and_authorize(call, state)
        if decision == "denied":
            return stop("denied", partial_result=state)
        if decision == "needs_human":
            return pause_and_save(state, response.tool_calls[index:])

        reserve_capacity_or_stop(state, call)
        observation = execute_with_timeout_and_retry_cap(call)
        record_tool_usage(state, observation)
        append_matching_tool_result(state, call, bounded(observation))

    if no_progress(state):
        return stop("stalled", partial_result=state)

보쑰 ν•¨μˆ˜μ˜ μ΄λ¦„μ—λŠ” μ€‘μš”ν•œ κ΅¬ν˜„ μ±…μž„μ΄ 담겨 μžˆμŠ΅λ‹ˆλ‹€. μš©λŸ‰μ„ 확보할 λ•ŒλŠ” 이미 μ§„ν–‰ 쀑인 μž‘μ—…μ„ 계산에 λ„£μ–΄μ•Ό ν•©λ‹ˆλ‹€. 툴 μž¬μ‹œλ„μ—λŠ” ν•œλ„κ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ‹œκ°„ 초과둜 μ“°κΈ° κ²°κ³Όλ₯Ό μ•Œ 수 μ—†λ‹€λ©΄ μž¬μ‹œλ„ 전에 λ©ˆμΆ”κ±°λ‚˜ μ‹€μ œ 처리 μƒνƒœλ₯Ό 확인해 λ§žμΆ°μ•Ό ν•©λ‹ˆλ‹€. 치λͺ…적인 λͺ¨λΈ 였λ₯˜λ‚˜ 툴 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ μ‹€νŒ¨λ₯Ό κΈ°λ‘ν•˜κ³  μ’…λ£Œν•΄μ•Ό ν•˜λ©°, κ·ΈλŒ€λ‘œ λ‹€μŒ 반볡으둜 λ„˜μ–΄κ°€μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.

μΌμ‹œ 쀑지 μƒνƒœλ₯Ό μ €μž₯ν•  λ•ŒλŠ” 남은 툴 호좜, μ™„λ£Œλœ κ²°κ³Ό, 이미 μ‚¬μš©ν•œ ν•œλ„λ₯Ό ν•¨κ»˜ 보쑴해야 ν•©λ‹ˆλ‹€. μž¬κ°œν•  λ•ŒλŠ” μ €μž₯ν•œ μž‘μ—…μ„ μ΄μ–΄κ°€λ˜ κΆŒν•œκ³Ό ν•œλ„λ₯Ό λ‹€μ‹œ ν™•μΈν•©λ‹ˆλ‹€. μ²˜μŒλΆ€ν„° 전체 μž‘μ—…μ„ λ‹€μ‹œ μ‹œμž‘ν•˜λ©΄ μ•žμ„œ λ°œμƒν•œ λ³€κ²½μ΄λ‚˜ 행동을 λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

검사 μœ„μΉ˜μ— μ£Όλͺ©ν•  ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. μŠΉμΈμ€ 툴 μ‹€ν–‰ 전에 ν™•μΈν•˜κ³ , μ‚¬μš©λŸ‰μ€ μž‘μ—… μ™„λ£Œ ν›„ κΈ°λ‘ν•©λ‹ˆλ‹€. λͺ¨λΈμ΄ μš”μ²­ν–ˆλ‹€λŠ” 이유만으둜 λ‹€μŒ λ°˜λ³΅μ„ μ‹œμž‘ν•  μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

ν”„λ ˆμž„μ›Œν¬λ³„ 루프 μ œμ–΄ 방식

OpenAI Agents SDK, Claude Agent SDK, Vercel AI SDK, LangGraphλŠ” 루프λ₯Ό μ„œλ‘œ λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. μ˜΅μ…˜ 이름을 λΉ„κ΅ν•˜κΈ° 전에 무엇을 μ„ΈλŠ”μ§€, μ–΄λŠ μ‹œμ μ—μ„œ λ©ˆμΆ”λŠ”μ§€λΆ€ν„° 비ꡐ해야 ν•©λ‹ˆλ‹€.

ν”„λ ˆμž„μ›Œν¬μ§‘κ³„ λ‹¨μœ„ λ˜λŠ” 루프 μ œμ–΄ 방식λͺ…μ‹œμ  ν•œλ„μ‚¬λžŒμ˜ νŒλ‹¨
OpenAI Agents SDK, Pythonλͺ¨λΈ 호좜둜 μ„€λͺ…λ˜λŠ” μ—μ΄μ „νŠΈ 루프 ν„΄max_turnsneeds_approval, 쀑단 정보, μ €μž₯된 μ‹€ν–‰ μƒνƒœ
Claude Agent SDKν„΄ μƒν•œμ— 툴 μ‚¬μš© 턴을 집계maxTurns, maxBudgetUsdκΆŒν•œ κ·œμΉ™κ³Ό canUseTool
Vercel AI SDK생성과 그에 μˆ˜λ°˜λ˜λŠ” 둜컬 툴 μ‹€ν–‰isStepCount λ˜λŠ” μ‚¬μš©μž μ •μ˜ 쑰건을 μ μš©ν•œ stopWhentoolApproval
LangGraph, Pythonκ·Έλž˜ν”„ μŠˆνΌμŠ€ν…recursion_limitμ²΄ν¬ν¬μΈνŠΈμ— μ €μž₯된 μƒνƒœμ™€ interrupt()

이 이름듀은 각각 OpenAI 루프 λ¬Έμ„œ, Claude 루프 λ¬Έμ„œ, Vercel 루프 λ¬Έμ„œ, LangGraph Graph APIλ₯Ό λ”°λ¦…λ‹ˆλ‹€. 승인 λ™μž‘μ— κ΄€ν•œ λ¬Έμ„œλŠ” μ•„λž˜ 각 μ ˆμ— μ—°κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

OpenAI Agents SDK: 싀행을 μ΄μ–΄κ°€λŠ” μ£Όμ²΄λŠ” Runnerμž…λ‹ˆλ‹€

OpenAI Agents SDKμ—μ„œλŠ” Runnerκ°€ λͺ¨λΈμ„ ν˜ΈμΆœν•˜κ³ , μš”μ²­λœ νˆ΄μ„ μ‹€ν–‰ν•˜κ³ , κ²°κ³Όλ₯Ό μΆ”κ°€ν•œ λ’€ 싀행을 μ΄μ–΄κ°‘λ‹ˆλ‹€. ν•Έλ“œμ˜€ν”„κ°€ λ°œμƒν•˜λ©΄ ν™œμ„± μ—μ΄μ „νŠΈλ₯Ό λ°”κΎΈκ³  싀행을 κ³„μ†ν•©λ‹ˆλ‹€. λ¬Έμ„œμƒ 정상 μ’…λ£ŒλŠ” 툴 호좜 없이 μ˜ˆμƒν•œ νƒ€μž…μ˜ 좜λ ₯이 λ‚˜μ˜€λŠ” κ²½μš°μž…λ‹ˆλ‹€. max_turnsλ₯Ό μ΄ˆκ³Όν•˜λ©΄ λ³„λ„λ‘œ μ²˜λ¦¬ν•˜μ§€ μ•ŠλŠ” ν•œ MaxTurnsExceededκ°€ λ°œμƒν•©λ‹ˆλ‹€. OpenAI μ—μ΄μ „νŠΈ μ‹€ν–‰ λ¬Έμ„œ.

Runner와 μ—μ΄μ „νŠΈ 루프λ₯Ό μ„€λͺ…ν•˜λŠ” OpenAI Agents SDK λ¬Έμ„œ.
OpenAI Agents SDK

ν‹°μΌ“ λ„μš°λ―Έμ—μ„œλŠ” 이 ꡬ쑰λ₯Ό 톡해 λͺ¨λΈ ν„΄ μˆ˜μ— κ°„λ‹¨νžˆ μƒν•œμ„ λ‘˜ 수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€λ§Œ 싀행이 λλ‚œ 것과 μ‹€μ œ 업무가 μ™„λ£Œλœ 것은 λ‹€λ¦…λ‹ˆλ‹€. 좜λ ₯이 μΆ©μ‘±ν•΄μ•Ό ν•  쑰건을 μ„€μ •ν•˜κ³ , ν•΄λ‹Ή μž‘μ—…μ— ν•„μš”ν•œ 증거λ₯Ό 확인해야 ν•©λ‹ˆλ‹€.

승인이 ν•„μš”ν•˜λ©΄ Python νˆ΄μ— needs_approval을 μ„ μ–Έν•  수 있으며, λŒ€κΈ° 쀑인 ν˜ΈμΆœμ€ interruptions에 λ‚˜νƒ€λ‚©λ‹ˆλ‹€. RunStateλ₯Ό μ €μž₯ν•˜κ³  승인 λ˜λŠ” 거절 결정을 λ°˜μ˜ν•œ λ’€ μž¬κ°œν•©λ‹ˆλ‹€. μΌμ‹œ μ€‘μ§€λœ 싀행은 μƒˆλ‘œμš΄ μ‚¬μš©μž μš”μ²­μ΄ μ•„λ‹™λ‹ˆλ‹€. OpenAI 휴먼 인 더 루프 λ¬Έμ„œ.

Claude μ—μ΄μ „νŠΈ 루프: ν„΄ μˆ˜μ™€ λΉ„μš© ν•œλ„λ₯Ό ν•¨κ»˜ μ„€μ •ν•©λ‹ˆλ‹€

Claude Agent SDKλŠ” 파일 및 λͺ…λ Ή νˆ΄μ„ 포함해 Claude Codeλ₯Ό κ΅¬λ™ν•˜λŠ” 루프λ₯Ό λ‚΄μž₯ν•©λ‹ˆλ‹€. maxTurnsλŠ” 툴 μ‚¬μš© 턴을 μ„Έκ³ , maxBudgetUsdλŠ” μ˜ˆμƒ λΉ„μš©μ˜ μž„κ³„κ°’μ„ μ„€μ •ν•©λ‹ˆλ‹€. μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ λ‘˜ λ‹€ λ¬΄μ œν•œμž…λ‹ˆλ‹€. Pythonμ—μ„œλŠ” max_turns와 max_budget_usdλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. Claude μ—μ΄μ „νŠΈ 루프 λ¬Έμ„œ.

μ—μ΄μ „νŠΈ 루프와 μ‹€ν–‰ μ œμ–΄λ₯Ό μ„€λͺ…ν•˜λŠ” Claude Agent SDK λ¬Έμ„œ.
Claude Agent SDK

결과의 ν•˜μœ„ μœ ν˜•μ„ 확인해야 ν•©λ‹ˆλ‹€. success, error_max_turns, error_max_budget_usdλŠ” μ„œλ‘œ λ‹€λ₯Έ κ²°κ³Όμž…λ‹ˆλ‹€. 단일 μ‹€ν–‰ λͺ¨λ“œμ—μ„œλŠ” 였λ₯˜ κ²°κ³Ό 뒀에 μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ―€λ‘œ 결과와 μ‹€νŒ¨ 경둜λ₯Ό λͺ¨λ‘ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. Claude κ²°κ³Ό 처리.

κΆŒν•œ 경계도 같은 μˆ˜μ€€μœΌλ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. allowedToolsλŠ” λͺ©λ‘μ— μžˆλŠ” νˆ΄μ„ μžλ™ μŠΉμΈν•©λ‹ˆλ‹€. λͺ©λ‘μ—μ„œ λΉ μ‘Œλ‹€κ³  ν•΄λ‹Ή 툴이 μ œκ±°λ˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. κΈ°λ³Έ κΆŒν•œ λͺ¨λ“œμ—μ„œλŠ” 승인이 ν•„μš”ν•˜λ©΄μ„œ μ–΄λ–€ ν—ˆμš© κ·œμΉ™μ—λ„ ν•΄λ‹Ήν•˜μ§€ μ•ŠλŠ” 호좜이 canUseTool둜 μ „λ‹¬λ©λ‹ˆλ‹€. 이 SDK둜 μ‚¬λžŒμ˜ κ°œμž… 없이 μ“°κΈ° μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €λ©΄ λ¨Όμ € 전체 κΆŒν•œ 정책을 확인해야 ν•©λ‹ˆλ‹€. Claude κΆŒν•œ.

ν•˜μœ„ μ—μ΄μ „νŠΈκΉŒμ§€ μ‚¬μš©λŸ‰μ„ 계산할 λ•Œ ClaudeλŠ” 메인 λ£¨ν”„μ˜ usage와 전체 μ—μ΄μ „νŠΈ 트리의 modelUsage, λ˜λŠ” Python의 model_usageλ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€. μž‘μ—…μ˜ μžμ› μ†ŒλΉ„λ₯Ό 쑰사할 λ•ŒλŠ” λͺ©μ μ— λ§žλŠ” 합계λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. Claude λΉ„μš© 및 μ‚¬μš©λŸ‰ λ¬Έμ„œ.

κ΅¬ν˜„ 과정을 따라가렀면 이 μ‚¬μ΄νŠΈμ˜ Claude Agent SDK κ°€μ΄λ“œλΆ€ν„° 읽어보면 λ©λ‹ˆλ‹€.

Vercel AI SDK: stopWhen은 λ‹€μŒ λ‹¨κ³„λ‘œ μ§„ν–‰ν• μ§€λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€

Vercel AI SDKμ—μ„œλŠ” stopWhen으둜 싀행을 계속할지 μ œμ–΄ν•©λ‹ˆλ‹€. ν˜„μž¬ λ¬Έμ„œλŠ” 단계 수 μ œν•œμ— isStepCountλ₯Ό μ‚¬μš©ν•˜λ©°, μ—¬λŸ¬ 쑰건을 μ§€μ •ν•΄ μ–΄λŠ ν•˜λ‚˜λΌλ„ μΆ©μ‘±ν•˜λ©΄ 쀑단할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. ToolLoopAgent의 기본값은 20단계이고, generateText와 streamText의 기본값은 ν•œ 번의 μƒμ„±μž…λ‹ˆλ‹€. μ–΄λ–€ μ§„μž…μ μ„ μ‚¬μš©ν•˜λŠ”μ§€κ°€ μ€‘μš”ν•©λ‹ˆλ‹€. Vercel 루프 μ œμ–΄, 툴 호좜 λ¬Έμ„œ.

쀑단 쑰건을 μ„€λͺ…ν•˜λŠ” Vercel AI SDK 루프 μ œμ–΄ λ¬Έμ„œ.
Vercel AI SDK

ν•œ λ‹¨κ³„μ—λŠ” 생성과 그에 μˆ˜λ°˜λ˜λŠ” 둜컬 툴 싀행이 ν¬ν•¨λ©λ‹ˆλ‹€. 핡심은 λ§ˆμ§€λ§‰ 단계에 툴 κ²°κ³Όκ°€ μžˆμ„ λ•Œ stopWhen을 ν‰κ°€ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€. 이미 κ·Έ κ²°κ³Όλ₯Ό λ§Œλ“€μ–΄λ‚Έ 툴 μž‘μ—…μ„ 되돌릴 μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŠ” 행동 μ „ 승인 μž₯μΉ˜κ°€ μ•„λ‹ˆλΌ 싀행을 계속할지 κ²°μ •ν•˜λŠ” μž₯μΉ˜μž…λ‹ˆλ‹€. Vercel 닀단계 호좜.

μ‚¬μš©μžμ˜ λͺ…μ‹œμ μΈ μŠΉμΈμ—λŠ” λ¬Έμ„œμ— μ„€λͺ…λœ toolApproval을 μ‚¬μš©ν•©λ‹ˆλ‹€. ν˜„μž¬ λ¬Έμ„œμ—μ„œ 이전 툴 속성인 needsApproval은 μ‚¬μš© 쀑단 μ˜ˆμ •μœΌλ‘œ ν‘œμ‹œλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. Vercel 툴 승인.

μ»¨ν…μŠ€νŠΈλ₯Ό κ΄€λ¦¬ν•˜λŠ” prepareStep은 각 단계 전에 μ‹€ν–‰λ˜λ©° λ©”μ‹œμ§€λ‚˜ 섀정을 λ°”κΏ€ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 μ‹œμ μ„ ν™œμš©ν•΄ 맀번 λͺ¨λ“  원본 κ²°κ³Όλ₯Ό μ „λ‹¬ν•˜λŠ” λŒ€μ‹  κ΄€λ ¨ μƒνƒœλ₯Ό μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Vercel prepareStep.

LangGraph와 LangChain μ—μ΄μ „νŠΈ 루프

LangGraphλŠ” κ·Έλž˜ν”„ λŸ°νƒ€μž„μž…λ‹ˆλ‹€. μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” λ…Έλ“œλ₯Ό, λ‹€μŒ μ‹€ν–‰ λŒ€μƒμ„ κ²°μ •ν•˜λŠ” μ—£μ§€λ‘œ μ—°κ²°ν•©λ‹ˆλ‹€. κ·Έλž˜ν”„λ‘œ LangChain μ—μ΄μ „νŠΈ 루프λ₯Ό κ΅¬μ„±ν•œλ‹€λ©΄ λͺ¨λΈλ‘œ λŒμ•„κ°€λŠ” κ²½λ‘œμ™€ END둜 ν–₯ν•˜λŠ” 경둜λ₯Ό λͺ…ν™•νžˆ μ§€μ •ν•©λ‹ˆλ‹€. Python의 recursion_limitλŠ” κ·Έλž˜ν”„μ˜ μŠˆνΌμŠ€ν… 수λ₯Ό μ œν•œν•˜λ©°, 병렬 λ…Έλ“œλ“€μ€ ν•˜λ‚˜μ˜ μŠˆνΌμŠ€ν…μ„ κ³΅μœ ν•©λ‹ˆλ‹€. 툴 호좜 횟수λ₯Ό μ„ΈλŠ” μ˜΅μ…˜μ΄ μ•„λ‹™λ‹ˆλ‹€. LangGraph Graph API.

μƒνƒœ, λ…Έλ“œ, 엣지와 μ‹€ν–‰ 방식을 μ„€λͺ…ν•˜λŠ” LangGraph Graph API λ¬Έμ„œ.
LangGraph

recursion_limitλŠ” configurable λ‚΄λΆ€κ°€ μ•„λ‹ˆλΌ 호좜 μ„€μ •μ˜ μ΅œμƒμœ„ μˆ˜μ€€μ— λ‘‘λ‹ˆλ‹€. ν•œλ„μ— λ„λ‹¬ν•˜λ©΄ GraphRecursionErrorκ°€ λ°œμƒν•©λ‹ˆλ‹€. 정상적인 μ™„λ£Œ κ²½λ‘œλŠ” λŒ€μ²΄λ‘œ 이 비상 μ’…λ£Œ 지점에 λ‹ΏκΈ° 전에 λλ‚˜λ„λ‘ 섀계해야 ν•©λ‹ˆλ‹€. LangGraph μž¬κ·€ ν•œλ„.

μ‚¬λžŒμ˜ κ²€ν† κ°€ ν•„μš”ν•  λ•ŒλŠ” interrupt()둜 κ·Έλž˜ν”„λ₯Ό μΌμ‹œ μ€‘μ§€ν•©λ‹ˆλ‹€. 체크포인터와 μœ μ§€λ˜λŠ” thread_idλ₯Ό μ‚¬μš©ν•˜κ³ , Command(resume=...)둜 μž¬κ°œν•©λ‹ˆλ‹€. μ΄λ•Œ μ€‘μš”ν•œ μ œμ•½μ΄ μžˆμŠ΅λ‹ˆλ‹€. μž¬κ°œν•˜λ©΄ μ€‘λ‹¨λ˜μ—ˆλ˜ λ…Έλ“œμ˜ μ²˜μŒλΆ€ν„° λ‹€μ‹œ μ‹€ν–‰ν•©λ‹ˆλ‹€. 쀑단 지점 μ•žμ˜ μ½”λ“œλ„ λ‹€μ‹œ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€. 외뢀에 영ν–₯을 μ£ΌλŠ” μž‘μ—…μ€ 승인 뒀에 λ°°μΉ˜ν•˜κ±°λ‚˜, 반볡 싀행해도 μΆ”κ°€ νš¨κ³Όκ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ” 멱등성을 갖좔도둝 λ§Œλ“­λ‹ˆλ‹€. LangGraph 쀑단.

뢄기와 재개 κ°€λŠ₯ν•œ μƒνƒœκ°€ μž‘μ—…μ˜ 핡심이라면 이런 λͺ…μ‹œμ μΈ κ·Έλž˜ν”„ ꡬ쑰λ₯Ό μ„ νƒν•©λ‹ˆλ‹€. λ‹¨μˆœν•œ 툴 μˆœν™˜μœΌλ‘œ λ™μž‘ν•˜λŠ” 첫 읽기 μ „μš© λ„μš°λ―ΈλΌλ©΄ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•˜λŠ” κ°€μž₯ μž‘μ€ λŸ°νƒ€μž„λΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€.

싀행이 40λ‹¨κ³„κΉŒμ§€ μ΄μ–΄μ§€λŠ” 이유

μƒν•œμ„ 늘리기 전에 단계 사이에 무엇이 λ‹¬λΌμ‘ŒλŠ”μ§€ μ§„λ‹¨ν•©λ‹ˆλ‹€. 였래 μ‹€ν–‰λ˜λŠ” λ™μ•ˆ μœ μš©ν•œ μž‘μ—…μ΄ μ§„ν–‰λ˜κ³  μžˆμ„ μˆ˜λ„ 있고, 같은 μ‹€νŒ¨λ₯Ό λ°˜λ³΅ν•  μˆ˜λ„ 있으며, μž¬μ‹œμž‘ν•˜λ©΄μ„œ 이미 μ™„λ£Œν•œ 일을 μžŠμ—ˆμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μˆ«μžλ§ŒμœΌλ‘œλŠ” 이 κ²½μš°λ“€μ„ ꡬ뢄할 수 μ—†μŠ΅λ‹ˆλ‹€.

λ¬΄ν•œ 루프: μƒˆλ‘œμš΄ κ·Όκ±° 없이 같은 행동을 λ°˜λ³΅ν•©λ‹ˆλ‹€

ν‹°μΌ“ μ—μ΄μ „νŠΈκ°€ 정책을 κ²€μƒ‰ν•˜κ³  빈 κ²°κ³Όλ₯Ό 받은 λ’€ 같은 검색을 λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ κ΄€μ°°μ—μ„œ μƒˆλ‘œ 얻은 정보가 μ—†μœΌλ―€λ‘œ λ‹€μŒ νŒλ‹¨λ„ 같은 ν–‰λ™μœΌλ‘œ μ΄μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

툴 이름과 인수λ₯Ό μ •κ·œν™”ν•΄ κΈ°λ‘ν•˜κ³ , κ²°κ³Όλ₯Ό 식별할 수 μžˆλŠ” μ§€λ¬Έκ³Ό μž‘μ—… 진척도λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ§€ν‘œλ„ λ‚¨κΉλ‹ˆλ‹€. μƒνƒœ λ³€ν™” 없이 반볡되면 μ§„ν–‰ 정체 μ—¬λΆ€λ₯Ό 검사해야 ν•©λ‹ˆλ‹€. 정상적인 폴링도 같은 ν˜ΈμΆœμ„ λ°˜λ³΅ν•  수 μžˆμœΌλ―€λ‘œ, λͺ¨λ“  쀑볡을 였λ₯˜λ‘œ μ·¨κΈ‰ν•˜κΈ°λ³΄λ‹€ 폴링에 λ³„λ„μ˜ ν•œλ„ 정책을 λ‘‘λ‹ˆλ‹€.

μž¬μ‹œλ„ 전에 무엇이든 λ°”κΏ”μ•Ό ν•©λ‹ˆλ‹€. 검색어, λˆ„λ½λœ μ‹λ³„μž, μ‚¬μš©ν•  데이터 μ†ŒμŠ€, μž‘μ—… λ²”μœ„ 등이 λŒ€μƒμž…λ‹ˆλ‹€. μœ μ˜λ―Έν•˜κ²Œ λ°”κΏ€ 수 μžˆλŠ” 것이 μ—†λ‹€λ©΄ ν•΄κ²°λ˜μ§€ μ•Šμ€ μš”κ΅¬μ‚¬ν•­μ„ λ°˜ν™˜ν•˜κ±°λ‚˜ 도움을 μš”μ²­ν•©λ‹ˆλ‹€. β€œλ‹€μ‹œ μ‹œλ„β€λ§ŒμœΌλ‘œλŠ” 볡ꡬ μ „λž΅μ΄ λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

툴 였λ₯˜: 볡ꡬ κ°€λŠ₯ν•œ μ‹€νŒ¨μ™€ κ²°κ³Όλ₯Ό λͺ¨λ₯΄λŠ” μƒνƒœλ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€

ν˜•μ‹μ΄ 잘λͺ»λœ 인수, κΆŒν•œ κ±°λΆ€, μΌμ‹œμ μΈ μ„œλΉ„μŠ€ μž₯μ• λŠ” 각각 λ‹€λ₯΄κ²Œ λŒ€μ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. λͺ¨λΈμ΄ λ‹€μŒ 행동을 κ²°μ •ν•  수 μžˆλ„λ‘ κ°„κ²°ν•œ 였λ₯˜λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 볡ꡬ κ°€λŠ₯ν•œ 였λ₯˜μ˜ μž¬μ‹œλ„μ—λŠ” ν•œλ„λ₯Ό 두고, ν•΄λ‹Ή μž‘μ—…μ˜ κΆŒν•œ μ•ˆμ—μ„œ ν•΄κ²°ν•  수 μ—†λŠ” 였λ₯˜λΌλ©΄ μ¦‰μ‹œ 멈μΆ₯λ‹ˆλ‹€.

μ“°κΈ° 쀑 λ°œμƒν•œ μ‹œκ°„ μ΄ˆκ³ΌλŠ” 더 κΉŒλ‹€λ‘­μŠ΅λ‹ˆλ‹€. 응닡이 λ„μ°©ν•˜μ§€ μ•Šμ•˜μ–΄λ„ μ“°κΈ°λŠ” μ„±κ³΅ν–ˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 고객 λ©”μ‹œμ§€λ₯Ό λ‹€μ‹œ λ³΄λ‚΄κ±°λ‚˜ λ ˆμ½”λ“œλ₯Ό 또 λ§Œλ“€κΈ° 전에 μž‘μ—… μƒνƒœλ₯Ό μ‘°νšŒν•˜κ±°λ‚˜ λ©±λ“±μ„± ν‚€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. λ©±λ“±μ„± ν‚€λŠ” μ„œλΉ„μŠ€κ°€ λ™μΌν•œ μ˜λ„μ˜ μž‘μ—…μž„μ„ μ•Œμ•„λ³Ό 수 μžˆλ„λ‘ μœ μ§€ν•˜λŠ” μ‹λ³„μžμž…λ‹ˆλ‹€.

볡ꡬ κ³Όμ •μ—μ„œλ„ μ„±κ³΅ν•œ μž‘μ—…μ€ λ³΄μ‘΄ν•©λ‹ˆλ‹€. ν‹°μΌ“ μ½κΈ°λŠ” μ„±κ³΅ν•˜κ³  μ •μ±… 쑰회만 μ‹€νŒ¨ν–ˆλ‹€λ©΄ 전체 μž‘μ—…μ„ λ‹€μ‹œ μ‹€ν–‰ν• μˆ˜λ‘ λΆˆν•„μš”ν•œ 일이 λŠ˜μ–΄λ‚˜λ©°, 이미 λ°œμƒν•œ λ³€κ²½μ΄λ‚˜ 행동을 λ°˜λ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ»¨ν…μŠ€νŠΈ 증가: λͺ¨λ“  원본 λŒ€μ‹  κ²°μ • 사항을 μœ μ§€ν•©λ‹ˆλ‹€

각 κ΄€μ°° κ²°κ³ΌλŠ” λ‹€μŒ λͺ¨λΈ ν˜ΈμΆœμ—μ„œ μž‘μ—… μ§€μΉ¨ 및 μ•žμ„œ ν™•λ³΄ν•œ 근거와 λͺ¨λΈμ˜ 주의λ₯Ό λ‚˜λˆ  κ°–μŠ΅λ‹ˆλ‹€. 큰 툴 응닡은 기술적으둜 μœ νš¨ν•˜λ”λΌλ„ λ‹€μŒ νŒλ‹¨μ˜ μ΄ˆμ μ„ 흐릴 수 μžˆμŠ΅λ‹ˆλ‹€.

툴 좜λ ₯의 크기에 ν•œλ„λ₯Ό 두고, 큰 μ‚°μΆœλ¬Όμ€ ν”„λ‘¬ν”„νŠΈ 밖에 μ €μž₯ν•˜λ©°, λ‹€μ‹œ μ‘°νšŒν•  수 μžˆλŠ” μ°Έμ‘°λ₯Ό ν¬ν•¨ν•œ κ°„κ²°ν•œ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. ν™•μ •ν•œ μ œμ•½ 쑰건, 승인, ν™•μΈλœ 행동은 μ˜μ†μ μΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μƒνƒœμ— λ³΄κ΄€ν•©λ‹ˆλ‹€. μš”μ•½λ¬ΈμœΌλ‘œ 이 기둝을 μ„€λͺ…ν•  μˆ˜λŠ” μžˆμ–΄λ„, μš”μ•½λ¬Έμ΄ μœ μΌν•œ 사본이 λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.

Claude SDK λ¬Έμ„œλŠ” μ»¨ν…μŠ€νŠΈ ν•œλ„ λΆ€κ·Όμ—μ„œ μžλ™ 압좕이 μˆ˜ν–‰λœλ‹€κ³  μ„€λͺ…ν•˜λ©°, μš”μ•½ κ³Όμ •μ—μ„œ 초기 지침이 μ‚¬λΌμ§ˆ 수 μžˆλ‹€κ³  κ²½κ³ ν•©λ‹ˆλ‹€. μ€‘μš”ν•œ μƒνƒœλ₯Ό μ˜λ„μ μœΌλ‘œ 보쑴해야 ν•˜λŠ” μ΄μœ μž…λ‹ˆλ‹€. Claude μ»¨ν…μŠ€νŠΈ μ••μΆ•. μ»¨ν…μŠ€νŠΈ ν’ˆμ§ˆ μ €ν•˜ μ„€λͺ…μ—μ„œλŠ” μ»¨ν…μŠ€νŠΈ μœˆλ„ μ•ˆμ— λ“€μ–΄κ°„λ‹€κ³  ν•„μš”ν•œ 정보λ₯Ό 잘 λ– μ˜¬λ¦΄ 수 μžˆλŠ” 것은 μ•„λ‹Œ 이유λ₯Ό λ‹€λ£Ήλ‹ˆλ‹€.

μ‹€ν–‰ 기둝으둜 운영자의 μ§ˆλ¬Έμ— λ‹΅ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€

각 μž‘μ—…μ—λŠ” μ‹λ³„μž, λͺ¨λΈ 호좜 횟수, 툴 μ‹€ν–‰ μ‹œλ„, μ‚¬μš©λŸ‰, κ²½κ³Ό μ‹œκ°„, λŒ€κΈ° 쀑인 승인, μ’…λ£Œ μ‚¬μœ λ₯Ό κΈ°λ‘ν•©λ‹ˆλ‹€. 각 μ‹€ν–‰μ—λŠ” 무엇을 μš”μ²­ν–ˆκ³ , 무엇이 μ™„λ£Œλ˜μ—ˆμœΌλ©°, μž‘μ—… μƒνƒœκ°€ λ°”λ€Œμ—ˆλŠ”μ§€λ₯Ό κΈ°λ‘ν•©λ‹ˆλ‹€.

λͺ¨λΈ μš”μ²­, 툴 μ‹€ν–‰, λŸ°νƒ€μž„ λ‹¨κ³„μ˜ μΉ΄μš΄ν„°λ₯Ό λ”°λ‘œ μœ μ§€ν•©λ‹ˆλ‹€. λŒ€μ‹œλ³΄λ“œμ— λ‹¨μœ„ 없이 β€œ40λ‹¨κ³„β€λΌκ³ λ§Œ ν‘œμ‹œν•˜λ©΄ μ‹€ν–‰ λ‚΄μš©μ„ μ„€λͺ…ν•  수 μ—†μŠ΅λ‹ˆλ‹€. ν•˜μœ„ μž‘μ—…κ³Ό μž¬μ‹œλ„λ„ μƒμœ„ μž‘μ—…μ˜ μ‚¬μš©λŸ‰ 계산에 ν¬ν•¨ν•©λ‹ˆλ‹€. μ—μ΄μ „νŠΈ μ‚¬μ΄λ‘œ μž‘μ—…μ΄ λ„˜μ–΄κ°ˆ λ•Œμ˜ μ±…μž„ μ†Œμž¬λŠ” AI μ—μ΄μ „νŠΈ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ κ°€μ΄λ“œμ—μ„œ μ„€λͺ…ν•©λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ 루프에 λŒ€ν•œ κ³Όλ„ν•œ κΈ°λŒ€λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

반볡 νšŸμˆ˜κ°€ λ§Žλ‹€κ³  진척이 ν¬λ‹€λŠ” λœ»μ€ μ•„λ‹™λ‹ˆλ‹€. λ£¨ν”„λŠ” ν”Όλ“œλ°±μ„ ν™œμš©ν•  기회λ₯Ό λ°˜λ³΅ν•΄μ„œ μ œκ³΅ν•©λ‹ˆλ‹€. κ·Έ 반볡이 μœ μš©ν•œμ§€λŠ” ν”Όλ“œλ°±μ˜ ν’ˆμ§ˆκ³Ό 성곡을 μ–΄λ–»κ²Œ μ •μ˜ν–ˆλŠ”μ§€μ— 달렀 μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈμ΄ β€œμ™„λ£Œβ€λΌκ³  λ§ν•˜λ©΄ μƒν˜Έμž‘μš©μ—μ„œ μžμ‹ μ˜ 역할을 끝낸 κ²ƒμž…λ‹ˆλ‹€. 단계 수 μƒν•œμ΄ μžˆλ‹€λŠ” 것은 싀행에 ν•œλ„κ°€ μžˆμ—ˆμŒμ„ λ³΄μ—¬μ€λ‹ˆλ‹€. μ–΄λŠ μͺ½λ„ 고객 지원 닡변이 μ •ν™•ν•˜λ‹€κ±°λ‚˜ μš”μ²­ν•œ 변경이 μ‹€μ œλ‘œ μ΄λ£¨μ–΄μ‘Œλ‹€λŠ” μ¦κ±°λŠ” μ•„λ‹™λ‹ˆλ‹€.

ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•΄λ„ κΆŒν•œ, μƒνƒœ 보쑴, 볡ꡬ 방식을 μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν”„λ ˆμž„μ›Œν¬λŠ” μ‹€ν–‰ μˆ˜λ‹¨μ„ μ œκ³΅ν•©λ‹ˆλ‹€. 무엇을 μ„±κ³΅μœΌλ‘œ 보고 μ–΄λ–€ 행동을 ν—ˆμš©ν• μ§€λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •ν•©λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ ν…ŒμŠ€νŠΈ λ£¨ν”„λŠ” λ³„λ„μ˜ μž‘μ—…μž…λ‹ˆλ‹€

μ—μ΄μ „νŠΈ ν…ŒμŠ€νŠΈ λ£¨ν”„λŠ” 사둀와 수용 기쀀에 λΉ„μΆ”μ–΄ λ™μž‘μ„ ν‰κ°€ν•©λ‹ˆλ‹€. μ‹€ν–‰ 루프 λ°”κΉ₯에 검사기λ₯Ό 두어 κ²°κ³Όλ₯Ό μŠΉμΈν•˜κ±°λ‚˜, λ‹€μ‹œ μ‹œλ„ν•˜λ„λ‘ ν”Όλ“œλ°±μ„ 보낼 수 μžˆμŠ΅λ‹ˆλ‹€. LangChain의 루프 μ—”μ§€λ‹ˆμ–΄λ§ μ„€λͺ…은 μ‹€ν–‰, 검증, 이벀트둜 μ‹œμž‘λ˜λŠ” μž‘μ—…μ„ κ΅¬λΆ„ν•©λ‹ˆλ‹€.

검사기에도 ν•œλ„κ°€ ν•„μš”ν•©λ‹ˆλ‹€. λ‹€λ₯Έ λͺ¨λΈμ—κ²Œ λ‹΅λ³€μ˜ ν’ˆμ§ˆμ„ λ°˜λ³΅ν•΄μ„œ 물으면 결정적인 μ¦κ±°λŠ” μ–»μ§€ λͺ»ν•œ 채 ν•œλ„λ§Œ μ†Œλͺ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ°€λŠ₯ν•˜λ©΄ ꡬ체적인 검사 방식을 μš°μ„ ν•©λ‹ˆλ‹€. ν•„μˆ˜ ν•„λ“œκ°€ μžˆλŠ”μ§€, μΈμš©ν•œ λ ˆμ½”λ“œκ°€ μΌμΉ˜ν•˜λŠ”μ§€, μ“°κΈ° 확인 기둝이 μ‘΄μž¬ν•˜λŠ”μ§€, μ˜ˆμƒν•œ ν…ŒμŠ€νŠΈκ°€ ν†΅κ³Όν•˜λŠ”μ§€ 등을 ν™•μΈν•©λ‹ˆλ‹€.

κ°œλ°œμžμ™€ μš΄μ˜μžκ°€ λ‹€μŒμœΌλ‘œ ν•  일

첫 μ—μ΄μ „νŠΈλ₯Ό λ§Œλ“œλŠ” 개발자: λ²”μœ„κ°€ 쒁은 읽기 μ „μš© μž‘μ—…, λͺ…μ‹œμ μΈ μ™„λ£Œ 쑰건, ν•œλ„κ°€ μžˆλŠ” μ‹€ν–‰λΆ€ν„° μ‹œμž‘ν•©λ‹ˆλ‹€. μ œμ•ˆν•œ 행동을 보여주고, κΆŒν•œμ„ κ°•μ œν•˜λ©°, κ²°κ³Όκ°€ λΆˆλΆ„λͺ…ν•œ μƒν™©μ—μ„œ 볡ꡬ할 수 μžˆμ„ λ•Œ μ“°κΈ° κΈ°λŠ₯을 μΆ”κ°€ν•©λ‹ˆλ‹€. μ‹€ν–‰ μˆœμ„œλ₯Ό 이미 μ•Œκ³  μžˆλ‹€λ©΄ κ³ μ • μ›Œν¬ν”Œλ‘œλ§ŒμœΌλ‘œ μΆ©λΆ„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΉ„μš©μ΄ 많이 λ“  싀행을 μ‘°μ‚¬ν•˜λŠ” 운영자: λͺ¨λΈμ„ λ°”κΎΈκ±°λ‚˜ ν•œλ„λ₯Ό 높이기 전에 반볡 호좜, 연쇄 μž¬μ‹œλ„, 점점 μ»€μ§€λŠ” κ΄€μ°° κ²°κ³Όλ₯Ό μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. μ–΄λŠ 단계가 μœ μš©ν•œ κ·Όκ±°λ₯Ό λ”ν–ˆλŠ”μ§€, μ‹€μ œλ‘œ μ–΄λ–€ μΉ΄μš΄ν„°κ°€ μž‘μ—…μ„ λ©ˆμ·„λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

μ‹ λ’°ν•  λ§Œν•œ κ³ μ • μ›Œν¬ν”Œλ‘œλ₯Ό κ°–μΆ˜ νŒ€: 상황에 따라 νˆ΄μ„ μ„ νƒν•˜λŠ” 방식이 ꡬ체적인 문제λ₯Ό 해결해쀄 λ•ŒκΉŒμ§€ κΈ°μ‘΄ μ›Œν¬ν”Œλ‘œλ₯Ό μœ μ§€ν•©λ‹ˆλ‹€. 쀑간 κ²°κ³Όκ°€ λ‹€μŒ 행동을 κ²°μ •ν•  λ•Œ λ£¨ν”„μ˜ κ°€μΉ˜κ°€ μƒκΉλ‹ˆλ‹€. 반볡 μžμ²΄λŠ” λ‹€μ‹œ ꡬ좕할 μ΄μœ κ°€ μ•„λ‹™λ‹ˆλ‹€.

λ‹€μŒ 업무일에 λ°”λ‘œ ν•΄λ³Ό 일은 μ΄λ ‡μŠ΅λ‹ˆλ‹€. λŒ€ν‘œ μž‘μ—… ν•˜λ‚˜λ₯Ό 골라 μ™„λ£Œ 경둜, ν•œλ„ 도달에 λ”°λ₯Έ μ’…λ£Œ, 승인 λŒ€κΈ°, 행동 κ±°λΆ€, 툴 μ‹€νŒ¨ 경둜λ₯Ό μ‹€ν–‰ν•΄ λ΄…λ‹ˆλ‹€. 각 κ²½λ‘œκ°€ λΆ„λͺ…ν•œ μƒνƒœλ₯Ό λ‚¨κΈ°λŠ”μ§€, μž¬κ°œν•  λ•Œ μ™„λ£Œν•œ μž‘μ—…κ³Ό 남은 ν•œλ„κ°€ λͺ¨λ‘ μœ μ§€λ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ 루프 자주 λ¬»λŠ” 질문

μ—μ΄μ „νŠΈ λ£¨ν”„μ˜ λ„€ λ‹¨κ³„λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

λͺ¨λΈ 호좜, 툴 호좜, κ΄€μ°°, λ°˜λ³΅μž…λ‹ˆλ‹€. 관찰은 λͺ¨λΈμ— λŒλ €μ£ΌλŠ” 툴 μ‹€ν–‰ κ²°κ³Όλ₯Ό λœ»ν•©λ‹ˆλ‹€. μ΅œμ’… 닡변이 λ‚˜μ˜€λ©΄ λ‹€μŒ 툴 호좜 전에 루프λ₯Ό 끝낼 수 μžˆμŠ΅λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ λ£¨ν”„λŠ” μ–΄λ–»κ²Œ κ΅¬ν˜„ν•©λ‹ˆκΉŒ?

λͺ¨λΈμ— 툴 ν˜ΈμΆœμ„ μ „λ‹¬ν•˜λŠ” λ””μŠ€νŒ¨μ²˜μ™€ μ €μž₯된 μž‘μ—… μƒνƒœλ₯Ό μ—°κ²°ν•©λ‹ˆλ‹€. 각 ν˜ΈμΆœμ— λŒ€μ‘ν•˜λŠ” 툴 κ²°κ³Όλ₯Ό λ‹€μŒ ν˜ΈμΆœμ— μ „λ‹¬ν•©λ‹ˆλ‹€. μ™„λ£Œ 검사, λͺ…μ‹œμ μΈ ν•œλ„, λ―Όκ°ν•œ 행동 μ „ 승인, ν•œλ„κ°€ μžˆλŠ” 였λ₯˜ 볡ꡬλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ λ£¨ν”„λž€ 무엇이며, μ–Έμ œ λ©ˆμΆœμ§€ μ–΄λ–»κ²Œ κ²°μ •ν•©λ‹ˆκΉŒ?

λͺ¨λΈμ΄ 행동을 μš”μ²­ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό ν™œμš©ν•˜λ„λ‘ ν•˜λŠ” λŸ°νƒ€μž„μ˜ 반볡 μ‹€ν–‰ κ΅¬μ‘°μž…λ‹ˆλ‹€. 운영 ν™˜κ²½μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μž‘μ—… μ™„λ£Œλ‚˜ ν•œλ„ μ†Œμ§„ μ‹œ μ’…λ£Œν•˜κ³ , μ‚¬λžŒμ˜ μž…λ ₯이 ν•„μš”ν•˜λ©΄ μΌμ‹œ μ€‘μ§€ν•˜λ„λ‘ λͺ…μ‹œμ μœΌλ‘œ 섀계해야 ν•©λ‹ˆλ‹€. λͺ¨λΈμ΄ 끝내겠닀고 νŒλ‹¨ν•œ 것은 이 μ •μ±…μ˜ μž…λ ₯ 쀑 ν•˜λ‚˜μΌ λΏμž…λ‹ˆλ‹€.

AIκ°€ 같은 μž‘μ—…μ„ λ¬΄ν•œνžˆ λ°˜λ³΅ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

λ‹€μŒ νŒλ‹¨μ— 계속 같은 λ¬΄μ΅ν•œ μž…λ ₯이 전달될 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. λ°˜λ³΅λ˜λŠ” 툴 μ‹€νŒ¨, λˆ„λ½λœ μƒνƒœ, λΆˆλΆ„λͺ…ν•œ μ™„λ£Œ 기쀀이 이 νŒ¨ν„΄μ„ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 진행이 λ©ˆμ·„λŠ”μ§€ κ°μ§€ν•˜κ³  쑰건을 λ°”κΎΈκ±°λ‚˜ μ’…λ£Œν•΄μ•Ό ν•©λ‹ˆλ‹€.

AI에 μ–΄λ–€ μ§€μ‹œλ₯Ό ν”Όν•΄μ•Ό ν•©λ‹ˆκΉŒ?

자율적으둜 μˆ˜ν–‰ν•˜λŠ” μž‘μ—…μ—μ„œλŠ” β€œμ™„λ²½ν•΄μ§ˆ λ•ŒκΉŒμ§€ 계속 κ°œμ„ ν•΄β€μ²˜λŸΌ 끝이 μ •ν•΄μ§€μ§€ μ•Šμ€ μ§€μ‹œλ₯Ό ν”Όν•©λ‹ˆλ‹€. λŒ€μ‹  μ‚°μΆœλ¬Όκ³Ό 수용 기쀀을 μ •μ˜ν•©λ‹ˆλ‹€. μ§€μ‹œλ¬Έμ„ 더 잘 쓰더라도 λŸ°νƒ€μž„μ—μ„œ ν•œλ„λ₯Ό κ°•μ œν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ—μ΄μ „νŠΈ λ£¨ν”„μ—λŠ” μ–΄λ–€ 반볡 ꡬ쑰가 μžˆμŠ΅λ‹ˆκΉŒ?

λͺ¨λΈ, 행동, 관찰이 λ°˜λ³΅λ˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—λŠ” μ‹€ν–‰ 루프λ₯Ό κ°μ‹Έλ©΄μ„œ κ²€μ¦μ΄λ‚˜ 주기적인 트리거λ₯Ό μ²˜λ¦¬ν•˜λŠ” λ°”κΉ₯ 루프가 μžˆμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 각 루프에 μ±…μž„ 주체와 μ’…λ£Œ κ·œμΉ™μ΄ μžˆλ„λ‘ μ„œλ‘œ ꡬ뢄해야 ν•©λ‹ˆλ‹€.

ChatGPTλŠ” μ—μ΄μ „νŠΈμž…λ‹ˆκΉŒ, LLMμž…λ‹ˆκΉŒ?

LLM은 λͺ¨λΈμž…λ‹ˆλ‹€. μ—μ΄μ „νŠΈλŠ” λͺ¨λΈμ— 툴과 반볡적인 μ˜μ‚¬κ²°μ •μ„ κ²°ν•©ν•΄ μ‹€ν–‰ν•  수 μžˆλŠ” μ£Όλ³€ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. ChatGPTλ‚˜ λ‹€λ₯Έ λ„μš°λ―Έλ₯Ό μ„€λͺ…ν•  λ•ŒλŠ” 이 ꡬ쑰적 차이λ₯Ό κΈ°μ€€μœΌλ‘œ μ‚ΌμŠ΅λ‹ˆλ‹€. μ œν’ˆ μ΄λ¦„λ§ŒμœΌλ‘œλŠ” νŠΉμ • μƒν˜Έμž‘μš©μ—μ„œ μ‹€μ œλ‘œ 무엇이 μ‹€ν–‰λ˜μ—ˆλŠ”μ§€ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

AI μ—μ΄μ „νŠΈμ˜ 5κ°€μ§€ μœ ν˜•μ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

ν”νžˆ μ‚¬μš©ν•˜λŠ” λΆ„λ₯˜λŠ” λ‹¨μˆœ λ°˜μ‚¬ν˜•, λͺ¨λΈ 기반 λ°˜μ‚¬ν˜•, λͺ©ν‘œ 기반, 효용 기반, ν•™μŠ΅ν˜• μ—μ΄μ „νŠΈμž…λ‹ˆλ‹€. IBM의 μ—μ΄μ „νŠΈ κ°œμš”λ„ 이 λ‹€μ„― λ²”μ£Όλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λŠ” μ—μ΄μ „νŠΈμ˜ 행동을 λΆ„λ₯˜ν•œ 것이며, LLM μ‹€ν–‰ λ£¨ν”„μ˜ λ‹€μ„― 단계λ₯Ό λœ»ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

AIμ—μ„œ λ£¨ν”„λž€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?

κ°±μ‹ λœ μž…λ ₯μ΄λ‚˜ μƒνƒœλ₯Ό ν™œμš©ν•΄ μ–΄λ–€ 과정을 λ°˜λ³΅ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. 이 κΈ€μ˜ μ—μ΄μ „νŠΈ λ£¨ν”„μ—μ„œλŠ” 툴 μ‹€ν–‰ 결과와 λͺ¨λΈμ˜ λ‹€μŒ νŒλ‹¨μœΌλ‘œ μƒνƒœκ°€ κ°±μ‹ λ©λ‹ˆλ‹€. λͺ¨λΈμ„ λ°˜λ³΅ν•΄μ„œ ν•™μŠ΅μ‹œν‚€λŠ” κ³Όμ •κ³ΌλŠ” λ‹€λ¦…λ‹ˆλ‹€.

AI μ‹œμŠ€ν…œμ„ λ§Œλ“€κ³  μš΄μ˜ν•˜λŠ” μ‹€μš©μ μΈ κ°€μ΄λ“œλ₯Ό 받아보렀면 λ‰΄μŠ€λ ˆν„°λ₯Ό κ΅¬λ…ν•˜μ„Έμš”.

κ²Œμ‹œμΌ
μΉ΄ν…Œκ³ λ¦¬
Build
λ°”μ΄λΈŒ μ½”λ”©κ³Ό 에이전틱 μ½”λ”©μ˜ 차이, AI에 μ–΄λ””κΉŒμ§€ 맑길까

λ°”μ΄λΈŒ μ½”λ”©κ³Ό 에이전틱 μ½”λ”©μ˜ 차이, AI에 μ–΄λ””κΉŒμ§€ 맑길까

λ°”μ΄λΈŒ μ½”λ”©κ³Ό 에이전틱 코딩은 무엇이 λ‹€λ₯ΌκΉŒμš”? Claude Code, Codex, Cursor, GitHub Copilot의 μž‘λ™ 방식뢀터 λͺ…μ„Έ μž‘μ„±, κΆŒν•œκ³Ό μƒŒλ“œλ°•μŠ€ μ„€μ •, ν…ŒμŠ€νŠΈμ™€ μ½”λ“œ λ¦¬λ·°κΉŒμ§€ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. 검증 κ°€λŠ₯ν•œ λ²”μœ„ μ•ˆμ—μ„œ AI에 κ°œλ°œμ„ λ§‘κΈ°λŠ” 기쀀을 μ •λ¦¬ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 24일Build
μ»¨ν…μŠ€νŠΈ μ—”μ§€λ‹ˆμ–΄λ§: κΈ΄ AI λŒ€ν™”κ°€ λΆ€μ •ν™•ν•΄μ§€λŠ” μ΄μœ μ™€ 해결법

μ»¨ν…μŠ€νŠΈ μ—”μ§€λ‹ˆμ–΄λ§: κΈ΄ AI λŒ€ν™”κ°€ λΆ€μ •ν™•ν•΄μ§€λŠ” μ΄μœ μ™€ 해결법

AI λŒ€ν™”κ°€ κΈΈμ–΄μ§ˆμˆ˜λ‘ λ‹΅λ³€μ˜ 정확도가 λ–¨μ–΄μ§€λŠ” μ»¨ν…μŠ€νŠΈ 둜트, μ–΄λ–»κ²Œ μ§„λ‹¨ν•˜κ³  쀄일 수 μžˆμ„κΉŒμš”? Chroma μ—°κ΅¬μ˜ 결과와 ν•œκ³„λ₯Ό 짚고, μ»¨ν…μŠ€νŠΈ μ••μΆ•Β·κ²€μƒ‰Β·ν•˜μœ„ μ—μ΄μ „νŠΈΒ·νˆ΄ 좜λ ₯ μ •λ¦¬λ‘œ λ‹€μŒ νŒλ‹¨μ— ν•„μš”ν•œ κ·Όκ±°λ₯Ό λ³΄μ‘΄ν•˜λŠ” 싀무 방법을 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€.2026λ…„ 10μ›” 24일Build
BM25 ν•˜μ΄λΈŒλ¦¬λ“œ 검색: 벑터 κ²°ν•©λΆ€ν„° μž¬ν˜„μœ¨ κ²€μ¦κΉŒμ§€

BM25 ν•˜μ΄λΈŒλ¦¬λ“œ 검색: 벑터 κ²°ν•©λΆ€ν„° μž¬ν˜„μœ¨ κ²€μ¦κΉŒμ§€

BM25와 벑터 검색을 κ²°ν•©ν•˜λŠ” ν•˜μ΄λΈŒλ¦¬λ“œ κ²€μƒ‰μ˜ 원리와 κ΅¬ν˜„ 방법을 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. RRF와 가쀑 점수의 차이, μ •ν™•ν•œ μ‹λ³„μž 처리, ElasticsearchΒ·WeaviateΒ·Pinecone μ„€μ •, λΌλ²¨λ§ν•œ 질의λ₯Ό ν™œμš©ν•œ recall@k λΉ„κ΅κΉŒμ§€ μ•ˆλ‚΄ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 24일Build
MoE λͺ¨λΈ μ΄ν•΄ν•˜κΈ°: μ „μ²΄Β·ν™œμ„± νŒŒλΌλ―Έν„°μ™€ 운영 λΉ„μš©

MoE λͺ¨λΈ μ΄ν•΄ν•˜κΈ°: μ „μ²΄Β·ν™œμ„± νŒŒλΌλ―Έν„°μ™€ 운영 λΉ„μš©

MoE λͺ¨λΈμ€ μ–΄λ–»κ²Œ 토큰당 μ—°μ‚°λŸ‰μ„ μ€„μ΄λ©΄μ„œλ„ 큰 λ©”λͺ¨λ¦¬λ₯Ό μš”κ΅¬ν• κΉŒμš”? λΌμš°ν„°μ™€ μ—‘μŠ€νΌνŠΈμ˜ μž‘λ™ 원리, μ „μ²΄Β·ν™œμ„± νŒŒλΌλ―Έν„°μ˜ 차이λ₯Ό Kimi, Qwen, Mixtral μ‚¬λ‘€λ‘œ μ„€λͺ…ν•©λ‹ˆλ‹€. API 선택과 직접 ν˜ΈμŠ€νŒ…μ— ν•„μš”ν•œ λ©”λͺ¨λ¦¬Β·μ§€μ—° μ‹œκ°„Β·μ²˜λ¦¬λŸ‰μ˜ νŒλ‹¨ 기쀀도 μ •λ¦¬ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 24일Build
AI ν‰κ°€λ‘œ LLM 변경을 κ²€μ¦ν•˜λŠ” 법: 평가 주도 개발 μ‹€μ „ κ°€μ΄λ“œ

AI ν‰κ°€λ‘œ LLM 변경을 κ²€μ¦ν•˜λŠ” 법: 평가 주도 개발 μ‹€μ „ κ°€μ΄λ“œ

AI 평가λ₯Ό ν”„λ‘¬ν”„νŠΈ μˆ˜μ • 전에 μ„€κ³„ν•˜λŠ” 평가 주도 κ°œλ°œμ„ μ†Œκ°œν•©λ‹ˆλ‹€. μ£Όλ¬Έ 상담 사둀 20개둜 κΈ°μ€€μ„  μΈ‘μ •λΆ€ν„° ν•„μˆ˜ 검사와 λͺ¨λΈ 채점, 사둀별 비ꡐ, μΆœμ‹œ κ²°μ •κΉŒμ§€ λ”°λΌκ°‘λ‹ˆλ‹€. 평균 μ μˆ˜κ°€ μ˜¬λΌλ„ μΆœμ‹œλ₯Ό 막아야 ν•˜λŠ” μ΄μœ μ™€ CI μžλ™ν™”, μ‹€μ„œλΉ„μŠ€ μ‹€νŒ¨λ₯Ό λ°˜μ˜ν•˜λŠ” 방법을 ν™•μΈν•˜μ„Έμš”.2026λ…„ 10μ›” 24일Build
TTFT와 μ΄ˆλ‹Ή 토큰 수둜 λ³΄λŠ” LLM 응닡 속도 츑정법

TTFT와 μ΄ˆλ‹Ή 토큰 수둜 λ³΄λŠ” LLM 응닡 속도 츑정법

TTFT와 μ΄ˆλ‹Ή 토큰 수λ₯Ό ꡬ뢄해 LLM 응닡 속도λ₯Ό μ •ν™•νžˆ μ½λŠ” 방법을 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. Groq와 Cerebras의 곡개 수치, 독립 벀치마크의 μΈ‘μ • 쑰건을 ν™•μΈν•˜κ³  Python으둜 첫 좜λ ₯ μ§€μ—°κ³Ό 슀트리밍 속도λ₯Ό 직접 μž¬μ–΄ μ‹€μ œ μ‚¬μš©μžμ˜ λŒ€κΈ° μ‹œκ°„μ„ κΈ°μ€€μœΌλ‘œ λͺ¨λΈμ„ λΉ„κ΅ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 24일Build
LLMOps 싀무 κ°€μ΄λ“œ: 평가뢀터 배포·μž₯μ•  λŒ€μ‘κΉŒμ§€

LLMOps 싀무 κ°€μ΄λ“œ: 평가뢀터 배포·μž₯μ•  λŒ€μ‘κΉŒμ§€

LLMOps의 κ°œλ…κ³Ό MLOpsμ™€μ˜ 차이뢀터 LLM 평가, 배포, νŠΈλ ˆμ΄μ‹±, λΉ„μš© ν†΅μ œ, κ°€λ“œλ ˆμΌ, μž₯μ•  λŒ€μ‘κΉŒμ§€ μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. 3인 νŒ€μ΄ λ¨Όμ € κ°–μΆ°μ•Ό ν•  μ΅œμ†Œ 운영 체계와 30인 νŒ€μ˜ μ—­ν•  λΆ„λ‹΄, LangfuseΒ·LangSmithΒ·LiteLLM의 λ„μž… 기쀀을 싀무 μ˜ˆμ‹œλ‘œ μ •λ¦¬ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 23일Build
JSON μŠ€ν‚€λ§ˆλ‘œ AI 응닡 닀루기: OpenAIΒ·ClaudeΒ·Gemini κ΅¬μ‘°ν™”λœ 좜λ ₯

JSON μŠ€ν‚€λ§ˆλ‘œ AI 응닡 닀루기: OpenAIΒ·ClaudeΒ·Gemini κ΅¬μ‘°ν™”λœ 좜λ ₯

JSON μŠ€ν‚€λ§ˆλ‘œ OpenAI, Claude, Gemini의 κ΅¬μ‘°ν™”λœ 좜λ ₯을 κ΅¬ν˜„ν•˜λŠ” 방법을 μ‚΄νŽ΄λ΄…λ‹ˆλ‹€. μ œκ³΅μ—…μ²΄λ³„ μ„€μ •κ³Ό 지원 λ²”μœ„, μ²­κ΅¬μ„œ μΆ”μΆœ 예제, 둜컬 검증과 μž¬μ‹œλ„, 응닡 κ±°λΆ€Β·μΆœλ ₯ 잘림·슀트리밍 μ²˜λ¦¬κΉŒμ§€ μ‹€μ œ μ•±μ—μ„œ 확인해야 ν•  기쀀을 μ •λ¦¬ν•©λ‹ˆλ‹€.2026λ…„ 10μ›” 23일Build
λ‰΄μŠ€λ ˆν„°

λ§€μ£Ό μΌμš”μΌ, ν•œ ν†΅μ˜ νŽΈμ§€.뜨거운 의견이 μ•„λ‹Œ, λŒμ•„κ°€λŠ” μ‹œμŠ€ν…œ.

μ£Όκ°„ λ°œν–‰. 슀팸 μ—†μŒ. μ–Έμ œλ“  ν•΄μ§€ κ°€λŠ₯ν•©λ‹ˆλ‹€.