Deep Agents๋Š” LangChain/LangGraph ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  ์—์ด์ „ํŠธ ํ•˜๋‹ˆ์Šค๋‹ค. ํ”Œ๋ž˜๋‹, ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ, ์…ธ ์‹คํ–‰, ์„œ๋ธŒ์—์ด์ „ํŠธ ๋ถ„๊ธฐ, ๊ธด ๋Œ€ํ™” ์š”์•ฝ๊นŒ์ง€ ๊ธฐ๋ณธ ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ๋ฌถ์–ด ์ œ๊ณตํ•œ๋‹ค.

์ด ๋ ˆํฌ๋Š” 9์œ„ ยท โญ +4.9K๋กœ ํšŒ์ž๋œ ํ”„๋กœ์ ํŠธ๋‹ค. ๋ณ„ ์ˆซ์ž๋งŒ ๋ณด๋ฉด ์œ ํ–‰์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง€๊ธˆ ์–ด๋””์— ์‹œ๊ฐ„์„ ์“ฐ๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ฝค ์†”์งํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ธ๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ํ”„๋กฌํ”„ํŠธยท๋„๊ตฌยทํŒŒ์ผ์‹œ์Šคํ…œยท์ปจํ…์ŠคํŠธ ์š”์•ฝ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฌถ๋Š” ๊ฑด ๊ท€์ฐฎ๋‹ค. Deep Agents๋Š” ๋ฐ”๋กœ ๊ทธ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ธ๋‹ค. ํŠนํžˆ โ€œClaude Code์—์„œ ๋ญ๊ฐ€ ๋จนํ˜”๋‚˜โ€๋ฅผ ์˜คํ”ˆ์†Œ์Šค์Šค๋Ÿฝ๊ฒŒ ์žฌ๊ตฌ์„ฑํ•œ ๋А๋‚Œ์ด๋ผ ๊ด€์‹ฌ์ด ๋ชฐ๋ฆฌ๊ธฐ ์ข‹์•˜๋‹ค.

flowchart LR
A[๋ฌธ์ œ] --> B[deepagents]
B --> C[์„ค์น˜]
C --> D[์ตœ์†Œ ์‹คํ—˜]
D --> E[์—…๋ฌด ์ ์šฉ ํŒ๋‹จ]

์น ํŒ ํŒ์„œํ˜• ์น˜ํŠธ์‹œํŠธ

  • ์ด ๋ ˆํฌ์˜ ํ•œ ์ค„ ํ‚ค์›Œ๋“œ๋Š” deepagents๋‹ค.
  • ์ด๋ฒˆ ๋ณด๊ฐ•์—์„œ๋Š” ์„ค์น˜์™€ ์‚ฌ์šฉ ์ˆœ์„œ๋ฅผ ๊ณต์‹ README ๊ธฐ์ค€์œผ๋กœ ๋” ์ด˜์ด˜ํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ๋‹ค.
  • ์ฝ์„ ๋•Œ๋Š” ์ „์ œ ์กฐ๊ฑด โ†’ ์„ค์น˜ โ†’ ์ฒซ ์‹คํ–‰ โ†’ ๊ฒ€์ฆ ์ˆœ์„œ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.
  • โ€œ๋Œ€๋‹จํ•ด ๋ณด์ธ๋‹คโ€๋ณด๋‹ค โ€œ๋‚ด ์—…๋ฌด์—์„œ ๋ฐ˜๋ณต ๋น„์šฉ์„ ์ค„์ด๋Š”๊ฐ€โ€๋ฅผ ๋จผ์ € ๋ณธ๋‹ค.

์ด ๋ ˆํฌ๋ฅผ ํ•œ ์ค„๋กœ ๋ณด๋ฉด

Deep Agents๋Š” LangChain/LangGraph ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“  ์—์ด์ „ํŠธ ํ•˜๋‹ˆ์Šค๋‹ค. ํ”Œ๋ž˜๋‹, ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ, ์…ธ ์‹คํ–‰, ์„œ๋ธŒ์—์ด์ „ํŠธ ๋ถ„๊ธฐ, ๊ธด ๋Œ€ํ™” ์š”์•ฝ๊นŒ์ง€ ๊ธฐ๋ณธ ๋ฐฐํ„ฐ๋ฆฌ๋ฅผ ๋ฌถ์–ด ์ œ๊ณตํ•œ๋‹ค.

์™œ ์ง€๊ธˆ ์ด ๋ ˆํฌ๊ฐ€ ๋œจ๋Š”๊ฐ€

๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ด ํ•˜์ง€๋งŒ, ๋งค๋ฒˆ ํ”„๋กฌํ”„ํŠธยท๋„๊ตฌยทํŒŒ์ผ์‹œ์Šคํ…œยท์ปจํ…์ŠคํŠธ ์š”์•ฝ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฌถ๋Š” ๊ฑด ๊ท€์ฐฎ๋‹ค. Deep Agents๋Š” ๋ฐ”๋กœ ๊ทธ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ค„์ธ๋‹ค. ํŠนํžˆ โ€œClaude Code์—์„œ ๋ญ๊ฐ€ ๋จนํ˜”๋‚˜โ€๋ฅผ ์˜คํ”ˆ์†Œ์Šค์Šค๋Ÿฝ๊ฒŒ ์žฌ๊ตฌ์„ฑํ•œ ๋А๋‚Œ์ด๋ผ ๊ด€์‹ฌ์ด ๋ชฐ๋ฆฌ๊ธฐ ์ข‹์•˜๋‹ค.

๋ ˆํฌ ์•ˆ์—์„œ ๋จผ์ € ๋ณผ ๊ฒƒ

  • write_todos ๊ธฐ๋ฐ˜ ํ”Œ๋ž˜๋‹๊ณผ ์ง„ํ–‰ ์ถ”์ 
  • read/write/edit/ls/glob/grep ๊ฐ™์€ ํŒŒ์ผ์‹œ์Šคํ…œ ๋„๊ตฌ ๋ฌถ์Œ
  • ์„œ๋ธŒ์—์ด์ „ํŠธ ๋ถ„๊ธฐ์™€ ์ž๋™ ์š”์•ฝ๊นŒ์ง€ ํฌํ•จํ•œ out-of-the-box ํ•˜๋‹ˆ์Šค

์„ค์น˜ ์ „์— ํ™•์ธํ•  ๊ฒƒ

  • Python ํ™˜๊ฒฝ
  • LangChain ๊ณ„์—ด์„ ํฌ๊ฒŒ ์ปค์Šคํ…€ํ•˜์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•ด๋ณด๊ณ  ์‹ถ์€ ์ƒํ™ฉ
  • ์‹คํ—˜ํ•  ํด๋” ํ•˜๋‚˜

์„ค์น˜ ๋ฐฉ๋ฒ•

๊ณต์‹ ํ™•์ธ ๋งํฌ

Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜

pip install deepagents
# ๋˜๋Š”
uv add deepagents

์„ค์น˜ ์งํ›„ ๊ฐ€์žฅ ์งง์€ ์˜ˆ์‹œ๋Š” ์•„๋ž˜๋‹ค.

from deepagents import create_deep_agent
 
agent = create_deep_agent()
result = agent.invoke({"messages": [{"role": "user", "content": "Research LangGraph and write a summary"}]})

CLI ์„ค์น˜

CLI๊นŒ์ง€ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณต์‹ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋‹ค.

curl -LsSf https://raw.githubusercontent.com/langchain-ai/deepagents/main/libs/cli/scripts/install.sh | bash

README ๊ธฐ์ค€ CLI๋Š” ์›น ๊ฒ€์ƒ‰, ์›๊ฒฉ ์ƒŒ๋“œ๋ฐ•์Šค, persistent memory, human-in-the-loop approval ๊ฐ™์€ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฃฌ๋‹ค.

์„ค์น˜ ํ™•์ธ

  • create_deep_agent()๊ฐ€ ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  invoke๊ฐ€ ์‘๋‹ตํ•˜๋Š”์ง€ ๋ณธ๋‹ค.
  • CLI ์„ค์น˜ ์‹œ ์‹คํ–‰ ํŒŒ์ผ์ด ์žกํžˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  1. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ชฉํ‘œ๋ฅผ ํ•˜๋‚˜ ์ •ํ•œ๋‹ค. ์˜ˆ: ํด๋” ๋ฌธ์„œ ์ฝ๊ณ  ์š”์•ฝ ๋งŒ๋“ค๊ธฐ.
  2. ๊ธฐ๋ณธ create_deep_agent()๋ฅผ ๋จผ์ € ์“ฐ๊ณ , ์ปค์Šคํ…€ ๋ชจ๋ธยทํˆด์€ ๋‚˜์ค‘์— ๋ถ™์ธ๋‹ค.
  3. ํ•„์š”ํ•˜๋ฉด init_chat_model๊ณผ custom tool์„ ์ถ”๊ฐ€ํ•ด ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•œ๋‹ค.
  4. ์‹คํ–‰ ๋กœ๊ทธ์—์„œ write_todos, ํŒŒ์ผ ์ ‘๊ทผ, ์„œ๋ธŒ์—์ด์ „ํŠธ ๋ถ„๊ธฐ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋Š”์ง€ ๋ณธ๋‹ค.

์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์˜ˆ์‹œ๋Š” ๊ณต์‹ README ๊ธฐ์ค€ ์•„๋ž˜์ฒ˜๋Ÿผ ์‹œ์ž‘ํ•œ๋‹ค.

from langchain.chat_models import init_chat_model
from deepagents import create_deep_agent
 
agent = create_deep_agent(
    model=init_chat_model("openai:gpt-4o"),
    tools=[my_custom_tool],
    system_prompt="You are a research assistant.",
)

MCP๋Š” langchain-mcp-adapters๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฌธ์„œ๊ฐ€ ์•ˆ๋‚ดํ•œ๋‹ค.

์–ด๋””์— ๋ฐ”๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ๋‚˜

์‚ฌ๋ก€ A. ๋ฆฌ์„œ์น˜+๋ฌธ์„œ ์ž‘์„ฑ ์—์ด์ „ํŠธ

ํด๋” ์•ˆ ์ž๋ฃŒ๋ฅผ ์ฝ๊ณ  ์š”์•ฝ ๋ณด๊ณ ์„œ๋ฅผ ์“ฐ๋Š” ์ž‘์—…์€ Deep Agents์— ์ž˜ ๋งž๋Š”๋‹ค. ํŒŒ์ผ๋„ ์ง์ ‘ ์ฝ๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์„œ๋ธŒ์—์ด์ „ํŠธ๋ฅผ ๋”ฐ๋กœ ๋ณด๋‚ด๊ณ , ์ค‘๊ฐ„ ์‚ฐ์ถœ๋ฌผ์„ ์ €์žฅํ•˜๋Š” ํ๋ฆ„์ด ์ด๋ฏธ ์ค€๋น„๋ผ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์‚ฌ๋ก€ B. ์ฝ”๋“œ๋ฒ ์ด์Šค ํƒ์ƒ‰ PoC

๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ์—์„œ ๊ด€๋ จ ํŒŒ์ผ์„ ์ฐพ๊ณ  ์ˆ˜์ • ํ›„๋ณด๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ผ๋„ ์‹œ๋ฒ” ์ ์šฉํ•˜๊ธฐ ์ข‹๋‹ค. ๋‹ค๋งŒ ์‹ค์ œ ์ˆ˜์ • ๊ถŒํ•œ์„ ์ค„ ๋•Œ๋Š” ์ƒŒ๋“œ๋ฐ•์Šค์™€ ์Šน์ธ ์ •์ฑ…์„ ๋”ฐ๋กœ ์ฑ™๊ฒจ์•ผ ํ•œ๋‹ค.

์ฒ˜์Œ ํ•ด๋ณผ ์ตœ์†Œ ์‹คํ—˜

  1. ์ž‘์€ ํด๋” ํ•˜๋‚˜๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์š”์•ฝ ์ž‘์—…์„ ์‹œํ‚จ๋‹ค.
  2. ๊ธฐ๋ณธ ์—์ด์ „ํŠธ๋งŒ์œผ๋กœ ๋™์ž‘์‹œํ‚ค๊ณ  ๊ฒฐ๊ณผ ํŒŒ์ผ/์š”์•ฝ์„ ํ™•์ธํ•œ๋‹ค.
  3. ๊ทธ๋‹ค์Œ custom tool ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•ด ํ™•์žฅ์„ฑ์„ ๋ณธ๋‹ค.
  4. ์„œ๋ธŒ์—์ด์ „ํŠธ ๋ถ„๊ธฐ์™€ ์ž๋™ ์š”์•ฝ์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•œ์ง€ ํŒ๋‹จํ•œ๋‹ค.

๊ฒ€์ฆ ํฌ์ธํŠธ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค. ๋„์ž… ์„ฑ๊ณต ์—ฌ๋ถ€๋Š” ๊ธฐ๋Šฅ ์ˆ˜๋ณด๋‹ค, ์ •๋ง๋กœ ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋ณธ ์—์ด์ „ํŠธ๊ฐ€ ๋‚˜์™”๋Š”์ง€์— ๋‹ฌ๋ ค ์žˆ๋‹ค. ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ์ „์— ๊ธฐ๋ณธ ํ๋ฆ„์ด ์•ˆ์ •์ ์ธ์ง€ ๋จผ์ € ๋ณธ๋‹ค.

๋ณผ ๋•Œ ์ฃผ์˜ํ•  ์ 

  • ํ”„๋กœ์ ํŠธ๋„ ์ง์ ‘ ๋งํ•˜๋“ฏ trust-the-LLM ๋ชจ๋ธ์ด๋ผ ๋„๊ตฌ ๊ฒฝ๊ณ„ ์„ค๊ณ„๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
  • ๊ธฐ๋ณธ ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ๋งŽ์•„์„œ ์ž‘์€ ์ž‘์—…์—๋Š” ์˜คํžˆ๋ ค ๋ฌด๊ฑฐ์šธ ์ˆ˜ ์žˆ๋‹ค.
  • LangGraph ์ƒํƒœ๊ณ„ ์ดํ•ด๊ฐ€ ์ „ํ˜€ ์—†์œผ๋ฉด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.

๋‹ค์Œ ์ฝ๊ธฐ

์ด ๊ธ€์€ AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ์„ ์ •๋ฆฌํ–ˆ๊ณ , GitHub README์™€ ๊ณต์‹ ๋งํฌ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด ์‹ค๋ฌด ์ ์šฉ ๊ด€์ ์œผ๋กœ ํ’€์–ด์ผ๋‹ค.