수민 '-'

플오그래밍

제가 작성하는 모든 글은 절대 상업적인 이용이 아니며, 그저 개인적인 공부 용도로만 사용하는 것임을 밝힙니다.

분류 전체보기

556개의 글
현재/AI Agent

LangGraph Reflection - 자기평가로 답변을 개선하는 루프 설계

Reflection은 에이전트가 스스로 결과를 평가·비판한 뒤 피드백을 상태(state)에 기록하고, 필요하면 수정 루프로 되돌아가 답을 개선하는 설계 패턴이다. 보통 “작성 노드(답 생성) → 리플렉션 노드(자기평가) → 라우팅(조건부 엣지)” 구조로 만들고, 반복 횟수 제한(max_iters)을 둬 무한 루프를 막는다.이번 글에서는1) Reflection 개념2) 랭체인 + OpenAI로 “가사 생성/평가/수정”3) LangGraph로 Reflection 루프 구현4) Reflexion(논문 아이디어) + 웹검색 툴 결합까지 한 번에 정리한다.원문 흐름은 랭그래프 Reflection 기반으로 재구성했다.1. ReflectionReflection의 핵심은 간단하다.초안 생성자기 평가(잘된 점/아쉬운 점..

현재/AI Agent

LangGraph로 챗봇 만들기 - Tool Calling Agent, Tavily, ToolNode, create_react_agent

Tool Calling Agent는 자신이 가진 지식만 사용하는 것이 아니라, 필요하면 외부 도구(API, 웹 검색, DB, 코드 실행기 등)를 호출해 문제를 해결하는 에이전트다. 쉽게 말해, “대화만 하는 AI”가 아니라 필요할 때 검색/계산/조회 같은 도구를 직접 쓰는 AI가 된다.이번 글에서는 (1) Tavily로 웹 검색 도구를 붙이고, (2) LangChain에서 도구 바인딩을 하고, (3) LangGraph에서 ToolNode로 “LLM의 tool_calls를 실제 실행”까지 연결해 웹 검색 챗봇을 만드는 흐름을 정리한다. 원문 흐름은 랭그래프를 이용한 간단한 챗봇을 바탕으로 재구성했다.1. Tool Calling Agent란?Tool Calling Agent는 다음 순서로 움직인다.1) 사용..

현재/AI Agent

LangGraph 기초 문법 - State 업데이트, add_messages, invoke·stream, 조건·반복

LangGraph는 LangChain 생태계에서 에이전트나 RAG 시스템을 그래프(노드/엣지) 로 설계하고 실행할 수 있게 해주는 오케스트레이션 프레임워크다. 직선형 파이프라인만 만드는 게 아니라 분기(conditional), 반복(loop), 병렬(parallel), 스트리밍(stream) 같은 흐름을 “구조로” 표현할 수 있다는 점이 핵심이다.이번 글은 LangGraph를 처음 볼 때 가장 헷갈리는 기초 문법을 한 번에 정리한다. 특히 State 업데이트, 메시지 누적 리듀서(add_messages), invoke/ainvoke/stream/astream, 그리고 조건 분기/반복까지 “코드가 어디에서 어떻게 이어지는지” 기준으로 정리해본다. 원문 흐름은 랭그래프 기초 문법을 바탕으로 재구성했다.1. ..

현재/AI Agent

AI Agent - RAG·MCP·LangGraph로 보는 에이전트 워크플로우

AI Agent는 환경으로부터 정보를 지각(Perception)하고, 주어진 목표를 달성하기 위해 의사결정(Decision Making)을 거쳐 적절한 행동(Action)을 수행하는 지능형 주체다. 단순히 입력에 반응하는 프로그램과 달리, 에이전트는 데이터와 경험을 바탕으로 학습하며 상황에 맞게 적응한다.최근에는 텍스트·이미지·음성 등을 동시에 다루는 멀티모달 모델, 외부 지식을 검색해 활용하는 RAG, 그리고 도구·서비스·DB와 연결해 실행 능력을 확장하는 MCP 같은 기술이 결합되면서 “말만 잘하는 모델”에서 “일을 하는 시스템”으로 빠르게 진화하고 있다. (원문 흐름은 AI Agent 내용을 바탕으로 정리했다.)1. AI Agent 한 줄 정의AI Agent = “상황을 보고(지각) → 판단하고(의..

현재/강화학습

PPO - Proximal Policy Optimization 정책 업데이트 안정화

PPO(Proximal Policy Optimization)는 강화학습에서 정책(Policy) 을 더 안정적으로 업데이트하기 위해 제안된 정책 기반 알고리즘이다.기존의 정책 경사(Policy Gradient) 방식은 정책을 한 번에 크게 바꾸면 학습이 흔들릴 수 있는데, PPO는 이전 정책에서 너무 멀리 벗어나지 않도록 제한을 둔다.이를 위해 ratio(확률 비율)를 계산하고, 허용 범위를 벗어나면 업데이트 크기를 제한하는 clipped objective 를 사용한다.그리고 Actor-Critic 구조를 기반으로 Actor는 행동 정책을 학습하고, Critic은 상태 가치(Value)를 추정해 Advantage를 계산한다.PPO는 구현이 비교적 단순하면서도 안정성과 성능이 좋아서 OpenAI Baseli..

현재/강화학습

A2C - Advantage Actor-Critic 동기식 병렬 학습

A3C를 동기식으로 단순화한 Actor-CriticA2C(Advantage Actor-Critic)는 이름 그대로 Advantage 기반 Actor-Critic 구조를 사용하면서, A3C처럼 완전히 비동기로 학습하지 않고 동기식(synchronous) 으로 여러 환경에서 수집한 데이터를 한 번에 batch로 처리하는 강화학습 알고리즘이다.여러 worker 환경을 병렬로 돌리면서도, 일정 step마다 모든 경험을 모아 한 번에 모델을 업데이트하기 때문에 학습이 안정적이고 GPU로 처리하기도 쉽다. 이 구조는 이후 PPO 등 많은 실전 알고리즘의 기반이 된다.이 글에서는 A3C와의 차이, A2C 구조 및 장점, 그리고 CartPole-v1 환경을 대상으로 한 동기식 병렬 Actor-Critic 구현 코드까지..

현재/강화학습

A3C - Asynchronous Advantage Actor-Critic

여러 에이전트를 비동기로 돌리는 Actor-CriticA3C(Asynchronous Advantage Actor-Critic)는 여러 개의 에이전트(worker)가 각자 별도의 환경에서 동시에 경험을 수집하고, 그 결과를 하나의 전역 신경망(global network) 에 비동기적으로 반영하며 학습하는 강화학습 알고리즘이다.Actor는 어떤 행동을 할지 확률적으로 결정하는 정책을 학습하고, Critic은 현재 상태가 얼마나 좋은지 나타내는 가치 함수를 학습한다. 그리고 Advantage는 “실제로 얻은 결과가 현재 가치 예측보다 얼마나 더 좋거나 나빴는가”를 나타내어, 정책을 더 안정적으로 업데이트하도록 돕는 역할을 한다.A3C의 핵심은 다음 세 가지 아이디어가 결합된 구조라는 점이다.Actor-Crit..

현재/강화학습

Policy 기반 에이전트 - REINFORCE, Actor-Critic, TD Actor-Critic

정책을 직접 학습하는 강화학습과 Policy Gradient Theorem강화학습에는 가치 기반(Value-Based) 과 정책 기반(Policy-Based) 이 있다. 가치 기반은 Q값을 구한 뒤 가장 좋은 행동을 고르고, 정책 기반은 행동을 선택하는 규칙(정책) 자체를 직접 학습한다. “정책을 더 좋은 방향으로 어떻게 업데이트할지”를 수학적으로 설명하는 것이 Policy Gradient Theorem 이고, 이를 구현한 대표 알고리즘이 REINFORCE 와 Actor-Critic 계열이다. 이 글에서는 정리 내용과 CartPole-v1 예제 코드까지 정리한다.(Policy 기반 에이전트 - 류지 프로젝트를 바탕으로 재구성했다.)1. Policy Gradient Theorem1-1. 왜 필요한가강화학습..

현재/강화학습

Q-learning과 DQN - Q값 업데이트, Gym·CartPole 실습

행동의 점수(Q-value)를 배우는 가치 기반 강화학습Q-learning 은 각 상태에서 어떤 행동이 얼마나 좋은지 를 점수(Q-value)로 학습하는 가치 기반(Value-Based) 강화학습 알고리즘이다. 에이전트가 환경과 상호작용하며 보상을 받을 때마다 그 행동의 Q값을 조금씩 수정하고, 반복하면 좋은 행동의 점수는 올라가고 나쁜 행동의 점수는 내려가서, 결국 가장 높은 Q값을 가진 행동 을 선택하게 된다. 이 글에서는 Q-learning의 핵심 수식과 간단한 1차원 예제, 그리고 Gym(Gymnasium) 의 CartPole 환경에서 DQN(Deep Q-Network) 으로 Q값을 신경망으로 근사하는 예제까지 정리한다.(Q-learning - 류지 프로젝트를 바탕으로 재구성했다.)1. Q값(Q-..

현재/강화학습

Deep RL - 함수 근사, 신경망, 가치 기반·정책 기반 강화학습

테이블에서 신경망으로: Deep RL의 출발점작은 강화학습 문제에서는 각 상태의 가치(Value)를 테이블(table) 로 모두 저장할 수 있다. 예를 들어 상태가 A, B, C 세 개뿐이라면 다음처럼 쓸 수 있다.V = { "A": 0.5, "B": 0.0, "C": -0.5,}하지만 실제 문제(바둑, 체스, 자율주행, 로봇, 비디오 게임 등)에서는 상태·행동 수가 너무 많거나 연속적 이라 이런 테이블 방식이 불가능하다. 이 한계를 넘기 위해 함수 근사(Function Approximation) 와 신경망(Deep Neural Network) 을 사용하는 것이 곧 Deep RL 의 출발점이다.(Deep RL - 류지 프로젝트을 바탕으로 재구성했다.)1. 근사(Approximation)란..

현재/강화학습

Monte Carlo와 TD Learning - GridWorld로 비교하는 모델 프리 가치 학습

MDP를 모르더라도 가치 함수를 배울 수 있을까?강화학습에서 환경을 완전히 안다는 것은 다음을 모두 아는 상황이다.상태 집합 (S)행동 집합 (A)상태 전이 확률 (P(s'\mid s,a))보상 함수 (R(s,a,s'))이 경우에는 벨만 방정식 을 그대로 풀어 가치 함수(Value) 를 수식으로 계산할 수 있다. 하지만 현실의 게임·로봇·자율주행·주식시장 같은 문제에서는 보통 (P(s'|s,a)), (R(s,a,s')) 를 모른다. 그래서 실제 환경에서 에피소드를 실행하며 얻은 경험 으로 가치를 추정해야 한다.이 글에서는 이런 모델 프리(Model-Free) 가치 평가 방법인 Monte Carlo Learning 과 TD(Temporal Difference) Learning 의 아이디어를 정리하고, 4×..

현재/강화학습

벨만 기대 방정식 - 술취한 사람 예제로 이해하는 가치 함수와 값 반복

현재 가치 = 지금 보상 + 미래 가치의 평균벨만 기대 방정식(Bellman Expectation Equation) 은 어떤 상태의 가치(Value)가현재 받을 보상 + (정책에 따라 도달할 다음 상태들의 가치의 기대값)으로 표현된다는 관계식이다. 다음 상태가 확률적으로 결정되기 때문에, 그 확률을 고려한 평균(기대값) 을 쓰게 된다.가장 단순화하면:V(s) = R + γ V(s')(V(s)): 상태 (s)의 가치.(R): 지금 상태에서 받는 즉시 보상.(γ): 할인율(미래 보상을 얼마나 줄여서 볼지).(V(s')): 다음 상태 가치.쉽게 말해 “현재 가치 = 지금 얻는 것 + 할인된 미래 가치의 평균” 이라는, 강화학습의 기본 원리를 수학으로 쓴 식이다.1. 직관에서 식까지: 한 번, 두 번, 무한히 ..

현재/AI Agent

LangGraph Reflection - 자기평가로 답변을 개선하는 루프 설계

Reflection은 에이전트가 스스로 결과를 평가·비판한 뒤 피드백을 상태(state)에 기록하고, 필요하면 수정 루프로 되돌아가 답을 개선하는 설계 패턴이다. 보통 “작성 노드(답 생성) → 리플렉션 노드(자기평가) → 라우팅(조건부 엣지)” 구조로 만들고, 반복 횟수 제한(max_iters)을 둬 무한 루프를 막는다.이번 글에서는1) Reflection 개념2) 랭체인 + OpenAI로 “가사 생성/평가/수정”3) LangGraph로 Reflection 루프 구현4) Reflexion(논문 아이디어) + 웹검색 툴 결합까지 한 번에 정리한다.원문 흐름은 랭그래프 Reflection 기반으로 재구성했다.1. ReflectionReflection의 핵심은 간단하다.초안 생성자기 평가(잘된 점/아쉬운 점..

현재/AI Agent

LangGraph로 챗봇 만들기 - Tool Calling Agent, Tavily, ToolNode, create_react_agent

Tool Calling Agent는 자신이 가진 지식만 사용하는 것이 아니라, 필요하면 외부 도구(API, 웹 검색, DB, 코드 실행기 등)를 호출해 문제를 해결하는 에이전트다. 쉽게 말해, “대화만 하는 AI”가 아니라 필요할 때 검색/계산/조회 같은 도구를 직접 쓰는 AI가 된다.이번 글에서는 (1) Tavily로 웹 검색 도구를 붙이고, (2) LangChain에서 도구 바인딩을 하고, (3) LangGraph에서 ToolNode로 “LLM의 tool_calls를 실제 실행”까지 연결해 웹 검색 챗봇을 만드는 흐름을 정리한다. 원문 흐름은 랭그래프를 이용한 간단한 챗봇을 바탕으로 재구성했다.1. Tool Calling Agent란?Tool Calling Agent는 다음 순서로 움직인다.1) 사용..

현재/AI Agent

LangGraph 기초 문법 - State 업데이트, add_messages, invoke·stream, 조건·반복

LangGraph는 LangChain 생태계에서 에이전트나 RAG 시스템을 그래프(노드/엣지) 로 설계하고 실행할 수 있게 해주는 오케스트레이션 프레임워크다. 직선형 파이프라인만 만드는 게 아니라 분기(conditional), 반복(loop), 병렬(parallel), 스트리밍(stream) 같은 흐름을 “구조로” 표현할 수 있다는 점이 핵심이다.이번 글은 LangGraph를 처음 볼 때 가장 헷갈리는 기초 문법을 한 번에 정리한다. 특히 State 업데이트, 메시지 누적 리듀서(add_messages), invoke/ainvoke/stream/astream, 그리고 조건 분기/반복까지 “코드가 어디에서 어떻게 이어지는지” 기준으로 정리해본다. 원문 흐름은 랭그래프 기초 문법을 바탕으로 재구성했다.1. ..

현재/AI Agent

AI Agent - RAG·MCP·LangGraph로 보는 에이전트 워크플로우

AI Agent는 환경으로부터 정보를 지각(Perception)하고, 주어진 목표를 달성하기 위해 의사결정(Decision Making)을 거쳐 적절한 행동(Action)을 수행하는 지능형 주체다. 단순히 입력에 반응하는 프로그램과 달리, 에이전트는 데이터와 경험을 바탕으로 학습하며 상황에 맞게 적응한다.최근에는 텍스트·이미지·음성 등을 동시에 다루는 멀티모달 모델, 외부 지식을 검색해 활용하는 RAG, 그리고 도구·서비스·DB와 연결해 실행 능력을 확장하는 MCP 같은 기술이 결합되면서 “말만 잘하는 모델”에서 “일을 하는 시스템”으로 빠르게 진화하고 있다. (원문 흐름은 AI Agent 내용을 바탕으로 정리했다.)1. AI Agent 한 줄 정의AI Agent = “상황을 보고(지각) → 판단하고(의..

현재/강화학습

PPO - Proximal Policy Optimization 정책 업데이트 안정화

PPO(Proximal Policy Optimization)는 강화학습에서 정책(Policy) 을 더 안정적으로 업데이트하기 위해 제안된 정책 기반 알고리즘이다.기존의 정책 경사(Policy Gradient) 방식은 정책을 한 번에 크게 바꾸면 학습이 흔들릴 수 있는데, PPO는 이전 정책에서 너무 멀리 벗어나지 않도록 제한을 둔다.이를 위해 ratio(확률 비율)를 계산하고, 허용 범위를 벗어나면 업데이트 크기를 제한하는 clipped objective 를 사용한다.그리고 Actor-Critic 구조를 기반으로 Actor는 행동 정책을 학습하고, Critic은 상태 가치(Value)를 추정해 Advantage를 계산한다.PPO는 구현이 비교적 단순하면서도 안정성과 성능이 좋아서 OpenAI Baseli..

현재/강화학습

A2C - Advantage Actor-Critic 동기식 병렬 학습

A3C를 동기식으로 단순화한 Actor-CriticA2C(Advantage Actor-Critic)는 이름 그대로 Advantage 기반 Actor-Critic 구조를 사용하면서, A3C처럼 완전히 비동기로 학습하지 않고 동기식(synchronous) 으로 여러 환경에서 수집한 데이터를 한 번에 batch로 처리하는 강화학습 알고리즘이다.여러 worker 환경을 병렬로 돌리면서도, 일정 step마다 모든 경험을 모아 한 번에 모델을 업데이트하기 때문에 학습이 안정적이고 GPU로 처리하기도 쉽다. 이 구조는 이후 PPO 등 많은 실전 알고리즘의 기반이 된다.이 글에서는 A3C와의 차이, A2C 구조 및 장점, 그리고 CartPole-v1 환경을 대상으로 한 동기식 병렬 Actor-Critic 구현 코드까지..

현재/강화학습

A3C - Asynchronous Advantage Actor-Critic

여러 에이전트를 비동기로 돌리는 Actor-CriticA3C(Asynchronous Advantage Actor-Critic)는 여러 개의 에이전트(worker)가 각자 별도의 환경에서 동시에 경험을 수집하고, 그 결과를 하나의 전역 신경망(global network) 에 비동기적으로 반영하며 학습하는 강화학습 알고리즘이다.Actor는 어떤 행동을 할지 확률적으로 결정하는 정책을 학습하고, Critic은 현재 상태가 얼마나 좋은지 나타내는 가치 함수를 학습한다. 그리고 Advantage는 “실제로 얻은 결과가 현재 가치 예측보다 얼마나 더 좋거나 나빴는가”를 나타내어, 정책을 더 안정적으로 업데이트하도록 돕는 역할을 한다.A3C의 핵심은 다음 세 가지 아이디어가 결합된 구조라는 점이다.Actor-Crit..

현재/강화학습

Policy 기반 에이전트 - REINFORCE, Actor-Critic, TD Actor-Critic

정책을 직접 학습하는 강화학습과 Policy Gradient Theorem강화학습에는 가치 기반(Value-Based) 과 정책 기반(Policy-Based) 이 있다. 가치 기반은 Q값을 구한 뒤 가장 좋은 행동을 고르고, 정책 기반은 행동을 선택하는 규칙(정책) 자체를 직접 학습한다. “정책을 더 좋은 방향으로 어떻게 업데이트할지”를 수학적으로 설명하는 것이 Policy Gradient Theorem 이고, 이를 구현한 대표 알고리즘이 REINFORCE 와 Actor-Critic 계열이다. 이 글에서는 정리 내용과 CartPole-v1 예제 코드까지 정리한다.(Policy 기반 에이전트 - 류지 프로젝트를 바탕으로 재구성했다.)1. Policy Gradient Theorem1-1. 왜 필요한가강화학습..

현재/강화학습

Q-learning과 DQN - Q값 업데이트, Gym·CartPole 실습

행동의 점수(Q-value)를 배우는 가치 기반 강화학습Q-learning 은 각 상태에서 어떤 행동이 얼마나 좋은지 를 점수(Q-value)로 학습하는 가치 기반(Value-Based) 강화학습 알고리즘이다. 에이전트가 환경과 상호작용하며 보상을 받을 때마다 그 행동의 Q값을 조금씩 수정하고, 반복하면 좋은 행동의 점수는 올라가고 나쁜 행동의 점수는 내려가서, 결국 가장 높은 Q값을 가진 행동 을 선택하게 된다. 이 글에서는 Q-learning의 핵심 수식과 간단한 1차원 예제, 그리고 Gym(Gymnasium) 의 CartPole 환경에서 DQN(Deep Q-Network) 으로 Q값을 신경망으로 근사하는 예제까지 정리한다.(Q-learning - 류지 프로젝트를 바탕으로 재구성했다.)1. Q값(Q-..

현재/강화학습

Deep RL - 함수 근사, 신경망, 가치 기반·정책 기반 강화학습

테이블에서 신경망으로: Deep RL의 출발점작은 강화학습 문제에서는 각 상태의 가치(Value)를 테이블(table) 로 모두 저장할 수 있다. 예를 들어 상태가 A, B, C 세 개뿐이라면 다음처럼 쓸 수 있다.V = { "A": 0.5, "B": 0.0, "C": -0.5,}하지만 실제 문제(바둑, 체스, 자율주행, 로봇, 비디오 게임 등)에서는 상태·행동 수가 너무 많거나 연속적 이라 이런 테이블 방식이 불가능하다. 이 한계를 넘기 위해 함수 근사(Function Approximation) 와 신경망(Deep Neural Network) 을 사용하는 것이 곧 Deep RL 의 출발점이다.(Deep RL - 류지 프로젝트을 바탕으로 재구성했다.)1. 근사(Approximation)란..

현재/강화학습

Monte Carlo와 TD Learning - GridWorld로 비교하는 모델 프리 가치 학습

MDP를 모르더라도 가치 함수를 배울 수 있을까?강화학습에서 환경을 완전히 안다는 것은 다음을 모두 아는 상황이다.상태 집합 (S)행동 집합 (A)상태 전이 확률 (P(s'\mid s,a))보상 함수 (R(s,a,s'))이 경우에는 벨만 방정식 을 그대로 풀어 가치 함수(Value) 를 수식으로 계산할 수 있다. 하지만 현실의 게임·로봇·자율주행·주식시장 같은 문제에서는 보통 (P(s'|s,a)), (R(s,a,s')) 를 모른다. 그래서 실제 환경에서 에피소드를 실행하며 얻은 경험 으로 가치를 추정해야 한다.이 글에서는 이런 모델 프리(Model-Free) 가치 평가 방법인 Monte Carlo Learning 과 TD(Temporal Difference) Learning 의 아이디어를 정리하고, 4×..

현재/강화학습

벨만 기대 방정식 - 술취한 사람 예제로 이해하는 가치 함수와 값 반복

현재 가치 = 지금 보상 + 미래 가치의 평균벨만 기대 방정식(Bellman Expectation Equation) 은 어떤 상태의 가치(Value)가현재 받을 보상 + (정책에 따라 도달할 다음 상태들의 가치의 기대값)으로 표현된다는 관계식이다. 다음 상태가 확률적으로 결정되기 때문에, 그 확률을 고려한 평균(기대값) 을 쓰게 된다.가장 단순화하면:V(s) = R + γ V(s')(V(s)): 상태 (s)의 가치.(R): 지금 상태에서 받는 즉시 보상.(γ): 할인율(미래 보상을 얼마나 줄여서 볼지).(V(s')): 다음 상태 가치.쉽게 말해 “현재 가치 = 지금 얻는 것 + 할인된 미래 가치의 평균” 이라는, 강화학습의 기본 원리를 수학으로 쓴 식이다.1. 직관에서 식까지: 한 번, 두 번, 무한히 ..