ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
SubAgents: Langchain Agents as Tools with Langfuse using AWS Bedrock Nova ๐Ÿค–
Dev.toDev.to
AI/ML

SubAgents-as-Tools ๊ตฌ์กฐ๋ฅผ ํ†ตํ•œ AI ์—์ด์ „ํŠธ ๋ชจ๋“ˆํ™” ๋ฐ ํ™•์žฅ์„ฑ ํ™•๋ณด

SubAgents: Langchain Agents as Tools with Langfuse using AWS Bedrock Nova ๐Ÿค–

ร–mer Berat Sezer2026๋…„ 4์›” 13์ผ14๋ถ„intermediate

Context

๋‹จ์ผ ๊ฑฐ๋Œ€ ์—์ด์ „ํŠธ๊ฐ€ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ •ํ™•๋„ ์ €ํ•˜ ๋ฐ ๋””๋ฒ„๊น…์˜ ์–ด๋ ค์›€์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ. ๋ณต์žกํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฑ…์ž„ ๋ฒ”์œ„๋ฅผ ์ขํžŒ ์ „๋ฌธ ์—์ด์ „ํŠธ๋“ค์˜ ์œ ๊ธฐ์  ํ˜‘์—… ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•จ.

Technical Solution

  • ๊ฐ ๋„๋ฉ”์ธ(์‹œ์žฅ, ์žฌ๋ฌด, ๋ฆฌ์Šคํฌ)์— ํŠนํ™”๋œ System Prompt๋ฅผ ๊ฐ€์ง„ SubAgents๋ฅผ ๊ฐœ๋ณ„ ์ •์˜ํ•˜์—ฌ ์ฑ…์ž„ ๋ถ„๋ฆฌ
  • SubAgent๋ฅผ ๋‹จ์ˆœํ•œ LLM ํ˜ธ์ถœ์ด ์•„๋‹Œ ์ •์˜๋œ Input/Output Schema๋ฅผ ๊ฐ€์ง„ Tool ํ˜•ํƒœ๋กœ ๋ž˜ํ•‘ํ•˜์—ฌ Main Agent์— ์ œ๊ณต
  • Main Agent๊ฐ€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ SubAgent Tool์„ ์„ ํƒํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” Delegation ๊ตฌ์กฐ ์„ค๊ณ„
  • SubAgent ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค์‹œ ์„ธ๋ถ€ Tool(search_market_data, estimate_costs ๋“ฑ)์„ ํ™œ์šฉํ•˜๋Š” ๊ณ„์ธต์  Tool-use ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„
  • Langfuse Callback Handler๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ๋ณต์žกํ•œ SubAgent ํ˜ธ์ถœ ์ฒด์ธ์˜ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•˜๊ณ  ๋ณ‘๋ชฉ ์ง€์ ์„ ์‹๋ณ„ํ•˜๋Š” ๊ด€์ธก์„ฑ ํ™•๋ณด

- ์—์ด์ „ํŠธ์˜ ์ฑ…์ž„ ๋ฒ”์œ„๊ฐ€ ๋„“์–ด์งˆ ๊ฒฝ์šฐ SubAgents-as-Tools ํŒจํ„ด์„ ํ†ตํ•œ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ ๊ฒ€ํ†  - ๊ฐ SubAgent์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ํƒ€์ž…์„ ์—„๊ฒฉํžˆ ์ •์˜ํ•˜์—ฌ ์ธํ„ฐํŽ˜์ด์Šค ์ผ๊ด€์„ฑ ์œ ์ง€ - ๊ณ„์ธต์  ํ˜ธ์ถœ ๊ตฌ์กฐ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ ์ตœ์ ํ™” ๋ฐ ๋ณ‘๋ ฌ ํ˜ธ์ถœ ๊ฐ€๋Šฅ์„ฑ ํ™•์ธ - LLM์˜ ์ถ”๋ก  ๊ณผ์ •์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ Langfuse์™€ ๊ฐ™์€ Observability ๋„๊ตฌ ๋„์ž…

์›๋ฌธ ์ฝ๊ธฐ