Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Algorithm
- for
- github
- DS
- html
- javascript
- Linux
- Java
- AI
- mysql
- react
- computer
- architecture
- control
- XML
- system
- python
- instruction
- DB
- php
- openai
- Pipelining
- CSS
- function
- MIPS
- Rag
- DATAPATH
- Class
- web
- data structure
Archives
- Today
- Total
YYYEJI
[MAC] Agent 알아보기 본문
728x90
AGENT란???
대규모 언어 모델의 의사결정 엔진으로 사용하여 작업을 수행하는 시스템이래요
모델은 입력된 데이터를 분석하여 맥락에 맞는 의사결정을 수행합니다.
적절한 해결책을 제시해 복잡한 작업을 자동화하여 업무 효율성을 높입니다.
AgentExcutor
에이전트이 계획-실행-관찰 사이클을 자동으로 관리해줍니다.
에이전트의 행동을 모니터링하고 결과를 반환해줘요!!
@tool 데코레이터를 통해 LLM이 호출 가능한 커스텀 도구를 정의해줍니다
@tool
def calculate(expression: str) -> float:
"""수학 계산을 수행합니다"""
return eval(expression)
@tool
def get_weather(city: Literal["서울", "부산", "대구", "인천", "광주"]):
"""한국 주요 도시의 날씨 정보를 가져옵니다."""
weather_data = {
"서울": "맑음",
"부산": "흐림",
"대구": "맑음",
"인천": "비",
"광주": "구름많음"
}
if city in weather_data:
return f"{city} 날씨는 {weather_data[city]}"
else:
raise AssertionError("지원하지 않는 도시입니다")
도구 정의 후 프롬프트 템플릿을 만들어줬어요
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
# 프롬프트 템플릿 정의
prompt = ChatPromptTemplate.from_messages([
("system", "당신은 사용자의 요청을 처리하는 AI Assistant입니다."),
("user", "{input}"),
MessagesPlaceholder(variable_name="agent_scratchpad")
])
에이전트의 일관된 응답과 효율적인 도구 사용을 위해 기본 틀을 제공했습니다!!
아래 지정된 LLM이 이 에이전트의 핵심 추론 엔진으로 사용됩니다@
from langchain_openai import AzureChatOpenAI
llm = AzureChatOpenAI(model="gpt-4.1",temperature=0)
이제 에이전트를 생성해보겠습니다.
from langchain.agents import create_tool_calling_agent
tools = [get_weather, calculate]
agent = create_tool_calling_agent(llm, tools, prompt)
이 agent는 유저의 입력을 분석해서:
도구를 호출할지 말지 결정하고,
도구 호출 결과를 받아들여,
최종 응답을 생성합니다.
from langchain.agents import AgentExecutor
agent_excutor = AgentExecutor(
agent = agent, # 도구 호출 에이전트
tools = tools, # 도구 목록
verbose=True # 상세 로그 출력
)
# 에이전트 실행
response = agent_excutor.invoke(
{"input": "광주 날씨 어때?"} # agent에서 '광주'와 관련된 답을 찾아 리턴
)

1) LLM이 질문을 이해
("광주 날씨" → get_weather 툴 필요함을 감지)
2) 툴 호출 결정
(get_weather(city="광주") 호출)
3) 툴의 반환값 확인
("광주 날씨는 구름많음" 반환)
4) LLM이 최종 응답 생성
("광주의 날씨는 구름이 많습니다"라는 자연어 응답 생성)
이렇게 쓰고 보니까 AI 진짜 똑똑하네요 ,,
스스로 다 해 ,, ㅠㅠ
나도 할 거 주라 ㅠㅠ

728x90
'인공지능 챗봇' 카테고리의 다른 글
| [MAC] LangGraph(상태그래프) 활용하기 (4) | 2025.08.07 |
|---|---|
| [MAC] Tool calling(@tool) 알아보기 (4) | 2025.08.07 |
| [MAC] 재순위화(Re-rank) 기법 Cross-Encoder 모델과 LLMListwise 모델 비교하기 (4) | 2025.08.07 |
| [MAC] 하이브리드 검색(Hybrid Search)을 기반으로 한 RAG 살펴보기 (4) | 2025.08.06 |
| [MAC] 키워드 검색(Keyword Search)을 기반으로 한 RAG 살펴보기 (4) | 2025.08.06 |