분류 전체보기 1324

고급 Agent를 위한 Langgraph - Multi State 사용시 주의해야할점

Langgraph에서는 하나의 Graph에서 여러개의 State를 동시에 사용할 수 있다. 또한 정의된 State는 전역변수 처럼 인식되서, 다른 Node로 그 값을 넘기지 않아도 그 값이 그대로 유지되고 사용이 가능하다.예를 들어node1(State1)->State2node2(State2)->State3node3(State1)->State3로 호출하는 구조가 있다고 하자.이 경우, node1의 output인 State2는 node2의 Input에 들어가지만, node2의 output이 State3인데, node3에서 State3를 받지 않고, State1을 받을 수 있을까? 답변은 된다.State1,2,3의 정보가 같이 유지되고 있기 때문에, 이전 노드의 State가 아니더라도 사용이 가능하다. 아래 ..

고급 Agent를 위한 Langgraph 개념 이해 #2 - Node

2. NodeNode는 State 정보를 활용해서, State 정보를 변경하거나 action을 취하는 그래프내의 함수이다. 함수내에서는 LLM 모델을 실행해서 질문에 대한 정답을 찾거나 , Tool 등을 이용해서 Action을 취하거나, 또는 RAG를 통해서 질문에 필요한 추가 컨택스트 정보를 검색해와서 State에 저장해서 다음 Node에서 LLM이 답변에 활용할 수 있도록 한다. 예를 들어 web_search,chat 이라는 Node가 있을때, web_search Node에서는 Google 검색을 이용하여, 질문에 필요한 추가 정보를 검색해서 State에 저장한후, 다음 chat 노드에서 해당 State에 저장된 Context 정보를 리턴하는 식으로 구현이 된다. Node는 Python funct..

고급 Agent를 위한 Langgraph 개념 이해 #1-State

먼저 Langgraph의 개념을 이해하려면 3가지 State, Node, Edge에 대해서 알아야 한다. 각 컴포넌트의 개념과 세부 문법에 대한 이해가 없으면 어떻게 Langgraph가 작동하는지에 대해서 이해가 매우 어렵기 때문에, 이 글에서는 개념과 문법에 대해서 설명하도록 한다. 그래프는 Node로 구성이 되어 있는데, State를 받아서, 작업을 하고, State를 출력하는 역할을 한다. Node를 실행한 후에, 다른 Node를 실행하기 위해서는 Edge를 따라서, Node를 이동하게 된다. 이 개념을 그림으로 표현하면 아래와 같다. 사각형이 Node이고, Node들을 연결하는 선이 Edge, 그리고, Node들이 입력으로 받고, 업데이트 하는 것이 State (상태 정보)이다. 1. State..

Python TypedDict

TypedDict는 파이썬의 타입 힌트를 위한 기능으로, 딕셔너리의 키와 값에 대한 타입을 명시적으로 지정할 때 사용한다. 일반 dict와 달리, 정해진 키와 그에 해당하는 값의 타입을 강제하여 코드의 안정성과 가독성을 높여준다.TypedDict란 무엇인가?TypedDict는 typing 모듈에서 제공하는 클래스로, 딕셔너리의 구조를 미리 정의할 수 있게 해준다. 딕셔너리에 어떤 키가 존재해야 하는지, 그리고 각 키에 해당하는 값의 타입이 무엇인지 명시할 수 있다.이는 정적 타입 검사 도구(static type checker)가 코드 실행 전에 잠재적인 오류를 발견하도록 돕는다. 예를 들어, 존재하지 않는 키에 접근하거나 잘못된 타입의 값을 할당하려고 할 때 미리 경고를 받을 수 있다.예제TypedDic..

Google ADK와 LangGraph 비교 (Node,Edge 기반 워크플로우 정의기능)

LangGraph가 노드와 엣지 구성을 통해서 워크플로우를 정교하게 관리할 수 있는데, 그러면 Google ADK도 가능할까 해서, 예제 코드를 Gemini를 이용해서 구성해봤다. 일단 결론 부터 이야기하자면, Google ADK는 노드와 엣지의 개념은 없지만, 노드대신 에이전트로 정의한후, 이를 워크플로우로 연결이 가능하고, Loop와 Branch역시 가능하다. 아직 Node와 ADK의 Agent차이에 대해서는 좀 더 고민해봐야겠지만, 개념상으로 비슷한것은 만들수있다는 이야기.from google.adk.agents import LlmAgent, SequentialAgent, BaseAgentfrom google.adk.events import Event, EventActionsfrom google...

Langgraph tool 호출 튜토리얼

이 문서는 Langgraph의 공식 튜토리얼 두번째 "Add tools"에 대한 코드를 설명한 문서이다.원본 코드 : https://langchain-ai.github.io/langgraph/tutorials/get-started/2-add-tools/모델 생성 및 툴 생성 부분tool = TavilySearch(max_results=2)tools = [tool]llm = init_chat_model("google_genai:gemini-2.5-flash")llm_with_tools = llm.bind_tools(tools)외부 Search tool로 Langchain tool (TavilySearch)툴을 생성하고, 해당 툴을 tools 리스트에 넣은후에,LLM 모델을 생성하고, 해당 tool을 LLM..

LLM 모델 알고리즘 이해를 기반으로, 효율적인 프롬프트 작성하기

LLM의 확률적 생성 프로세스 제어를 위한 방법론: 프롬프트 엔지니어링의 기술적 원리대규모 언어 모델(LLM)과의 상호작용 시, 응답의 비결정성(Non-determinism)과 재현성(Reproducibility)의 부재는 개발자에게 주요한 도전 과제이다. 프롬프트 엔지니어링은 이러한 확률적 모델의 출력을 결정론적으로 제어하기 위한 핵심적인 방법론으로 부상했다. 본 문서는 프롬프트 엔지니어링의 주요 기법들이 LLM의 내부 아키텍처 및 수학적 원리에 기반하여 어떻게 작동하는지 심층적으로 분석한다.1. LLM의 근본 원리: 자기회귀적 확률 모델 (Autoregressive Probabilistic Model)LLM의 모든 출력은 자기회귀(Autoregressive) 모델의 기본 원칙을 따른다. 즉, 주어진 ..

Gemini CLI 활용 방법과 숨겨진 가치

조대협 (http://bcho.tistory.com) 본인은 구글 클라우드의 엔지니어이며, 이 글은 회사의 의견을 대표하지 않고 본인 개인의 의견임을 밝혀둡니다. 얼마전에 Gemini CLI가 발표되고, Google Gemini 서버가 폭주했다는 이야기까지 들려왔다. 사람들은 왜 Gemini CLI에 열광할까? 이미 ChatGPT나 Claude가 웹, 데스크탑 까지 지원하고 있고, Cursor나 Winsurf같은 코딩 AI에서 부터 Lovable, V0와 같은 바이브 코딩 툴이 있는데, 터미널에서 지원하는 CLI 기반의 AI가 나온것 하나가 이 시장에 어떤 영향을 미칠까? 무료 서비스라는 발표로 많은 인기를 얻었지만, 그 보다 Gemini CLI는 SDLC (Software Development Lif..

잘알려지지 않은 Gemini의 유용한 기능 #2 - 구글 검색 연동과, 코드 실행

조대협 (http://bcho.tistory.com) 지난 글에 이어서, Gemini에서 잘 알려지지 않은 기능을 연결해서 소개한다.오늘 소개하는 기능은 구글 검색 연동과, Gemini가 코드를 생성하고, 이를 실행할 수 있는 Code Execution이라는 기능 두가지이다. Google Search GroundingGemini API중에서 아마 가장 유용한 기능중 하나가 아닌가 싶은데, Google AI 모델 답게, Google Search 엔진과 연동이 된다. 내장된 구글 검색 도구를 가지고 있으며, 이를 사용하면, 질문에 대한 답을 얻기 위해서 구글 검색을 통해서 자료를 검색한 후에, 이를 기반으로 Gemini가 답변을 해준다. from google import genaifrom google.gen..

잘알려지지 않은 Gemini의 유용한 기능-#1 Thinking & Context URL

조대협 (http://bcho.tistory.com) 보통 우리가 LLM을 생각하면 LLM 모델은 학습된 정보를 기반으로 질문에 답변을 하는 기능만 생각하지만 LLM을 서비스하는 API의 경우 추가적인 기능을 제공하는 경우가 많다. Gemini API의 경우 구글 검색을 통한 답변이나, 코드를 생성한 후 자동으로 실행해주는 Code execution과 같은 추가 기능을 제공한다. 이는 Gemini LLM 모델에 추가적으로 Google Search나 코드 실행과 같은 추가 기능을 개발하여, API를 통해서 서비스 하는 개념이다. Gemini API에는 생각보다 유용한 기능들이 많은데, 이 글에서는 Gemini API의 유용한 기능을 위주로 살펴보도록 한다. Thinking먼저 Thinking 모델 (..