LangChainJS와 Gemini에서 다가올 내용

발행: (2026년 1월 9일 오전 07:53 GMT+9)
13 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 링크에 있는 전체 텍스트를 복사해서 알려주시면, 해당 내용을 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 기술 용어는 그대로 유지됩니다.)

📦 현재 Gemini‑LangChainJS 패키지

패키지목적상태
@langchain/google-genai오래된 Google Generative AI 패키지를 기반으로 하며, AI Studio API(일반적으로 Gemini API라고도 함)에서만 작동합니다.Unmaintained (≈ 1 year)
@langchain/google-gauthGoogle이 호스팅하는 환경이나 기타 Node‑유사 시스템을 위한 REST‑기반 라이브러리; AI Studio or Vertex AI에 접근할 수 있습니다.
@langchain/google-webauthgoogle-gauth와 동일하지만 without 파일 시스템이 있는 환경을 위해 설계되었습니다.
@langchain/google-vertexai / @langchain/google-vertexai-web기본값은 Vertex AI이며, 여전히 AI Studio를 사용할 수 있습니다.
@langchain/google-common모든 REST‑기반 패키지에서 사용되는 핵심 헬퍼입니다.

왜 이렇게 많을까?

원래 목표는 single REST‑기반 패키지를 만들어 Node와 브라우저 모두에서 작동하고 Google Cloud의 Application Default Credentials(ADC)를 지원하는 것이었습니다. 실제로는 두 가지 주요 장애물이 있었습니다:

  1. 플랫폼 차이 – Node와 웹은 파일 시스템 접근 및 자격 증명 로딩을 별도로 처리해야 했습니다.
  2. API 차이 – 2023년 말 / 2024년 초에 Google은 두 개의 별도 API(AI Studio와 Vertex AI)를 제공했으며, 각각 고유한 인증 흐름을 가지고 있었습니다.

2024년 1월에 우리는 마침내 작동하는 솔루션을 마련했지만, Google이 자체 AI Studio‑전용 라이브러리를 출시하면서 혼란이 더욱 가중되었습니다.

🛠️ 배운 교훈

  • Cross‑platform compatibility – 우리 라이브러리는 Google 공식 JS SDK가 따라잡기 에 Node와 브라우저 모두를 지원했습니다.
  • Rapid Gemini 2.0 support – Google이 한 달 넘게 걸린 작업을 우리는 며칠 만에 호환성을 추가했습니다.
  • Experimental features – 보안 매니저, 미디어 매니저, 그리고 비‑Gemini 모델 지원(예: AI Studio의 Gemma, Vertex AI의 Anthropic)을 시도했습니다.

이러한 성과에도 불구하고 패키지 환경은 혼란스러웠고, 라이브러리 중 하나는 오래돼 있었습니다. 더 나은 솔루션이 필요했습니다.

🎉 단일 통합 패키지 소개

앞으로는 하나의 패키지만 지원합니다: @langchain/google
환호와 박수 소리 🎉

원하는 패키지 매니저로 설치할 수 있습니다:

# npm
npm install @langchain/google

# yarn
yarn add @langchain/google

# pnpm
pnpm add @langchain/google

(원래 예시에서는 yum을 사용했었는데 오타였습니다 – 위와 같이 npm/yarn/pnpm을 사용하세요.)

📚 새로운 라이브러리 사용하기

API가 익숙하게 느껴집니다. 이전에 ChatGoogle을 사용했다면, 새로운 패키지에서 가져오기만 하면 계속 사용할 수 있습니다:

import { ChatGoogle } from "@langchain/google";

const llm = new ChatGoogle({
  model: "gemini-3-pro-preview",
});

에이전트 생성 (LangChainJS 1 스타일)

LangChainJS 1은 새로운 createAgent() 헬퍼를 도입했습니다. 통합 라이브러리와 바로 사용할 수 있습니다:

import { createAgent } from "@langchain/google";

const agent = createAgent({
  model: "gemini-3-flash-preview",
  tools: [], // add your tools here
});

Note: 새로운 라이브러리가 완전히 출시될 때까지 createAgent()가 기대와 정확히 다르게 동작할 수 있습니다. 릴리즈 노트를 주시하세요.

🔐 인증 및 자격 증명

새 라이브러리는 다음을 계속 지원합니다:

  • API 키 – AI Studio와 Vertex AI(Express 모드 포함) 모두에 대해.
  • Google Cloud 자격 증명 – 서비스 계정 및 개별 사용자를 위해.

자격 증명은 세 가지 방법으로 제공할 수 있습니다:

  1. 코드에서 명시적으로 – 키/JSON을 생성자에 직접 전달합니다.
  2. 환경 변수GOOGLE_API_KEY, GOOGLE_APPLICATION_CREDENTIALS 등.
  3. Application Default Credentials (ADC) – Google SDK가 자동으로 자격 증명을 찾게 합니다.

모든 통신은 REST를 통해 이루어지므로, 라이브러리는 Google 클라이언트 라이브러리에 의존하지 않습니다.

🚀 LangChainJS 1 과 Gemini 3가 가져오는 변화

LangChainJS 0은 주로 텍스트 중심이었습니다. 멀티모달 모델이 등장하면서 이미지, 오디오, 비디오를 다루는 것이 즉흥적이고 모델마다 달라졌습니다. LangChainJS 1은 멀티모달 지원을 표준화하고, 새로운 @langchain/google 패키지는 이러한 기능을 활용하도록 설계되었습니다.

하이라이트: 통합된 response.content

이전: response.content는 모델과 요청에 따라 문자열 또는 배열이 될 수 있었습니다.

현재: 이 필드는 일관된 스키마를 따릅니다(자세한 내용은 LangChainJS 1 문서 참조). 이를 통해 텍스트 전용이든 멀티모달이든 어떤 Gemini 모델과도 작동하는 다운스트림 코드를 더 쉽게 작성할 수 있습니다.

📅 곧 출시될 내용

  • 이미지, 오디오, 비디오 입력을 지원하는 멀티모달 에이전트 전체 지원.
  • 새로운 REST 코어를 위해 재구성된 Security ManagerMedia Manager 통합.
  • Gemini 3 이후의 향후 Gemini 릴리즈와 호환되는 레이어.

각 기능을 자세히 다룰 출시 노트와 블로그 게시물을 기대해 주세요.

TL;DR

  • 하나의 패키지@langchain/google.
  • npm/yarn/pnpm으로 설치.
  • 기존 코드(ChatGoogle, API‑key 인증, ADC)는 그대로 작동.
  • 새로운 LangChainJS 1 패턴(createAgent)을 바로 사용할 수 있음.
  • 멀티모달 지원이 표준화되어 계속 확장될 예정.

함께 따라와 주셔서 감사하고, 즐거운 개발 되세요! 🚀

개요

LangChainJS 1은 이전 호환성을 위해 response.content를 유지하지만, 이제 응답의 텍스트 부분을 얻는 선호되는 방법은 response.text입니다. 이는 문자열 값을 보장합니다.

응답에서 텍스트 가져오기

import { ChatGoogle } from "@langchain/google";
import { AIMessage } from "langchain/schema";

const llm = new ChatGoogle({
  model: "gemini-3-flash-preview",
});

const result: AIMessage = await llm.invoke("Why is the sky blue?");
const answer: string = result.text; // 문자열이 보장됩니다

콘텐츠 블록 다루기

“생각”과 실제 콘텐츠를 구분해야 할 경우 response.contentBlocks 필드를 사용하세요. 이는 항상 새로운 일관된 ContentBlock.Standard 객체 배열입니다.

import { ChatGoogle } from "@langchain/google";
import { AIMessage, ContentBlock } from "langchain/schema";

const llm = new ChatGoogle({
  model: "gemini-3-pro-image-preview",
});

const prompt = "Draw a parrot sitting on a chain‑link fence.";
const result: AIMessage = await llm.invoke(prompt);

result.contentBlocks.forEach((block: ContentBlock.Standard) => {
  if (!("text" in block)) {
    // 텍스트가 아닌 블록 (예: 이미지, 오디오, 비디오)
    saveToFile(block);
  }
});

Gemini에 미디어 전송하기

ContentBlock.Standard는 Gemini에 데이터를 전송할 때도 사용할 수 있습니다 (이미지, 오디오, 비디오).

import { ChatGoogle } from "@langchain/google";
import { HumanMessage, AIMessage, ContentBlock } from "langchain/schema";
import * as fs from "fs";

const llm = new ChatGoogle({
  model: "gemini-3-flash-preview",
});

const dataPath = "src/chat_models/tests/data/blue-square.png";
const dataType = "image/png";
const data = await fs.readFile(dataPath);
const data64 = data.toString("base64");

const content: ContentBlock.Standard[] = [
  {
    type: "text",
    text: "What is in this image?",
  },
  {
    type: "image",
    data: data64,
    mimeType: dataType,
  },
];

const message = new HumanMessage({
  contentBlocks: content,
});

const result: AIMessage = await llm.invoke([message]);
console.log(result.text);

유사한 패턴이 오디오비디오 입력에도 적용됩니다.

Release Roadmap

  • Alpha: 2026년 1월 초
  • Final version: 알파 출시 후 1개월 이내

새 패키지는 @langchain/google가 될 것입니다. 이전 버전은 버전 번호가 상승하고 deprecated(사용 중단) 표시가 되며, 새로운 패키지에 모든 기능을 위임하는 얇은 래퍼 역할을 합니다. 이를 통해 개발자는 큰 코드 변경 없이 마이그레이션할 추가 시간을 확보할 수 있습니다.

Compatibility

  • 완전한 이전 버전 호환성을 보장할 수는 없지만, 파괴적인 변경은 최소화될 예정입니다.
  • @langchain/google의 첫 번째 릴리스에서는 일부 기능이 누락될 수 있으며, 커뮤니티 피드백을 통해 우선순위를 정할 예정입니다.

Features Likely Missing at Launch

  • 임베딩 지원
  • 배치 지원
  • 미디어 매니저
  • 보안 매니저
  • 비‑Gemini 모델 지원 (가장 중요한 모델은 무엇인가요?)
  • VeoImagen 지원 (어떤 형태로 보길 원하시나요?)
  • Google의 Gemini Deep Thinking 모델 및 Interactions API

이 중 (또는 다른) 기능이 귀하에게 필수적이라면 알려 주세요. 기여를 환영합니다—통합 작업을 도와주실 의향이 있다면 함께 논의해 보아요!

피드백 요청

귀하의 의견이 로드맵을 형성합니다. 공유해 주세요:

  • 가장 필요한 누락된 기능은 무엇인가요?
  • 보고 싶은 다른 기능이 있나요?
  • 코드나 문서에 기여하고 싶으신가요?

감사의 글

  • 팀 및 커뮤니티: LangChain 팀과 더 넓은 커뮤니티에 지원에 감사드립니다.
  • 특별히 감사: Denis, Linda, Steven, Noble, 그리고 Mark—기술 및 편집 조언과 어려운 시기에 친절한 목소리를 제공해 주셔서 감사합니다.
  • 가족: 변함없는 지원을 해준 가족에게 감사드립니다.

저자 소개

저는 Google Developer Expert(GDE)이자 LangChain 챔피언이지만, 두 회사 중 어느 곳에도 소속되어 있지는 않습니다. 지난 2년간 Google과 LangChain 제품에 대한 애정으로 이 프로젝트에 기여해 왔으며, 두 제품을 함께 더 좋게 만들고자 노력했습니다. 앞으로도 이 작업을 지속할 것이며, 여러분도 자신만의 방식으로 세상을 개선하는 도구를 만들고 있기를 바랍니다.

피드백, 기능 요청, 혹은 협업 아이디어가 있으면 언제든지 연락 주세요!

Back to Blog

관련 글

더 보기 »

안녕, 뉴비 여기요.

안녕! 나는 다시 S.T.E.M. 분야로 돌아가고 있어. 에너지 시스템, 과학, 기술, 공학, 그리고 수학을 배우는 것을 즐겨. 내가 진행하고 있는 프로젝트 중 하나는...