들어가며
요즘 들어 모든 언론과 IT 회사에서 Agentic AI 시대를 맞이하고 있습니다.
언론에서는 Agentic AI 에 대해 과하게 포장하는 hype 이 어느정도 있지만, 실제로 개발하는 개발자들은 사용 사례에 따라 각기 다른 평가를 하고 있는 춘추전국시대가 아닐수가 없습니다.
그런데 Agentic AI 라는 것은 뭘까요?

AI systems that can independently set goals, make plans, and execute multi-step tasks with minimal human supervision.
인간의 최소한의 감독만으로도 독립적으로 목표를 설정하고, 계획을 세우고, 여러 단계를 거치는 작업을 실행할 수 있는 인공지능 시스템.
즉, 수행하고자하는 task 에 대해 목표를 수립하고, 여러 단계를 거쳐 작업하는 AI agent system 들의 집합이라고 보면 되겠습니다.
Agentic AI 는 크게 2가지 특성을 갖는 workflow 를 기반으로 할 수 있는데요.
- Hybrid(하이브리드): 기본 workflow 흐름은 로직으로, task 수행은 AI agent 자율성에 맡기는 hybrid 형태
- Autonomous(자율성): Workflow 흐름에 대한 판단도 모두 AI agent 에게 위임하여, AI agent 들이 서로 상호작용하여 알아서 완수하는 형태
당연한 말이겠지만, 하이브리드 형태는 조금 더 구현하기 쉽고, 디버깅도 쉽지만 확장하는데에 한계가 있죠.
반대로 자율성 형태는 구현하기 어렵고, 디버깅도 무척 어렵지만 확장성에는 무한한 가능성을 갖고 있습니다
어떤 형태로 구현할지는 각각의 상황에 맞추어 채택하면 됩니다.

AI agent framework
Agentic AI 를 기반으로한 workflow 를 개발하고 구현하기 위해서는 AI agent framework 의 종류들에 대해 파악하고 각각의 장점과 단점을 알고 도입해야 되는데요.
오늘은 어떤 framework 들이 있고, 어떤 장단점이 있는지 코드 예시와 함께 한번 알아볼게요
LangChain + LangGraph
먼저 LLM 생태계를 초기에 장악하고 있던 LangChain 진영의 agent framework 입니다.
Langchain 은 다양한 AI 관련된 기능(RAG, LLM .. )과 low level 단의 기능까지 포함하여 아우르고 있는데요.
Langchain + Langgraph 은 크게 아래와 같은 기능들을 제공합니다.
- State/Memory: Inmemory 저장소 혹은 session 별 저장소를 연동할 수 있는 기능 제공
- Middleware: Agent 의 단계별 hook 제공
- Graph based workflow: Node 와 Edge 컨셉을 가진 추상화된 workflow 기능 제공. Hybrid workflow 에 적합
개발자의 입맛에 맞게 다양하게 기능을 선택 사용할 수 있다는 장점은 있지만, 그만큼 추상화 단계가 많이 복잡하여 러닝커브가 높은 편입니다.
또한 여러 LLM 생태계와 기능들을 연동하기 때문에 무겁다는 단점 또한 있지요
아래는 Langchain 으로만 간단한 weather agent 를 만든 예시입니다.
from dotenv import load_dotenv
from langchain.agents import create_agent
from langchain_core.tools import tool
load_dotenv()
@tool
def get_weather(location: str) -> str:
"""Get current temperature for a given location.
Args:
location: City and country e.g. Bogotá, Colombia
"""
return f"The current temperature in {location} is 15°C with clear skies."
weather_search_agent = create_agent(
model="openai:gpt-5.4-nano",
tools=[get_weather],
system_prompt="You are a weather assistant. For weather-related requests use the tools and respond with a concise summary.",
name="weather_search_agent",
)
def main() -> None:
query = "What is the weather in Seoul today?"
result = weather_search_agent.invoke({"messages": [{"role": "user", "content": query}]})
print(result["messages"][-1].content)
if __name__ == "__main__":
main()
https://docs.langchain.com/oss/python/langchain/overview
LangChain overview - Docs by LangChain
LangChain provides create_agent: a minimal, highly configurable agent harness. Compose exactly the agent your use case needs from model, tools, prompt, and middleware.
docs.langchain.com
OpenAI Agents
다음은 OpenAI agents 입니다.
OpenAI agents 는 Pydantic AI 로부터 영감을 받아 OpenAI 에서 제공하는 agent framework 인데요.
OpenAI agents 는 경량화된 라이브러리 컨셉을 유지하면서, guardrail, hand off, agent as tool 와 같은 적은 기능만으로 빠른 Agentic workflow 를 개발하고자 하는 사람들에게 적합합니다.
- guradrail: 보안적으로 위험을 탐지하는 기능을 쉽게 연동할 수 있는 기능 제공
- handoff/agent as tool: Multi agent pattern 에서 상황에 맞게 쉽게 연동할 수 있는 기능 제공
- tracing: Observability 를 통해 가시성을 확보하고 디버깅하기 쉬운 기능 제공
낮은 추상화 수준을 유지하고, 고도화 된 Agentic workflow 를 빠르게 제공하고 싶을 때 사용하기 적합하다고 볼 수 있죠.
OpenAI model 외에도 다양하게 사용할 수는 있으나, OpenAI model 을 사용한다면 굉장히 쉽게 연동 가능한 것도 장점입니다.
대신 다른 vendor 의 model 을 사용한다면, 통합 기능은 제공되나 잘 working 하는지는 확인이 필요합니다
아래는 OpenAI agent 으로만 간단한 weather agent 를 만든 예시입니다.
from agents import Agent, ModelSettings, Runner, function_tool
from dotenv import load_dotenv
from openai.types import Reasoning
load_dotenv()
@function_tool(docstring_style="google")
def get_weather(location: str) -> str:
"""Get current temperature for a given location.
Args:
location: City and country e.g. Bogotá, Colombia
Returns:
A concise weather sentence that includes Celsius temperature and a condition summary.
"""
return f"The current temperature in {location} is 15°C with clear skies."
weather_search_agent = Agent(
name="weather_search_agent",
instructions="""
You are a weather assistant. For weather-related requests use the tools and respond with a concise summary.
""",
model="gpt-5.4-nano",
model_settings=ModelSettings(reasoning=Reasoning(effort="none")),
tools=[get_weather],
)
def main() -> None:
query = "What is the weather in Seoul today?"
result = Runner.run_sync(weather_search_agent, input=query)
print(result.final_output)
if __name__ == "__main__":
main()
https://developers.openai.com/api/docs/guides/agents
Agents SDK | OpenAI API
Learn how the OpenAI Agents SDK fits together and which docs to read next.
developers.openai.com
Google ADK
Google adk 는 built in solution 즉, AI agent 를 개발하기 위한 platform 차원에서의 기능을 제공합니다.
다양한 Agent pattern(Orchestration, Sequential ...) 은 기본이며, 내장된 Observability 확보 기능과, memory session 유지 기능까지 Google cloud 와 쉽게 연동하여 사용할 수 있죠.
- Agent pattern: 상황에 맞는 Agent pattern 을 쉽게 사용할 수 있도록 라이브러리 차원에서 기능 제공
- Memory/session: Inmemory 혹은 DB 저장소와 연계된 저장 기능 제공
- Observability: adk web 을 통해 AI agent 의 실행 단계 절차를 눈으로 직접 바로 확인할 수 있음
다양한 기능들을 제공하고 있고, Gemini 모델을 사용하면서 GCP 까지 사용한다면 이보다 더 적합한 기능은 없겠죠
하지만 역시 라이브러리가 워낙 방대해서 러닝 커브가 많다는게 단점입니다.
아래는 제가 직접 개발하여 사용하고 있는 web 검색 agent 예시입니다
from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
from .prompt import AI_THESIS_RESEARCH_INSTRUCTION
from .prompt import GENERAL_WEB_RESEARCH_INSTRUCTION
from .prompt import ROUTER_INSTRUCTION
general_web_search_agent = Agent(
model="gemini-3-flash-preview",
name="general_web_search_agent",
description=(
"General-purpose web researcher for non-thesis topics. Uses web search "
"and returns a cited report."
),
instruction=GENERAL_WEB_RESEARCH_INSTRUCTION,
tools=[google_search],
disallow_transfer_to_parent=True,
disallow_transfer_to_peers=True,
)
ai_thesis_search_agent = Agent(
model="gemini-3-flash-preview",
name="ai_thesis_search_agent",
description=(
"AI paper and thesis-style research specialist for literature reviews, "
"paper comparisons, and methodology analysis."
),
instruction=AI_THESIS_RESEARCH_INSTRUCTION,
tools=[google_search],
disallow_transfer_to_parent=True,
disallow_transfer_to_peers=True,
)
web_search_agent = Agent(
model="gemini-3-flash-preview",
name="web_search_agent",
description=(
"Routes research requests to either the general web search specialist "
"or the AI thesis research specialist based on topic."
),
instruction=ROUTER_INSTRUCTION,
sub_agents=[general_web_search_agent, ai_thesis_search_agent],
)
# ADK loaders and deploy flows expect `root_agent` by default.
root_agent = web_search_agent
Agent Development Kit (ADK)
Build powerful multi-agent systems with Agent Development Kit (ADK)
adk.dev
MAF(Microsoft Agent Framework)
흔히 알고 있는 Autogen 과 Semantic Kernel 라이브러리를 통합하여 새롭게 Microsoft 진영에서 제공하기 시작한 agent framework 입니다.
Autogen 에서 제공하는 다양한 agent pattern 과 Semantic kernel 에서 제공하는 enterprise 급 session 저장 기능을 통합하여 하나로 만들었다는 것에 포커스를 하고 있어요
- Agent pattern: 다양한 agent pattern(orchestration, handoff..) 기능 제공
- Memory/session: Agent session, context provider 를 통해 상태 관리 기능 제공
아래는 weather_agent 를 microsoft agent framework 를 통해 구현한 예시입니다.
import asyncio
from agent_framework import Agent, tool
from agent_framework.openai import OpenAIChatClient
from dotenv import load_dotenv
load_dotenv()
@tool
def get_weather(location: str) -> str:
"""Get current temperature for a given location.
Args:
location: City and country e.g. Bogotá, Colombia
"""
return f"The current temperature in {location} is 15°C with clear skies."
client = OpenAIChatClient(model="gpt-5.4-nano")
weather_search_agent = Agent(
client=client,
name="weather_search_agent",
instructions="You are a weather assistant. For weather-related requests use the tools and respond with a concise summary.",
tools=[get_weather],
)
async def main() -> None:
query = "What is the weather in Seoul today?"
result = await weather_search_agent.run(query)
print(result.text)
if __name__ == "__main__":
asyncio.run(main())
https://learn.microsoft.com/en-us/agent-framework/
Agent Framework documentation
Agent Framework documentation.
learn.microsoft.com
마무리하며

오늘은 이렇게 다양한 AI agent framework 에 대해 알아보았는데요.
각기 장단점이 있고, 목적이 명확하니 상황에 맞는 framework 를 선택해보면 좋겠네요.
러닝커브가 제일 적고 경량화된 스타일을 좋아하면 OpenAI agent
고정된 workflow 를 고도화하고 싶으면 Langchain + Langgraph
Google 생태계에 쉽게 통합하고 Platform 차원 기능을 쉽게 연동하려면 Google ADK
Microsoft 생태계에 쉽게 통합하고, enterprise 급 agent workflow 를 개발하려면 MAF
그 외에도 다른 Agent framework 들이 있으니 찾아보고 적용해보면 좋겠네요 :)
'Developer > AI' 카테고리의 다른 글
| AI agent 란 무엇이고 agent 에게 tool 을 주어보자(feat. OpenAi) (0) | 2026.03.21 |
|---|---|
| LLM API 를 이용하여 Text 와 Tool 을 제공해보자(feat. OpenAi) (0) | 2026.02.15 |
| LLM 의 구조와 원리에 대해 쉽게 알아보자 (feat. llama) (0) | 2026.01.11 |