LangChain을 이용한 체인 및 에이전트(Agent) 설계

1. LangChain의 진화와 LCEL의 설계 철학

1.1 LCEL(LangChain Expression Language)

1.1.1 LCEL 전환의 이유

  • 왜 기존의 복잡한 추상화를 걷어내고, 최신 표준인 LCEL(LangChain Expression Language)**로 가야 하는가?
  • 기존 방식 (LLMChain이나 SequentialChain 등)이 가진 ‘블랙박스형 추상화’의 한계
    • 데이터 흐름의 비가시성 (Opaque Data Flow)
      • 기존의 체인 방식
        • 입력값(input)을 넣으면 🡲 내부에서 프롬프트가 어떻게 채워지고 🡲 어떤 식으로 모델에 전달되는지
        • 그 과정이 객체 내부에 감춰져 있음
      • 문제점
        • 중간 단계에서 데이터가 어떻게 변형(Transformation)되는지 모니터링하기가 매우 어려움
        • Chain 객체를 생성하면 입력과 출력 사이의 변환 과정이 내부 로직에 숨겨져 있어 디버깅이 까다로움
      • 비유
        • ERP 시스템에서 전표를 끊었는데, 어떤 DB 테이블을 거쳐 총계가 계산되는지 로그를 볼 수 없고
        • 오직 최종 결과만 리턴받는 것과 같음

      • LCEL로 전환: 투명한 데이터 흐름 (Observability)
        • Prompt | Model | Parser처럼 데이터의 흐름을 파이프(|)로 선언
        • 각 단계의 입출력이 명확하므로, 데이터가 어디서 어떻게 변형되는지 한눈에 파악할 수 있음
        • LangSmith 같은 툴과의 결합성이 극대화됨

    • 커스터마이징의 높은 벽 (Rigid Inheritance)
      • LLMChain은 특정 목적을 위해 미리 설계된 클래스
        • 만약 중간에 특정 로직(예: 한글 필터링, 수치 검증 등)을 끼워 넣으려 하면, 해당 클래스를 상속받아 복잡한 메서드를 오버라이딩해야 함
      • 문제점
        • “프롬프트 🡲 모델”이라는 단순한 구조임에도 불구하고, 그 사이에 작은 로직 하나를 추가하기 위해 너무 많은 상위 클래스의 명세를 알아야 함
        • 객체지향 설계에서 말하는 ‘강한 결합(Strong Coupling)’의 전형적인 부작용

      • LCEL로 전환: 동적 제어와 복원력 (Resilience)
        • Fallback 로직
          • 특정 모델(예: GPT-4)이 응답하지 않거나 속도가 느릴 때, 자동으로 대체 모델(예: Claude 또는 로컬 모델)을 호출하도록 선언할 수 있음
        • 런타임 구성:
          • 실행 시점에 config를 통해 모델 파라미터나 프롬프트를 동적으로 변경하기가 훨씬 수월함

    • 기능 확장의 비효율성 (Feature Fragmentation)
      • 스트리밍(Streaming), 비동기(Async), 배치(Batch) 처리를 구현할 때마다 각기 다른 메서드나 별도의 래퍼(Wrapper) 클래스가 필요함
      • 문제점
        • 동일한 로직임에도 불구하고 사용 환경에 따라 코드가 파편화됨
        • 예시: 일반 실행은 run(), 스트리밍은 다른 방식, 비동기는 arun() 식의 파편화는 유지보수 비용을 급격히 상승시킴
      • 한계
        • 클라이언트-서버(C/S) 모델에서 웹 모델로 넘어갈 때 겪었던 ‘중복 로직 구현’의 고통과 비슷

      • LCEL로 전환: 일관된 인터페이스 (The Runnable Protocol)
        • 인터페이스 통합:
          • 모든 LCEL 객체는 Runnable 인터페이스를 상속받음 🡲 invoke, stream, batch 메서드를 공통으로 사용
        • 스트리밍 지원
          • 별도의 추가 코드 없이도 첫 번째 토큰이 생성되는 즉시 사용자에게 전달하는 스트리밍 기능을 기본으로 제공
          • 이는 사용자 경험(UX) 측면에서 엄청난 차이를 만듦
      • LCEL로 전환: 고도의 병렬성 (Parallelism)과 성능 최적화
        • 비동기 및 병렬 실행
          • RunnableParallel을 사용하면, 여러 개의 검색(Retriever)이나 모델 호출을 별도의 복잡한 스레드 관리 없이도 동시에 실행할 수 있음
        • 지연 시간(Latency) 감소
          • 멀티태스킹 프로그래밍을 하듯 직접 로직을 짤 필요 없이, 선언만으로 최적화된 비동기(async) 처리가 가능해짐
  • 결국 LCEL로 가야 하는 이유는 “복잡한 로직을 단순한 선언형 코드로 대체(아키텍처의 단순화)하여 유지보수성을 높이기 위함”

  • 요약
구분레거시 체인 (Legacy)LCEL (최신 표준)
추상화 수준너무 높아서 내부 파악 불가 (High & Opaque)적절한 추상화와 명확한 구조 (Standard & Transparent)
코드 스타일명령형 (Imperative)선언형 (Declarative)
커스터마이징상속 및 오버라이딩 필요 (복잡함)</b>파이프 조합으로 자유로운 구성 (유연함)</b>
실행 모드동기 중심동기, 비동기, 스트리밍, 배치 통합 지원



  • 블랙박스형 추상화의 한계를 극복하기 위해 왜 LCEL이 표준이 되었는가?
  • LCEL(LangChain Expression Language): 객체지향의 한계를 넘어 함수형 조립(Composition)으로의 패러다임 전환

  • “Hidden Logic”에서 “Visible Pipeline”으로
    • 기존의 LLMChain은 클래스 내부에 프롬프트 포맷팅, 모델 호출, 결과 파싱 로직이 캡슐화되어 있었음
    • 사용하기엔 편하지만, 내부에서 데이터가 어떻게 변형되는지 추적하기 어려운 ‘블랙박스’

    • LCEL의 해결 방법
      • chain = prompt | model | parser와 같이 데이터의 흐름을 선언적(Declarative)으로 노출
    • 공학적 의의
      • 코드 자체가 곧 데이터 흐름도(Data Flow Diagram)가 됨
      • 가시성(Visibility)이 확보되어, 어디서 병목이 발생하는지 혹은 어디서 데이터가 왜곡되는지 즉각적인 디버깅 가능

  • 강한 결합(Strong Coupling)의 해소
    • 레거시 체인은 특정 기능을 수정하려면 클래스를 상속받거나 복잡한 파라미터 샌드위치를 만들어야 함
      🡲 시스템이 커질수록 유지보수 비용을 기하급수적으로 높이는 원인이 됨

    • LCEL의 해결 방법
      • 모든 구성 요소를 Runnable이라는 단일 인터페이스로 표준화
    • 공학적 의의
      • 각 컴포넌트(Prompt, LLM, Retriever, Tool)는 서로의 내부 구현을 몰라도 됨
      • 오직 입출력 규격만 맞으면 레고 블록처럼 갈아 끼울 수 있는 약결합(Loose Coupling) 구조를 완성
      • 이는 90년대 CBD(Component Based Development)의 이상향을 현대적 AI 환경에서 구현한 것과 같음

  • 일관된 실행 프로토콜 (Unified Interface)
    • 과거에는 동일한 로직을 ‘동기’, ‘비동기’, ‘스트리밍’, ‘배치’로 실행하기 위해 각각 별도의 메서드를 호출하거나 로직을 중복 구현해야 했흠

    • LCEL의 해결 방법
      • 하나의 체인을 정의하면 invoke, ainvoke, stream, batch를 자동으로 지원
    • 공학적 의의
      • 인터페이스의 일관성을 통해 다형성(Polymorphism)을 극대화
      • 특히 스트리밍 지원은 중간 단계의 결과를 즉시 밖으로 밀어내는 ‘중간 처리’를 별도 코딩 없이 가능하게 하여, 실시간 응답이 중요한 스마트팩토리 제어 시스템 등에서 엄청난 효율을 발휘함

  • 복원력과 최적화 (Resilience & Parallelism)
    • 엔터프라이즈 환경에서 가장 중요한 것은 예외 처리와 성능
    • 블랙박스 체인에서는 병렬 처리를 위해 직접 멀티스레딩을 구현해야 하는 경우가 많았음

    • LCEL의 해결 방법
      • Fallback
        • 특정 모델 장애 시 대체 모델로 자동 전환하는 로직을 파이프라인에 직접 선언할 수 있음
      • Parallelism
        • RunnableParallel을 통해 여러 검색 엔진을 동시에 쿼리하는 로직을 단 한 줄로 최적화
    • 공학적 의의
      • 인프라 레벨의 복잡한 로직을 비즈니스 로직(체인 설계)에서 분리
      • 복잡도(Complexity)를 획기적으로 낮춤

  • 요약
특징기존 블랙박스 방식 (`LLMChain` 등)최신 LCEL 방식
설계 철학명령형 (무엇을 어떻게 실행하라)선언형 (데이터의 흐름이 이러하다)
추상화 방식클래스 기반의 무거운 캡슐화함수형 조합 기반의 가벼운 연결
데이터 흐름내부 로직에 은닉 (추적 어려움)</b>파이프라인으로 노출 (추적 용이)</b>
확장성상속을 통한 수직 확장 (경직됨)조립을 통한 수평 확장 (유연함)
  • LCEL이 표준이 된 이유
    • “AI 시스템이 장난감을 만드는 수준을 넘어, 복잡하고 거대한 엔터프라이즈 아키텍처로 진화했기 때문”

2. 고도화된 체인(Chain) 설계 전략

  • 고도화된 체인 설계
    • LLM이라는 불확실한 엔진을 ‘결정론적(Deterministic)인 소프트웨어 공학’의 영역으로 끌어들이는 과정
    • 단순 질의응답을 넘어, 실무에서 마주하는 복잡한 데이터 파이프라인을 구축하는 기법

2.1 Prompt Engineering with LCEL

  • 기존의 프롬프트가 단순한 ‘템플릿’이었다면, LCEL에서의 프롬프트는 동적 컴포넌트
  • ChatPromptTemplate을 활용한 동적 프롬프트 구성

  • 세부 내용
    • 동적 바인딩
      • ChatPromptTemplate을 사용하면
      • 런타임에 사용자 입력, 이전 대화 기록, 검색된 문맥(Context)을
      • 파이프라인 안에서 안전하고 유연하게 주입할 수 있음
    • Partial Variables
      • 공통적으로 들어가는 시스템 지침(Instruction)은 미리 고정해두고, 실행 시점에 필요한 변수만 채워 넣는
      • ‘부분 함수’와 같은 설계가 가능함
    • 의의
      • 하드코딩을 최소화
      • 프롬프트 로직을 비즈니스 로직과 분리하여 관리할 수 있게 해줌

2.2 Output Parsers

  • LLM의 응답을 JSON, Pydantic 객체, 또는 특정 리스트로 정형화하는 법
  • LLM의 자유로운 응답을 구조화된 데이터(Structured Data)로 변환하는 ‘어댑터’ 역할

  • 세부 내용
    • Pydantic 연동
      • PydanticOutputParser를 사용하면
      • LLM이 응답한 JSON 데이터를 파이썬의 클래스 객체로 자동 매핑하고
      • 유효성 검사(Validation)까지 수행
    • Auto-fix 및 Retry
      • 형식이 틀렸을 경우,
      • 파서가 오류 메시지와 함께 LLM에게 “다시 올바른 형식으로 보내라”고 요청하는 순환 구조를 설계할 수 있음
    • 의의
      • LLM의 결과를 ERP 시스템이나 DB에 직접 Insert 할 수 있는 수준의 데이터 무결성을 보장

2.3 Advanced RAG Chains

  • 단순 검색을 넘어, 정보의 밀도와 정확도를 극대화하는 전략

  • 세부 내용

    • Multi-Query : 질문의 시맨틱 확장을 통한 검색 정확도 향상
      • 사용자의 짧고 모호한 질문을 LLM이 다양한 시맨틱 관점(유의어, 의도 확장)에서 3~5개의 질문으로 재작성
      • 이를 통해 벡터 공간의 여러 지점에서 검색을 수행하여
      • 검색 누락(Recall)을 획기적으로 방지
    • Contextual Compression : 검색된 문서에서 불필요한 노이즈 제거
      • 검색된 문서에서 질문과 관련 없는 ‘노이즈’ 텍스트를 제거하고 핵심 구절만 추출
      • 이는 LLM에게 전달되는 토큰을 절약하고,
      • 불필요한 정보로 인한 환각(Hallucination)을 줄임
    • LongContextReorder : ‘Lost in the Middle’ 현상 방지를 위한 문서 재정렬
      • “Lost in the Middle” 현상을 방지
      • LLM이 컨텍스트의 처음과 끝을 더 잘 기억한다는 특성을 이용
      • 가장 관련성이 높은 문서를 리스트의 양 끝으로 재배치하여 정보 활용도를 높임

2.4 Branching and Merging

  • 복잡한 비즈니스 로직을 처리하기 위한 ‘흐름 제어’ 기술
  • RunnableBranchRunnableParallel을 이용한 조건부 로직 설계

  • 세부 내용
    • RunnableBranch (Branching)
      • If-Else 문처럼 동작
      • 예시: 사용자의 질문이 ‘주식 분석’이면 주식 DB 체인으로, ‘일반 상식’이면 웹 검색 체인으로 경로를 분기시킴
    • RunnableParallel (Merging)
      • 여러 개의 체인을 동시에 실행
      • 예시:
        • 주식 가격 검색과 재무제표 분석을 병렬로 처리한 뒤,
        • 그 결과물들을 하나로 합쳐(Join) 최종 보고서를 작성하는 구조
    • 의의
      • 복잡한 순차 로직을 병렬화하여 응답 속도(Latency) 향상
      • 최적화 모듈화된 설계를 가능하게 함

2.5 아키텍트 관점에서의 요약

  1. 입력(Prompt)을 정제하고,
  2. 처리(Advanced RAG)를 통해 필요한 지식을 입체적으로 확보하며,
  3. 분기 및 병합(Branching/Parallel)을 통해 최적의 경로로 연산한 뒤,
  4. 출력(Output Parser)을 통해 시스템이 즉시 사용할 수 있는 데이터로 확정 짓는 것

3: 자율적 에이전트(Agent) 아키텍처

  • 체인이 ‘정해진 순서’라면, 에이전트는 ‘스스로 판단’하는 존재
  • ‘LLM을 두뇌(Controller)로 채택한 고도화된 제어 시스템’

3.1 Agent의 4대 요소: 자율성의 근간

  • 인지과학과 로보틱스의 프레임워크를 LLM에 이식한 구조

  • 세부 내용

    • Planning (계획)
      • 큰 문제를 작은 단계(Sub-goals)로 분해
      • LLM은 ‘Chain of Thought’를 통해 다음에 무엇을 해야 할지 논리적 순서를 결정
    • Memory (기억)
      • Short-term: 현재 대화의 맥락(Context)을 유지
      • Long-term: 벡터 DB를 활용하여 방대한 외부 지식을 필요할 때 인출(Retrieval)
    • Tools (도구)
      • LLM이 스스로 할 수 없는 일(계산, 실시간 검색, API 호출, DB 쿼리)을 수행하기 위한 외부 인터페이스
    • Action (실행) Planning에서 결정된 계획에 따라 실제로 도구를 호출하고 결과를 받아오는 단계

3.2 ReAct 프레임워크: 사고와 행동의 조화

  • Reasoning(추론)Acting(행동)을 결합한 에이전트의 가장 대표적인 사고 방식
  • Reasoning + Acting의 루프를 통한 문제 해결 메커니즘의 이해 필요

  • 세부 내용
    • Thought (생각): 현재 상황을 분석하고 무엇을 할지 추론
    • Action (행동): 추론 결과에 따라 특정 도구를 사용
    • Observation (관찰): 도구의 실행 결과(데이터)를 확인
    • 이 루프를 반복하며 에이전트는 “내가 목표에 도달했는가?”를 스스로 판단

3.3 Tool Definition: 외부 세계와의 인터페이스 설계

  • 에이전트가 외부 세계와 상호작용하는 인터페이스 설계 (API, DB, Search)
  • 에이전트의 능력치는 그가 가진 ‘도구’에 의해 결정됨

  • 세부 내용
    • 정밀한 명세(Description)
      • 에이전트는 도구의 ‘코드’가 아니라 ‘설명(Docstring)’을 보고 도구를 선택
      • “이 도구가 언제 필요한지”, “입력 파라미터가 무엇인지”를 자연어로 아주 명확하게 정의해야 함
    • Error Handling
      • 도구 호출 실패 시 에이전트가 이를 인지하고 다른 방법을 찾거나(Backtracking),
      • 파라미터를 수정하여 재시도할 수 있도록 설계해야 함
    • Safety
      • 스마트팩토리나 주식 매수 시스템처럼 위험이 따르는 액션은
      • Human-in-the-loop(사람의 승인) 절차를 도구 단계에서 포함시켜야 함

3.4 AgentExecutor vs LangGraph: 패러다임의 전환

  • AgentExecutor (기존 방식)
    • 일종의 ‘블랙박스 루프’
    • 에이전트가 끝날 때까지 제어권이 내부로 넘어가 버림(순환 제어의 어려움)

    • 한계
      • 루프가 너무 단순하여
      • 복잡한 순환 구조, 조건부 종료, 특정 상태로의 강제 복귀(Rollback) 등을 구현하기가 매우 까다로움
  • LangGraph (최신 표준)
    • 에이전트의 행동을 Directed Graph(유향 그래프)로 설계

    • 상태 머신(State Machine)
      • 각 단계를 노드(Node)로, 흐름을 엣지(Edge)로 정의
      • 전체 상태(State)를 명시적으로 관리
    • 의의
      • 로직을 작성할 때 그리던 Flowchart나 FSM(Finite State Machine)을 그대로 구현할 수 있게 된 것
      • 이로써 훨씬 정교하고 복구 가능한(Fault-tolerant) 에이전트 설계가 가능해짐
  • LangGraph 도입의 필요성: 상태 머신(State Machine) 기반의 사이클 제어

4. 실전 설계 패턴 및 안정성 확보

  • 시스템의 ‘견고함(Robustness)’이 단순히 기능이 돌아가는 것보다 얼마나 중요한지 이해할 것
  • 실수가 허용되지 않는 영역에서 실전 설계 패턴과 안정성 확보는 시스템의 생존과 직결됨

4.1 Memory Management: 지능적 요약 메모리 설계

  • ConversationBuffer, WindowMemory를 넘어선 ‘지능적 요약 메모리’ 설계
  • 단순히 과거 대화를 다 집어넣는 방식은 토큰 낭비와 문맥 혼동을 야기함

  • 세부 내용
    • ConversationSummaryBufferMemory
      • 고정된 토큰 한도 내에서는 대화를 그대로 유지하되,
      • 한도를 넘어가면 오래된 대화부터 LLM이 핵심 요약(Summary)하여
      • ‘압축된 컨텍스트’로 저장
    • Long-term & Short-term의 분리
      • 신경망 전공 지식을 응용하자면,
      • 현재 진행 중인 작업 정보는 Working Memory(Buffer)에,
      • 과거의 중요한 패턴이나 지식은 Vector DB(Long-term)에 저장하고
      • 필요할 때만 인출하는 아키텍처를 설계해야 함
    • 의의
      • 컨텍스트 윈도우의 효율적 사용을 통해 비용 절감
      • 장기 대화에서도 에이전트가 본질을 잊지 않게 함

4.2 Custom Tooling: 보안 및 성능 최적화

  • 에이전트가 외부 세계와 만나는 접점(API, DB)은 가장 취약한 지점
  • 보안(SSL Verification) 및 속도 최적화를 고려한 도구 구현

  • 세부 내용
    • 보안 (SSL & Auth)
      • 앞서 verify: False 설정을 논의했듯이,
      • 실전에서는
        • 내부망 보안 정책에 맞춘 SSL 인증서 처리와
        • OAuth2/API Key 기반의 철저한 권한 관리가
        • 도구 레벨에서 구현되어야 함
    • 속도 최적화 (Concurrency)
      • 주식 데이터 수집처럼 여러 출처를 뒤져야 하는 도구는
      • 내부적으로 asyncio나 멀티스레딩을 활용하여 결과를 반환해야
      • 에이전트의 전체 응답 대기 시간을 줄일 수 있음
    • 샌드박스(Sandbox)화
      • 파이썬 코드 실행 도구 등을 만들 때는 시스템 전체에 영향을 주지 않도록 격리된 환경(Docker 컨테이너 등)에서 실행되도록 설계하는 것이 정석

4.3 Evaluation & Tracing: LangSmith를 통한 가시성 확보

  • LangSmith를 활용한 체인/에이전트의 내부 실행 과정 모니터링 및 디버깅
  • “눈에 보이지 않는 로직은 관리할 수 없다”는 원칙에 충실한 도구 활용법

  • 세부 내용
    • Tracing
      • 에이전트의 복잡한 추론 과정(Thought -> Action -> Observation)을 단계별로 시각화하여
      • 어느 지점에서 환각(Hallucination)이 발생하는지,
      • 어떤 도구 호출이 실패하는지 실시간 모니터링
    • Evaluation (평가)
      • 단순히 “답변이 좋아 보인다”가 아니라,
      • 사전에 준비된 데이터셋(Ground Truth)을 바탕으로
      • 검색 정확도(Retrieval Score)와 답변 정확도를 정량적으로 측정
    • 의의
      • 대규모 시스템 디버깅 시 로그 분석을 중시하듯,
      • LLM 시스템에서도 재현 가능한 디버깅 환경을 구축하는 핵심 요소

4.4 Human-in-the-loop: 인간 개입 설계

  • 에이전트가 위험한 행동을 하기 전 사람의 승인을 받는 구조 설계
  • 자율 에이전트가 폭주하지 않도록 하는 ‘최후의 안전장치’

  • 세부 내용
    • Breakpoint(중단점) 설계
      • LangGraph 등을 활용하여
      • 특정 ‘민감한 노드’(예: 주식 매수 주문, 공정 파라미터 변경)에 도달하기 전
      • 에이전트의 상태를 저장하고 실행을 멈춤
    • 승인 프로세스
      • 관리자가 에이전트가 생성한 실행 계획(Plan)을 검토한 뒤
      • ‘승인(Approve)’, ‘수정(Modify)’, 또는 ‘거부(Reject)’를 선택하면
      • 그 피드백을 반영해 다음 노드로 진행
    • 의의
      • 기술적 자율성과 업무적 책임성 사이의 균형을 맞추는 설계 패턴
      • 엔터프라이즈 환경에서 AI 도입을 위한 필수 조건

5. Next Step: ‘자율형 업무 자동화 에이전트’로 가는 로드맵

  • 어떤 단계로 시스템을 고도화해야 할까?

    • 1단계: Knowledge-Intensive 에이전트 (RAG의 완성)
      • 단순 검색을 넘어, Multi-QueryLongContextReorder 등을 적용해 ‘데이터 노이즈’를 최소화한 정밀한 지식 베이스를 구축하는 단계
    • 2단계: Tool-Oriented 에이전트 (Action의 확장)
      • 단순 답변을 넘어 기업 내 API, SQL Database, 웹 브라우징 도구를 능숙하게 사용하는 단계
      • 핵심은 에이전트가 도구 사용의 ‘부작용(Side Effects)’을 이해하고 예외 처리를 할 수 있게 설계하는 것
    • 3단계: Multi-Agent Collaboration (협업 아키텍처)
      • 하나의 거대한 에이전트 대신,
      • 특정 분야에 특화된 여러 에이전트(예: 데이터 수집 담당, 분석 담당, 보고서 작성 담당)가 서로 소통하며 문제를 해결하는
      • LangGraph 기반의 협업 구조로 진화하는 단계
    • 4단계: Self-Improving 에이전트 (지속적 학습)
      • 사용자의 피드백을 통해 프롬프트를 최적화하거나, 실패 사례를 메모리에 저장해
      • 다음 실행 시 반영하는 Self-Reflection 루프를 완성하는 최종 단계

AI 에이전트의 미래

  • “언어는 도구가 아니라 인터페이스다”
    • COBOL과 C가 컴퓨터에게 명령을 내리는 ‘절차적 도구’였다면, LLM은 인간의 사고 체계를 컴퓨터와 연결하는 ‘시맨틱 인터페이스’
    • 이제 개발자는 구문(Syntax)의 노예가 아닌, 의도(Intent)의 설계자가 되어야 함
  • “결정론적 시스템에서 확률론적 시스템으로”
    • 과거의 ERP나 스마트팩토리 제어는 $1 + 1 = 2$가 보장되는 결정론적 세계였다면
    • AI 에이전트는 확률적
    • 불확실성(Uncertainty)을 제어하고 검증하는 능력이 미래 개발자의 핵심 역량이 될 것
  • “인간의 비즈니스 도메인 지식이 가장 강력한 무기”
    • 코딩은 AI가 더 잘하게 될 것
    • 하지만 스마트팩토리의 공정 흐름, 주식 투자의 복잡한 메커니즘 등 실제 세상의 도메인 로직을 이해하고 이를 에이전트의 워크플로우로 설계할 수 있는 능력은 아직 인간 전문가만이 가진 영역임

© 2020. AiDALab Co. All rights reserved.

Powered by Hydejack v9.2.1