agent 14

Claude Code Agent Teams: Skill, SubAgent, Agent Team 완전 정복

Claude Code Agent Teams: Skill, SubAgent, Agent Team 완전 정복혼자 일하는 AI에서 팀으로 일하는 AI로 — 언제 무엇을 써야 하는가Claude Code를 처음 쓰기 시작하면 대부분 단순하게 쓴다. 터미널에서 claude를 실행하고, 코드 작성을 시키거나 버그를 고쳐달라고 한다. 그런데 어느 순간 한계가 느껴진다. "이 작업은 병렬로 돌릴 수 있을 텐데", "이 부분은 전문화된 역할이 따로 있으면 좋겠는데" 하는 생각이 드는 순간이 온다.Claude Code는 그 필요를 정확히 인식하고 Agent Teams라는 개념을 도입했다. 그리고 이 안에서 Skill, SubAgent, Agent Team이라는 세 가지 구성 요소가 서로 다른 역할을 맡는다. 이 세 가지를 ..

카테고리 없음 2026.03.15

Claude Code SubAgent - 전문화된 AI 서브에이전트로 생산성 높이기

조대협 (http://bcho.tistory.com)왜 SubAgent가 필요한가? Claude Code로 복잡한 작업을 하다 보면 한 가지 문제를 마주치게 된다. 코드베이스를 탐색하고, 분석하고, 수정하고, 테스트까지 하다 보면 context window가 빠르게 소모된다는 것이다. 그리고 한 AI가 "코드 리뷰어"이면서 동시에 "디버거"이고 "문서 작성자"가 되려다 보면 어느 것도 제대로 못하는 상황이 생긴다. 그렇다면 어떻게 하면 좋을까? 인간 세계에서는 이 문제를 이미 해결했다. 바로 전문화이다. 코드 리뷰는 시니어 개발자가, 테스트는 QA 엔지니어가, 배포는 DevOps가 맡는 것처럼 말이다. SubAgent는 바로 이 개념을 Claude Code에 도입한 것이라고 보면 된다. 마치 Java에서..

카테고리 없음 2026.03.14

Langchain이 있는데, Langgraph가 왜 필요할까?

LLM 애플리케이션을 만드는데, 이미 Langchain과 같은 프레임웍이 있는데, 왜 추가로 Langgraph와 같은 프레임웍이 필요할까?예를 들어서, 질문에 대해서 구글 검색을 하고, 그 내용을 기반으로 답변하는 Agent를 만든다고 하자.아래 구조와 같이 질문을 분석해서 좀 더 명확한 프롬프트로 만들어내고, 구글 검색을 한 후, 검색 내용이 답변을 하는데 충분한 정보를 가지고 있는지 판단을 하고, 만약에 검색된 정보가 충분하지 않으면 질문을 변경해서 다시 구글 검색을 하고, 충분한 정보를 수집할때 까지 이 과정을 반복한 다음에, 이 정보를 이용해서 답변을 생성해서 리턴한다. 이 구조를 Langchain으로 만들 수 없을까?물론 가능은 하다. 대략 다음과 같은 구조를 가지면 된다. chain = ( ..

고급 Agent를 위한 Langgraph 개념 이해 #4 - Tool 호출

4. Tool 호출Graph에서 외부 Tool을 호출하는 방법에 대해서 알아보도록 하자. 먼저 Tool 함수를 정의해야 하는데,Tool을 일반적인 파이썬 함수로 정의한다. 이때 중요한 부분은 함수 첫줄에 툴에 대한 설명을 주석으로 달아줘야 한다. LLM AI 모델이 어떤 툴을 사용해야할지 판단할때 이 정보를 이용해서, 툴의 기능을 파악한 후에, 툴 호출 여부를 결정한다. 아래는 get_weather라는 툴을 정의한 코드로, 특정 지역의 날씨를 리턴하는 테스트 코드이다. (지역명이 sf나 san francisco인 경우에는 온도를 60도로, 아니면 90도 온도로 리턴한다.) 이렇게 툴을 호출하는 노드를 ToonNode라고 하는데, 인자로, 호출할 툴 함수를 정의한다. 아래 코드에서 보면 ToolNode([..

고급 Agent를 위한 Langgraph 개념 이해 #3 - Edge

3. EdgeEdge는 노드가 정의된 후에, 노드에서 호출한 다음 노드를 정의한다. 사용 방법은 매우 간단하다.아래와 같이 노드를 먼저 정의한 후에, add_edge를 이용하여 연결하고자 하는 노드 이름을 지정하면 된다. 아래 코드의 경우 node_1→node_2를 호출하는 구조를 정의하였다. builder.add_node("node_1", node_1)builder.add_node("node_2", node_2)graph.add_edge("node_1", "node_2")Conditional routing일반적인 Edge flow이외에, 조건에 따라서 특정 노드로 Routing 하도록 플로우를 정의할 수 있다. 예를 들어서 아래 그림과 같이, node_1실행후에, 조건에 따라서 node_2또는 node..

고급 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...